worse is better
expressionprogrammingops culture
The observation that a simpler, less complete design often wins over a more correct but complex one.
Richard Gabriel argued that Unix and C spread precisely because they favored implementation simplicity over completeness, unlike richer designs that were harder to build and port. The phrase is now shorthand for the uncomfortable truth that the technically superior solution does not always win.
Worse is better is Richard Gabriel's 1989 argument that a simpler design with worse behaviour often wins over a more correct one, and it is genuinely uncomfortable because he was arguing against his own preferences. The comparison was the MIT approach, which prioritizes correctness and completeness even at the cost of implementation complexity, against the New Jersey approach behind Unix and C, which prioritizes simplicity of implementation above all.
The claim is about propagation rather than quality. A simple implementation is easier to port, easier to understand, and easier to build on, so it spreads faster and gets improved by more people, while the correct design is still being finished. Half a solution that ships and adapts beats a whole solution that arrives late, and the ecosystem effects compound.
Unix and C are the evidence, and the argument is not a comfortable one to accept. Gabriel himself kept revisiting it and wrote both sides. The useful reading is not that quality does not matter, but that adoption is a real force with its own dynamics, and a design that ignores how software actually spreads is optimizing for a judgement nobody will be around to make.
Also known as: the New Jersey style, Richard Gabriel
Sources
- Gabriel, 'The Rise of Worse is Better' (1991)