strangest systems I've sent email from

Noel Chiappa jnc at mercury.lcs.mit.edu
Fri Apr 29 15:12:16 CDT 2016


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


More information about the cctalk mailing list