This might seem like an absurdly over-ambitious thing to promise but it really isn’t. If you look at the history of computer technology since the 1970s you will see a pattern repeats itself over and over again. It happened in the 1980s during the rise of the PC and again in the 90s with the rise of the Internet. And it is still happening today.
Here is the basic pattern. An idea arises whose timing is right. It may have been known before but just never took off. The timing wasn’t right. You will often hear people say that an idea “isn’t new” and has “been known for a long time”. That’s just sour grapes. They key has always been timing, nothing else matters. Imagine the Beatles in 1940 instead of 1962.
When the time is right, the idea will start a creative explosion. During that explosion people will build amazing and creative implementations. That level of creativity will exist only briefly during the initial explosion. Afterwards, there is a period of consolidation and only few survive.
That is the basic process that computer technology follows. It applied to PCs in the 80s and it applies to automated CM tools today. But how do you know which of these creative endeavors will survive and succeed? The answer is a principle called “worse-is-better“.
Worse-is-better was coined by a deeply insightful thinker named Richard Gabriel during the end of the Lisp machine era. At the time Lisp machines where doing poorly against Unix workstations and PCs despite being light years more advanced. How could it be that better technology and design was losing? Doesn’t the best always win? Nope. It turns out the best technology almost never wins.
In his article Richard Gabriel explains the dynamics of why “worse” technology wins. It includes things like simplicity, ease of use, harder to misuse, quicker to build, good enough, and so on. There is some subtlety though in what he is trying to explain that goes beyond these terms. It is about the fit of the technology to its environment rather than technical purity. Technical purity actually works against it!
A Haskel program might be provably correct but Haskel will never replace C. Never. The TCP/IP stack beat the OSI stack. HTTP beat Ted Nelson’s hypertext. Word beat LaTeX. And, of course, there is the continued existence of MS Windows. The same pattern repeats itself over and over again. Once you learn how to spot “worse”, you can pick the winners.