Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Five Little Languages and How They Grew: Talk at HOPL (1993) (bell-labs.com)
98 points by fanf2 on July 25, 2024 | hide | past | favorite | 24 comments


Interesting that other than C only pascal has survived (kind of).

I have fond memories of Pascal, but when I think about it is actually Turbo Pascal I have great memories of and not so much the language itself.

Turbo C/C++ was surprisingly a worse environment for me despite being much more fluent in C, which shows the important of a responsive IDE.


Believe it or not, but BCPL is still somewhat alive, and has implementations on modern platforms, done by its original creator Martin Richards, no less: [0].

[0] https://www.cl.cam.ac.uk/~mr10/BCPL.html


There is also a modern implementation of BLISS: https://gitlab.com/JonathanBelanger/bliss


Wow, that brings back memories! I still have a copy of BCPL: the language and its compiler on my shelf, though I admit I haven't looked at it in years. But spent¹ many happy hours with BCPL back in the early 80s. (It was that, Fortran, or Pascal; we didn't have a C compiler on the University system. Oh, there was also Algol68C, but I never really got into that.)

¹Perhaps my tutor would've said "wasted", as it had nothing to do with my courses. But I learned a lot, anyhow.


The original title was

   The Development of the C Language
   or,
   Five Little Languages and How They Grew


Not to be confused (as I did initially) with Programming Pearls: Little Languages, by John Bentley. Which is about little languages per se, as this is not how the languages in Ritchie's talk are generally described. In fact, the very first sentence describes Pascal as a "big language".

It's also worth a read: https://dl.acm.org/doi/pdf/10.1145/6424.315691


The name's a presumably ironical spin on the title of an old kid's book, "Five Little Peppers and How They Grew", by Margaret Sidney



i second that recommendation, and i had the same confusion. algol-68 was even considered an especially large language


As in the mention in the article that the Algol-68 compiler for early Unix only supported a subset of the language!


> Computer languages exist to perform useful things that affect the world in some way, not just to express algorithms, and so their success depends in part on their utility.

Their all-in utility. That is, their utility after taking into account usability, but also availability, availability and robustness of libraries, perhaps portability, and I'm sure there are more variables that affect net utility.


This was recently brought into sharp focus while learning a new-to-me C descendant. After working with it for a couple months, I've found a lot to like in the language itself, but the many paper cuts and bad ergonomics of its standard library have considerably drained my enthusiasm for continuing to use it. What a pity.


> C's own descendants, by which I mainly mean C++, may very well be even livelier in the next few years. Aside from languages that are directly descended from C, (particularly C++ but also some others) [...]

Does anyone know what the other languages descended from C they might have been referring to circa 1993?


Earlier than or in 1993:

- C++: 1979-

- Objective C: 1984

- Split-C: 1993

Later than 1993:

- C--: 1997

- C#: 2000

- D: 2001

See also: https://en.wikipedia.org/wiki/List_of_C-family_programming_l... (but this list goes a bit too far IMHO)


There was also this extension of C called Concurrent C, which has its own book called The Concurrent C Programming Language, originally published in 1989. I don't see it on the Wikipedia page, which is why I'm saying it here.


I would consider Rust to be informed enough by C, that it can be considered a descendent—as much as D, and more so than C# (which is more of a Java-descendent; and while Java's syntax is based on C, that's where it ends).


C# was also at least somewhat informed by Delphi, the Object Pascal variant the same architect created just prior to MS luring him away from Borland.


Then there's Cyclone, from 2001 to 2006, which intended to be a systems programming language that could be extensively checked for safety at compile time.

Rust has taken over its basic concept.

https://en.wikipedia.org/wiki/Cyclone_%28programming_languag...


awk: 1977

csh: 1978

perl: 1987

Java: 1995

JavaScript: 1995

C-- is more a compiler intermediate/back-end language, not intended to be written by people


I would add PHP to the list as well


In what sense is perl descended from C?


In the multiple inheritance sense, but I wouldn't call it a descendant either. Larry "simply" scrounged around in '87 and looked at everything he could to put into his awk-but-better tool. In his own words C was a big part of that, with BCPL in the back of his mind.


Curly bracket blocks, much of the statement syntax, the operator hierarchy, many of the standard functions.


Objective-C?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: