A "History of Programming Languages" take on #12in23

I’m not actually planning on doing this, but here’s a rough hack at a #12in32 plan that tries to dip into languages chronologically from the 50s - 80s. When appropriate, I’ve substituted influential languages that we do not have tracks for with close descendant.

50s-60s

  • Fortran

  • COBOL

  • Common Lisp

70s

  • Prolog

  • ML (substitute Standard ML)

  • C

  • Shell (substitute bash track)

  • Awk

  • Scheme

80s

  • C++ or Objective-C

  • Perl or Tcl

  • Erlang

One might optionally consider dropping Awk in favor of starting with an Assembly language to give an impression of what programming was like prior to widespread compiler adoption. In reality, this would have been something like 704 Assembly (https://bitsavers.org/pdf/mit/computer_center/Coding_for_the_MIT-IBM_704_Computer_Oct57.pdf), but Intel assembly is a close enough approximation.

Note:

  • We don’t introduce OOP until the 1980s via C++, but Simula formulated OOP in the 1960s.

  • We’re missing a few very influential languages like APL, BASIC, Algol, Pascal, SmallTalk

3 Likes

Exercism has Smalltalk via Pharo. :)

When you say “we are missing a few very influential languages”, are you talking about tracks that are not here?

Because there are two repositories for Pascal, there is Smalltalk, as well as APL. Some of these are not active, or are archived, but may be in a state where they could be picked up and put in place, with some work.

Correct, when I say “influential,” I mean historically influential in the time period of the 50s-80s, either via direct usage or influence on later languages.

I’m not really being critical here. COBOL is historic, but there are countless lines of code running in production today, so it’s potentially pragmatic. In contrast, ALGOL60 or ALGOL68 is more historical, but had massive influence on C, C++, Pascal, etc. and was the “standard” language for publishing algorithms in the Communications of the ACM (http://calgo.acm.org). However, I don’t think there’s much ALGOL in the wild these days. ALGOL probably isn’t worth dusting off, but it would be cool to make progress on other tracks at the margins.

Using successor languages like Pharo potentially makes a lot of sense if it is able to give exposure to aspects of the historic predecessor (Pharo → SmallTalk apparently).