Worse is better - Wikipedia
Jump to content
Search
Search
Donate
Create account
Log in
Personal tools
Donate
Create account
Log in
Worse is better
9 languages
Español<br>فارسی<br>日本語<br>Polski<br>Português<br>Русский<br>Türkçe<br>Українська<br>中文
Edit links
From Wikipedia, the free encyclopedia
Theory of software design
For the phrase "The worse the better", see Nikolay Chernyshevsky.
"Worse is better " or the "New Jersey style "[1] is a term coined by Richard P. Gabriel in a 1989 essay[2] to describe the dynamics of software acceptance and the frequency with which "worse" designs seem to outcompete better ones. The essay argues simple, hacked-together software that makes it to market first will often outcompete better and more elegant designs. Gabriel argues that by the time the elegant design is complete, users who have adopted the worse design will be unable to switch as a result of switching barriers, vendor lock-in, and backward compatibility requirements. Gabriel contrasts "worse-is-better" software with the "MIT Approach " of doing the "Right Thing ", and argues bare-minimum software "has better survival characteristics than the-right-thing".[3]
Gabriel offers the examples of the adoption of C over Lisp, Unix over Lisp machines and VMS, and x86 over reduced instruction set computers as examples of technically worse solutions defeating more elegant ones by arriving to market first.
The essay was included into the 1994 book The UNIX-HATERS Handbook, and has been referred to as the origin of the notion of a conceptual split between developers on the east and west coasts of the United States.[4]
Origin<br>[edit]
Gabriel was a Lisp programmer when he formulated the concept in 1989, presenting it in his essay "Lisp: Good News, Bad News, How to Win Big". A section of the article, titled "The Rise of 'Worse is Better'", was widely disseminated beginning in 1991, after Jamie Zawinski found it in Gabriel's files at Lucid Inc. and emailed it to friends and colleagues.[3]
Characteristics<br>[edit]
In The Rise of Worse is Better, Gabriel identified a "Worse is Better" model of software design and implementation which has the characteristics of simplicity, correctness, consistency, and completeness (in approximately descending order of importance). Gabriel contrasted his philosophy, also called the "New Jersey style", "Berkeley", or "West coast"[4] model, with what he called the "MIT/Stanford style of design" or "MIT approach", also known as the "east coast" approach[4] or "the Right Thing".
Characteristic
New Jersey style
The MIT approach
Simplicity
The design must be simple, both in implementation and interface. It is more important for the implementation to be simple than the interface. Simplicity is the most important consideration in a design.
The design must be simple, both in implementation and interface. It is more important for the interface to be simple than the implementation.
Correctness
The design should be correct in all observable aspects. It is slightly better to be simple than correct.
The design must be correct in all observable aspects. Incorrectness is simply not allowed.
Consistency
The design must not be overly inconsistent. Consistency can be sacrificed for simplicity in some cases, but it is better to drop those parts of the design that deal with less common circumstances than to introduce either complexity or inconsistency in the implementation.
The design must be consistent. A design is allowed to be slightly less simple and less complete to avoid inconsistency. Consistency is as important as correctness.
Completeness
The design must cover as many important situations as is practical. All reasonably expected cases should be covered. Completeness can be sacrificed in favor of any other quality. In fact, completeness must be sacrificed whenever implementation simplicity is jeopardized. Consistency can be sacrificed to achieve completeness if simplicity is retained; especially worthless is consistency of interface.
The design must cover as many important situations as is practical. All reasonably expected cases must be covered. Simplicity is not allowed to overly reduce completeness.
Gabriel argued that early Unix and C, developed by Bell Labs, are examples of the worse-is-better design approach. He also calls them "the ultimate computer viruses", due to their rapid spread.
Effects<br>[edit]
Gabriel argued that "Worse is better" produced more successful software than the MIT approach: As long as the initial program is "good enough", it will take much less time and effort to implement initially and it will be easier to adapt to new situations. Porting software to new machines, for example, becomes far easier this way. Thus its use will spread rapidly, long before a program developed using the MIT approach has a chance to be developed and deployed (first-mover advantage). Once it has spread, there will be pressure to improve its functionality, but users have already been conditioned...