2015-10-02
The ListI think only these general-purpose high-level languages are ground breaking: Of them, I have programmed in Fortran, Lisp, Cobol, Snobol4, and Prolog, and used direct descendents of Algol (Pascal and C), and languages influenced by Algol, Smalltalk, and Lisp (Java and Python). I'm developing a successor to Prograph (Full Metal Jacket). All the languages look different. If a language looks like any language already on the list, that should be taken as a hint that it shouldn't be on the list. I have chosen the list carefully. To be ground breaking, a language must appear out of the blue, with no obvious predecessors. It also has to introduce important new ideas. Each language can be thought of as the root of a language family. I hope we can all agree on the inclusion of Fortran, Lisp, Algol 60, and Prolog. Some of my other choices are more contentious, so at this point I will defend four of them. CobolNot many people like Cobol. But it did bring programming
to the masses in a way that Fortran and Lisp didn't, and it did introduce
some key ideas, the most influential being the data structure (C's
SASLMany of the ideas in SASL were already present in Lisp, but SASL was the first pure functional language, and the ancestor of all such languages in use or development today. It lacked the advanced type systems of modern functional languages, and the most recent functional languages such as Coq are now very different from it, but they evolved gradually from SASL, in Coq's case, via Miranda and Haskell. Other functional languages gradually evolved from SASL in different directions. Many ideas pioneered by the functional language community get adopted by other languages. Full Metal Jacket uses Hindley-Milner type inference. SmalltalkSmalltalk wasn't the first object-oriented language: Simula was. But Simula is better thought of as a descendent and close relative of Algol 60, which it resembles. Smalltalk is very different from Simula: everything is an object; everything is done by passing messages to objects; and it's a completely self-contained environment. PrographThis was the first visual dataflow language. Visual dataflow is so different from conventional programming that visual dataflow language designers cannot learn much from the experiences of designers of text-based languages, so the errors and deficiences in its design are to be expected. I'm convinced visual dataflow will become important in future. Why languages rather than ideas?Ideas are important, usually more important than languages embodying them. However, there are hundreds of such ideas, spread across many languages, and considerable disagreement about which are important or even desirable. Static or dynamic typing? What exactly is meant by object orientation? Therefore, it's much more difficult to decide whether an idea is ground breaking. There are other dimensions I could have chosen, for example designers. However, few if any worked entirely on their own, and some languages such as Cobol and Algol were designed by committees. I could even have chosen dates: the years around 1960 seem as important for programming languages as the years around 1900 were for powered flight. Inventions and discoveries do often appear when the time is right for them. Had the Wright Brothers not built the Flyer in 1903, the first aeroplane would have been Alberto Santos Dumont's 14-bis in 1906. But he was not the the only other person working on powered flight at the time. The only discovery I can think of which depended entlrely on its discoverer is the General Theory of Relativity. © Copyright Donald Fisk 2015 |