Some Were Meant for C: The Endurance of an Unmanageable Language [pdf]
This is another article overanalyzing the success of C, when in fact the reason for the success of C is very simple and obvious: Unix was free and in a lucky position in 1973; Unix got popular; C is the language of Unix; therefore C got popular. There is no inherent benefit in C that, for example, a somewhat modified version of Pascal or Algol wouldn&#x27;t have inherited. And these kinds of articles always ignore the fact that in the past decade or so, C and C++ have been <i>declining</i> in popularity. By and large, new programmers are not learning C the way they were in the &#x27;90s. For better or worse (personally, I think, for the better), they&#x27;re starting with JavaScript, Python, Ruby, or even PHP.<p>I&#x27;m highly skeptical of the conclusion that what we need is a new safer implementation of C, too. Switching to a new compiler is a <i>very</i> high burden for a lot of projects, and at the end of the day they&#x27;re still left with all the problems of C, like header files, no namespaces, terrible standard library, etc. etc. (Even adding compiler <i>switches</i> is a high burden, which is why Linux distros took so long to widely deploy basic things like -fstack-protector.) By contrast, switching to a new language (or incrementally writing new components in a new language, which is how this always goes in practice) is <i>also</i> a very high burden, but the benefits are larger: you don&#x27;t have to deal with all the problems of C.<p>In my view, this is why safer versions of C have repeatedly failed over the years, while new languages have flourished. Migration to a new language <i>or a new compiler</i> is expensive no matter what, so teams will only do it if they see enough benefit to justify the expense of doing so. Merely adding some amount of safety to C isn&#x27;t worth it, but the large safety <i>and</i> productivity gains you can get from a different language can be.