[om-list] Re: The Rise of Worse is Better

Mark Butler butlerm at middle.net
Sun Dec 8 00:35:54 EST 2002


"Worse-is-better" is a pretty provocative name for this phenomenon, but 
I agree with the basic principle.  This reminds me of a scripture:

     For which of you, desiring to build a tower, does not first sit
    down and count the cost, whether he has enough to complete it?
    Otherwise, when he has laid a foundation, and is not able to finish,
    all who see it begin to mock him, saying, 'This man began to build,
    and was not able to finish.' - Luke 14:28-29

I don't think that this means we should never build towers, but rather 
we should scale the tower to our resources - not just monetary, but 
mental and social resources as well.  In software development this often 
means incremental refinement rather than trying to accomplish everything 
in one big bang (as admirable as that may be).  Software technology is 
so incredibly complex that it often seems that we are barely 
accomplishing things that we knew how to do thirty years ago - not 
because we don't know how, but rather because of the sheer effort and 
mutual cooperation involved.

I think the genius of the open source software movement is not in 
producing software that is necessarily better in every respect than 
closed software - in narrow fields that may never be the case - but 
rather in creating a common technological base that anyone can build on. 
The interesting thing is building a consensus tends to be a very 
conservative process - Unix / C represent consensus not because they are 
the leading edge, but rather because they are well understood by the 
greatest number of people.  

Lots of observers lament that no new programming language can be really 
successful unless it has syntax similar to C. But is this a bad thing? 
 Would anyone expect a replacement for English to be successful 
overnight if it had no grammar or vocabulary in common?  Neither C++, 
Java, nor C# are the be-all-and-end-all of programming languages, but 
they are successful because they are evolutions rather than revolutions.

Revolutions are nice if you can pull them off, but generally rarely 
succeed. This is particularly true in infrastructure software like 
operating systems, languages, and databases, though considerably less so 
in application software.  You might say that both Unix and American 
democracy are classic examples of "worse-is-better".  Making an 
improvement to either is not so much a matter of technical superiority, 
but rather one of persuading everyone else to go along.

  - Mark


Luke Call wrote:

> Thanks Mark, that is an enjoyable read and one of those things likely 
> to get filed away mentally for later pondering or mental connections. 
> Getting something working does seem much more successful than getting 
> it "perfect" too, and Unix/C people in a way seem like the ultimate 
> pragmatists, for some things. And the answer for which is the "right" 
> tool to use still seems to be always "it depends".....
>
> Just my first, pedestrian, ruminations....
>
> Luke
>
>






More information about the om-list mailing list