| There have been many contenders, notably Eiffel, Oberon and D. [...] So why didn't they take the industry by storm? Some possible reasons, based on my limited knowledge of those languages: Eiffel — Emphasis on simplicity over performance optimisation; emphasis on OO programming style; legal issues around various parts of the ecosystem in the early days Oberon — Limitations of basic type system, such as a lack of enumeration types and the way coercion of numerical types worked until recent versions D — Many of the same major strengths and weaknesses as the more established C++; two rival “standard” libraries for a long time Your new "adult" language is going to need a set of very compelling offerings over and above "well, it's safer" in order to succeed. Of course. You can throw in “it’s easier to write” and “it’s more powerful” and you still only have a small part of the big picture, because in reality so much depends on the surrounding ecosystem: development tools, libraries, and so on. However, there is no reason we couldn’t have a language that was superior to C in both safety and expressive power, remained compatible with calling to/from C functions at ABI level for library compatibility and ease of porting, and used a clean grammar to help tool developers. Take a look at things people are doing /to/ C in order to be better: While I don’t disagree with any of your examples, I’m not sure they really tell us anything useful. The absence of other things that people might do could be because they aren’t particularly valuable or it could be because they are valuable but also prohibitively difficult or expensive to achieve starting from C as the foundation. |