On 2012-05-21, at 16:22, Michael G Schwern wrote:
The first is "the enemy of the best is good enough" and C was good enough...
for a time.  It solved a problem (portable machine programming) better and
faster than its contemporaries and even much later languages.

Not just "good enough", I used several of its competitors, both structured 
languages and macro-assembler level alternatives. It was enormously better, and the few 
that had advantages over C in a few areas had huge lacunae elsewhere.

It also actually addressed many of the problems you listed significantly better 
than the majority of the alternatives, in that it at least tried to address 
them, even if only to place them explicitly outside the scope of the language.

But, yeh, it's hard to move C now. But that wasn't always the case.

So forget the last 30 years. Let's set the wayback machine for the late '70s.

Why didn't anyone come up with a better alternative to C 30 years ago, when it wasn't so 
entrenched? I know people tried. I was a total language geek back then (to the extent that I showed 
up in the Berkeley version of Adventure as a substitute dwarf, the "mad Australian on a 
skateboard" who "throws a stack of Adventure printouts in many different languages at 
you"), and I desperately jumped on everything that wasn't C. I skipped at least one course at 
Berkeley because it was in C, and waited for a professor who was teaching it in something else.

For a while I was hopeful about Modula, until I bought two different Modula-2 
compilers for the Amiga and discovered it was pretty much impossible to write a 
non-trivial Modula-2 program that would compile on both of them. Modula-3 only 
had better success because it was basically a front end to C.

Bad as you claim C was, it was much batter than all the alternatives long before it 
reached "category killer" status.


Reply via email to