(0/3) three sad Cambridge programming language failures that turned into terrible Bell Labs successes
-
(1a/3) CPL, an early 1960s language that aimed to unify lisp and algol with solid foundations
very influential in programming language theory (Strachey, Landin, Scott) but never became a useful language of its own
but
-
(1b/3) BCPL was created as a stripped-down simplified CPL to be used as a bootstrapping implementation language by Martin Richards
who visited MIT on sabbatical and infected Project MAC and the Multics team with his BCPL
-
(1c/3) BCPL was designed for word-addressed mainframes. the Bell Labs Multics refugees Ken Thompson and Dennis Ritchie stripped it down to minicomputer size and adapted it for byte addressing, giving us C
yay.
-
(2a/3) Algol 68 was a notorious failure, which is sad because it’s roughly comparable to Golang in complexity
ahead of its time i guess
there was a project at Cambridge to write an Algol 68 compiler, which i gather was about as successful as the language, i.e. they made it work but nobody used it
-
(2b/3) two notable names:
Chris Cheney came up with an impeccable jewel of an algorithm for a two-space copying garbage collector
Steve Bourne fell in love with Algol 68 syntax, took his love to Bell Labs, and turned it into the standard unix shell
-
(3a/c) Bjarne Stroustrup did his PhD at Cambridge in the late 1970s
BCPL had become the usual systems programming language in Cambridge
Martin Richards used it to write the Tripos operating system (named for a terrible Cambridge pun) around that time, which was later used in the Commodore Amiga
-
(3b/3) Stroustrup is Danish so he had previously used Simula 67, the Scandinavian progenitor of object oriented programming languages
Stroustrup went from Cambridge to Bell Labs
he hated BCPL so much that he mashed up Simula 67 with C to create C++
he was appallingly successful
-
(0b/3) bonus! Cambridge can’t be blamed for everything, Oxford’s just as bad
-
(4a/3) another product of the CPL project was Strachey’s macro processor, which was used to create a macro assembler that could be retargeted to different processors
Strachey was poached by Oxford and founded the computer science department there
-
(4b/3) Doug McIlroy did a sabbatical from Bell Labs to Oxford in the late 1960s
he had previously done a macro processor, but Strachey’s was more elegantly distilled
after McIlroy returned he created the m4 macro processor
-
(2+4/3) the ultimate result of this transatlantic exchange of ideas has to be gnu autoconf, which combines m4 and sh in an unholy mess that everyone hates