/contemplation

computer language history

I found myself often googling the creation years of many computer languages during discussion sessions. It was annoying to have to refer Wikipedia every time a comparison of languages ensued. This prompted me to create an image, a card, with a timeline of the more prominent computer languages in the last half century (approximately). As I use Processing on a daily basis I thought it best to synthesize such an image with code. Here is the result.

prog-lang-hist
computer language timeline

Autocode (1952) isn’t really assembly language as I initially thought. It is a family of languages that have simple syntax and are compiled. Lisp (McCarthy 1958; 1st compiler 1962) is the second oldest language and, I must admit, my favorite. Other lisp family members include Scheme (now Racket), Logo (slightly hybridized), Clojure and Rebol. C, Smalltalk and Prolog share the same birth year, which is no small talk! Forth deserves more attention for it’s extremely lightweight footprint and its concatenation oriented, word based programming paradigm.

Perl used to be the language of the internet, still holds up a large part of it. I consider it the Darth Vader of languages. So much expression power is given to the programmer as to surely corrupt them, or make them Perl Monks. I think I hear PHP disagreeing. PHP is the language of the web my dear friends. The web is not the same as the internet! Read this. Without PHP you wouldn’t be reading this blog right now. Facebook was first written in PHP. C++ was initially designed to be an extension language to C i.e. C with classes. However it has far surpassed that initial intention. It is a brave programmer who maintains large C++ projects.

Java needs no introduction. It is not, however a purely object-oriented language, unlike Smalltalk. Ruby, on the other hand, is. Groovy and Scala are hosted languages running on the Java Virtual Machine (JVM). These days the JVM has become famous as the target machine for many languages. One must not forget, however, that the virtual machine concept was first used in Smalltalk. It would be interesting to see hosted implementations of languages on the Smalltalk VM. Perhaps that is wishful thinking. JavaScript is extremely famous, or rather, infamous! I want to believe that the days of browser sniffing and writing polyfills are over. Although future of the web is looking hopeful with ECMAScript 2019.

Then there are the drag and drop languages designed for educational purposes. To prevent children from experiencing the thrill of a core being dumped due to a segmentation fault! Mostly kidding! Scratch is the foremost here. Followed by Snap! The exclamation mark is part of the name. It is inspired by Logo, Lisp, Smalltalk and Scratch, thus having unquestionable pedigree. Then of course there is the Blockly library which allows translation of blocks to any text based language. The superabundance of languages, both computer and human, is worth reflection. It reminds me of this previous post.