Oh, another factor that led to success for C, I suspect: I/O is not in the language, it's handled by optional subroutine libraries. This made it very easy for compilers/etc to produce language for stand-alone systems. Compare PL/I, which needed a large subroutine library to run on bare hardware.
> From: Paul Koning > Algol 68 has both pointers and structures. Yeah, but Algol-68 never did much (although it had a certain amount of influence). Why, I'm not certain - I suspect the fact that it was fairly complex had something to do with it, but I expect its biggest problem was that a number of _very_ respectd people from its committee denounced it roundly (whether their reasons were good or bad, I can't say). Tony Hoare's Turing lecture, "The Emperor's Old Clothes", recounts a lot of that. (That's the source of the famous quote about "there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies." He was talking about Algol-68, there.) > So does Pascal. Which didn't have a lot of the capabilities needed to be system language at _that point in time_ (remember, this is about 'why did C succeed, back then'); it was, after all, originally designed as a pedagogical language. > And Modula. That was late 70's - C was already off and running by then. > The main thing C has that most other languages don't is *unsafe* data > typing - the ability to subvert the type system at the drop of a cast, > and the programming tradition to do this a lot. {Sighs.} You really seem to have it out for C. You'll never be able to understand why it was so successful if you start out with the mindset that it's total crap (even if that's not the way you thought you meant that comment). That _is_ the implication of that "the main thing that C has" comment - compared to things available _at the time_, like BCPL, etc, it _did_ have significant advantages. Does it have issues? Sure. But the main reason it was so successful is that compared to the other alternatives available _at the time_, it was, overall, a better mouse-trap. (It wasn't just that it went with Unix - as DMR pointed out, below, it succeeded in a lot of places that Unix didn't.) > But it was cheap, available, and good enough to do useful work. There's a lot of truth to that. Dennis Ritchie's HOPL presentation, "Five Little Languages and How They Grew": http://www.bell-labs.com/usr/dmr/www/hopl.html has a section at the end about "how C succeeded in becoming so widely used", and it's close to that. Some may consider your description a put-down; DMR I expect would embrace it. > I think the answer is simpler: Unix was adopted by a number of academic > groups because it was available on easy terms That certainly didn't hurt, but I don't think it was the biggest factor, by a long way. I think one of the biggest things is that early Unix (I'm thinking V6, V7) was a system with an incredibly high bang/buck ratio - for the size, one got a heck of a lot of functionality. This was important not just for _use_, for for pedagogical reasons - to give students an example of a well-done system. The fact that the hardware it ran on (PDP-11's) was modestly priced (for the day) also helped a lot. > and it was adopted by a very successful company (Sun) Unix had taken off big-time before Sun even appeared. Noel