Worse Is Better: The Innovator's Dilemma In Programming Languages
Disruptive innovation is a pattern in discovered in business, but it also plays out in programming languages.
The Innovator’s Dilemma is about disruptive innovation. Technologies that are cheaper and less functional than existing solutions are invented and ignored by established companies, and are sold by new companies to different markups. Eventually, the new technology improves enough that attracts customers from the established companies, and the disruptive technology replaces the previous technology in the market.
Richard Gabriel explores a similar idea in his famous Worse is Better essay. He describes two different schools of thought in programming language design: the MIT style, where designers try very hard to “do the right thing”, even if it makes implementation difficult or complicated, and the New Jersey style, where simplicity of design and correctness take a back seat to simplicity of implementation. A poor, but complete, feature is better than a perfect but infinitely delayed one. He compares the MIT-style Scheme and the New Jersey-style C. Since Mr. Gabriel wrote this essay, C has won the marketshare and mindshare, not Scheme or any other MIT-style languages.
C has all the characteristics of a disruptive innovation. It started off as a small, simple language that was dismissed by serious academics or businesses. It found a new market in the language of Unix. It became more popular in this market, and eventually grew to overtake the MIT-style languages in popularity.