Who here thinks they should have made "an object-oriented C" instead? I was under the impression that a big part of C's success (as a lingua france / lowest common denominator) is its minimalism. It forces only a few concepts on its users.
Maybe the most minimal, but not the most efficient, and C's minimalism is only useful because it lets you be as efficient as the hardware will be. Without that goal, the Lisps are more minimal than both C and Objective-C.
I have a fondness for ObjC because I was a Smalltalk programmer once upon a time (it's also probably why I like Ruby), but you could imagine a simpler object system on par with Object Pascal. I'm actually kind of surprised that nobody tried that but maybe with ObjC and C++ fighting it out people assumed yet another object-oriented dialect would go nowhere.
A big part of C's success was being a requirement for UNIX systems programming, with 80's startups (Sun, SGI,...) adopting an almost free of charge OS, with source code available, for their workstations.
"The language grew up with one of the rewritings of the system and, as such, it became perfect for writing systems. ... It became the perfect language for what it was designed to do."
Really? Perfect? Why then are there entire books filled with "C gotchas" or "C traps and pitfalls"?
The language is an inconsistent, inelegant, error-prone mess that has left us with decades of serious bugs and security vulnerabilities. Yet Thompson describes it as "perfect". Sounds like he's been letting all the prizes he got get to his head.
Sure. The language was very influential, and much of the software we use every day was and still is written in it. That doesn't make it perfect, just popular -- often for legacy reasons, not because it's "perfect for writing systems".
I didn't read "perfect" in the same way. He just seems to be saying that it was developed in parallel with the OS, and so was tweaked to fit the needs of OS development at the time.
I read it more as "purpose built", and therefore, better than anything else that was available to him.
I've heard similar opinions before, and would love to see this expanded on... in particular how it can be elegant compared to Scheme, which is by far the most elegant language I know.
Its simplicity is what I'm attracted to, and I think that's why I think Scheme is elegant too. It has less syntax than comparable languages, fewer keywords, a smaller standard library etc.
I'm not sure if it makes the case for elegance or if I'm misunderstanding it.
C was certainly a major step forward at the time, but he does seem oblivious to its flaws (at least in this interview). I was also disappointed to see how he casually trashed C++ at the same time. Not very diplomatic.
That C was certainly a major step backwards at the time, only adopted thanks to AT&T being forbiden to sell UNIX, thus deciding to offer the source code for a nominal fee to anyone that wanted to get a license to the source code.
Or to use a more modern example, UNIX was the browser and C was JavaScript.
I never coded in the languages from your earlier post; I'd never have wanted to either. C was and is elegant and beautiful. It isn't so popular because of a AT&T. Look at Microsoft's power in the business world. Even with all their "practices", .Net still hasn't been beaten by Java in terms of popularity and widespread use. .Net is good, not saying it isn't, just so that's clear.