A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Words
1250
Reading
6 min
Listen
Play
9y

 

A Brief, Incomplete, and Mostly Wrong History of Programming Languages 

   1801 - Joseph Marie Jacquard uses punch cards to instruct a loom to  weave "hello, world" into a tapestry.  Redditers of the time are not  impressed due to the lack of tail call recursion, concurrency, or proper  capitalization.1842 - Ada Lovelace writes the first program.   She is hampered in her efforts by the minor inconvenience that she  doesn't have any actual computers to run her code.  Enterprise  architects will later relearn her techniques in order to program in UML.1936  - Alan Turing invents every programming language that will ever be but  is shanghaied by British Intelligence to be 007 before he can patent  them.1936 - Alonzo Church also invents every language that will  ever be but does it better.  His lambda calculus is ignored because it  is insufficiently C-like.  This criticism occurs in spite of the fact  that C has not yet been invented.1940s - Various "computers" are  "programmed" using direct wiring and switches.  Engineers do this in  order to avoid the tabs vs spaces debate.1957 - John Backus and  IBM create FORTRAN.  There's nothing funny about IBM or FORTRAN.  It is a  syntax error to write FORTRAN while not wearing a blue tie.1958 -  John McCarthy and Paul Graham invent LISP.  Due to high costs caused by  a post-war depletion of the strategic parentheses reserve LISP never  becomes popular[1]. In spite of its lack of popularity, LISP (now "Lisp"  or sometimes "Arc") remains an influential language in "key algorithmic  techniques such as recursion and condescension"[2].1959 - After  losing a bet with L. Ron Hubbard, Grace Hopper and several other sadists  invent the Capitalization Of Boilerplate Oriented Language (COBOL) .   Years later, in a misguided and sexist retaliation against Adm. Hopper's  COBOL work, Ruby conferences frequently feature misogynistic material.1964 - John Kemeny and Thomas Kurtz create BASIC, an unstructured programming language for non-computer scientists.1965 - Kemeny and Kurtz go to 1964.1970  - Guy Steele and Gerald Sussman create Scheme.  Their work leads to a  series of "Lambda the Ultimate" papers culminating in "Lambda the  Ultimate Kitchen Utensil."  This paper becomes the basis for a long  running, but ultimately unsuccessful run of late night infomercials.   Lambdas are relegated to relative obscurity until Java makes them  popular by not having them.1970 - Niklaus Wirth creates Pascal, a  procedural language.  Critics immediately denounce Pascal because it  uses "x := x + y" syntax instead of the more familiar C-like "x = x +  y".  This criticism happens in spite of the fact that C has not yet been  invented.1972 - Dennis Ritchie invents a powerful gun that  shoots both forward and backward simultaneously.  Not satisfied with the  number of deaths and permanent maimings from that invention he invents C  and Unix.1972 - Alain Colmerauer designs the logic language  Prolog.  His goal is to create a language with the intelligence of a two  year old.  He proves he has reached his goal by showing a Prolog  session that says "No." to every query.1973 - Robin Milner  creates ML, a language based on the M&M type theory.  ML begets SML  which has a formally specified semantics.  When asked for a formal  semantics of the formal semantics Milner's head explodes.  Other well  known languages in the ML family include OCaml, F#, and Visual Basic.1980  - Alan Kay creates Smalltalk and invents the term "object oriented."   When asked what that means he replies, "Smalltalk programs are just  objects." When asked what objects are made of he replies, "objects."   When asked again he says "look, it's all objects all the way down.   Until you reach turtles."1983 - In honor of Ada Lovelace's  ability to create programs that never ran, Jean Ichbiah and the US  Department of Defense create the Ada programming language. In spite of  the lack of evidence that any significant Ada program is ever completed  historians believe Ada to be a successful public works project that  keeps several thousand roving defense contractors out of gangs.1983  - Bjarne Stroustrup bolts everything he's ever heard of onto C to  create C++.  The resulting language is so complex that programs must be  sent to the future to be compiled by the Skynet artificial intelligence.   Build times suffer.  Skynet's motives for performing the service  remain unclear but spokespeople from the future say "there is nothing to  be concerned about, baby," in an Austrian accented monotones.  There is  some speculation that Skynet is nothing more than a pretentious buffer  overrun.1986 - Brad Cox and Tom Love create Objective-C,  announcing "this language has all the memory safety of C combined with  all the blazing speed of Smalltalk."  Modern historians suspect the two  were dyslexic.1987 - Larry Wall falls asleep and hits Larry  Wall's forehead on the keyboard.  Upon waking Larry Wall decides that  the string of characters on Larry Wall's monitor isn't random but an  example program in a programming language that God wants His prophet,  Larry Wall, to design.  Perl is born.1990 - A committee formed by  Simon Peyton-Jones, Paul Hudak, Philip Wadler, Ashton Kutcher, and  People for the Ethical Treatment of Animals creates Haskell, a pure,  non-strict, functional language.  Haskell gets some resistance due to  the complexity of using monads to control side effects.  Wadler tries to  appease critics by explaining that "a monad is a monoid in the category  of endofunctors, what's the problem?"1991 - Dutch programmer  Guido van Rossum travels to Argentina for a mysterious operation.  He  returns with a large cranial scar, invents Python, is declared Dictator  for Life by legions of followers, and announces to the world that "There  Is Only One Way to Do It."  Poland becomes nervous.1995 - At a  neighborhood Italian restaurant Rasmus Lerdorf realizes that his plate  of spaghetti is an excellent model for understanding the World Wide Web  and that web applications should mimic their medium.  On the back of his  napkin he designs Programmable Hyperlinked Pasta (PHP). PHP  documentation remains on that napkin to this day.1995 - Yukihiro  "Mad Matz" Matsumoto creates Ruby to avert some vaguely unspecified  apocalypse that will leave Australia a desert run by mohawked warriors  and Tina Turner.  The language is later renamed Ruby on Rails by its  real inventor, David Heinemeier Hansson.  [The bit about Matsumoto  inventing a language called Ruby never happened and better be removed in  the next revision of this article - DHH].1995 - Brendan Eich  reads up on every mistake ever made in designing a programming language,  invents a few more, and creates LiveScript.  Later, in an effort to  cash in on the popularity of Java the language is renamed JavaScript.  Later still, in an effort to cash in on the popularity of skin diseases  the language is renamed ECMAScript.1996 - James Gosling invents  Java.  Java is a relatively verbose, garbage collected, class based,  statically typed, single dispatch, object oriented language with single  implementation inheritance and multiple interface inheritance.  Sun  loudly heralds Java's novelty.2001 - Anders Hejlsberg invents C#.  C# is a relatively verbose, garbage collected, class based, statically  typed, single dispatch, object oriented language with single  implementation inheritance and multiple interface inheritance.   Microsoft loudly heralds C#'s novelty.2003 - A drunken Martin  Odersky sees a Reese's Peanut Butter Cup ad featuring somebody's peanut  butter getting on somebody else's chocolate and has an idea.  He creates  Scala, a language that unifies constructs from both object oriented and  functional languages.  This pisses off both groups and each promptly  declares jihad.

Footnotes

  1. Fortunately for computer science the supply of curly braces and angle brackets remains high.
  2. Catch as catch can - Verity Stob
A Brief, Incomplete, and Mostly Wrong History of Programming Langua... | Ecency