W3C home > Mailing lists > Public > public-html@w3.org > August 2007

Re: Rewording the Design Principles: Pave the Cowpaths and Don't Reinvent the Wheel

From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
Date: Wed, 15 Aug 2007 00:35:11 +1000
Message-ID: <46C1BD9F.9070402@lachy.id.au>
To: Tom Morris <tom@tommorris.org>
CC: public-html <public-html@w3.org>

Tom Morris wrote:
> Paving the Cowpaths is not a good design principle when it comes to 
> choosing whether or not to deprecate or remove features that are part 
> of the specification.

That decision is completely unrelated to paving the cowpaths.  Anyone 
who tries to apply it directly in that way is using it wrongly.  The 
decision of whether or not to add or omit a feature will be based on 
research, not just one particular principle.  The principles are just 
there to guide the research, not to make decisions directly from them.

> Keeping a feature into the next release causes no harm to those who 
> do not use it, but removing a feature does cause problems for those 
> who use it.

That needs to be determined on a case by case basis.  We can't make 
generalised statements like that which automatically apply to all 
features.  It may turn out that retaining a feature that was never 
significantly implemented will break sites that depend on it being 

For example, that's one reason why usemap="" has been dropped from 
<input type="image"> because many sites that use it actually depend on 
it being unimplemented to function.  (I've been told that only Firefox 
and Opera had limited support for it, IE and Safari don't support it at 
all.  It also has no apparent use cases, <img usemap=""> seems to cover 
them all.)

> The tests used for removing features needs to be different from the 
> tests used for adding features.

That's not how the process works.  We don't pick a feature, decide if we 
should keep it or remove it and then test it.  We look at a feature, 
think about why it's useful, what benefits it provides to users, whether 
or not authors will use it, whether or not implementations support it, 
etc.  We then decide whether or not it should be added or left out based 
on the results of that research.

In some cases, the initial research is quite limited and doesn't provide 
enough justification for the inclusion of a feature, though as more 
research is performed and new evidence becomes available, the feature 
may get added.  In other cases, initial research does provide sufficient 
support for the inclusion of a feature, though new evidence may suggest 
otherwise and the feature may get removed.

> May I suggest we have a corollary to Pave the Cowpaths, namely "Don't
> Unpave Existing Roads Just Because They're Not Cowpaths".

We effectively do already.  It's a combination of Evolution Not 
Revolution and Don't Reinvent the Wheel.  But, again, it depends 
entirely on the results of the research, not the principles themselves.

Lachlan Hunt
Received on Tuesday, 14 August 2007 14:35:27 UTC

This archive was generated by hypermail 2.3.1 : Thursday, 29 October 2015 10:15:25 UTC