Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save peteristhegreat/5a39785b4a986dfc64b208c294d403f7 to your computer and use it in GitHub Desktop.
Save peteristhegreat/5a39785b4a986dfc64b208c294d403f7 to your computer and use it in GitHub Desktop.
A Brief, Incomplete, and Mostly Wrong History of Programming Languages, Analysis

Quick AI analysis of this funny history:

Original Post: A Brief, Incomplete, and Mostly Wrong History of Programming Languages

Original Post by James Iry on Thursday, May 7, 2009

https://james-iry.blogspot.com/2009/05/brief-incomplete-and-mostly-wrong.html

Quick Analysis/Dissection for the Uninitiated

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.

Year Statement Summary ✔️ Truthful Part ❌ Satirical / Impossible Part Explanation Links
1801 Jacquard loom uses punch cards ✔️ Jacquard used punch cards to control weaving patterns. ❌ “weave 'hello, world'” and Reddit-era critique "Hello, world" wasn't a concept in 1801; Reddit didn’t exist. The satire pokes fun at modern programming critiques being absurdly applied to early tech. Jacquard loom
1842 Ada Lovelace writes first program ✔️ Ada wrote the first published algorithm (for Babbage's Analytical Engine). ❌ “Enterprise architects relearn via UML” UML is a 1990s modeling language. The joke mocks UML’s verbosity compared to early conceptual elegance. Ada Lovelace, UML
1936 Turing invents every language, becomes 007 ✔️ Turing developed the concept of a universal machine (basis for all programming). ❌ “Shanghaied by British Intelligence to be 007” Turing worked at Bletchley Park, but the 007 reference is a humorous conflation with James Bond. Alan Turing, Turing machine
1936 Church invents lambda calculus, ignored for not being C-like ✔️ Church introduced lambda calculus the same year. ❌ “Criticized for not being C-like” C didn’t exist until the 1970s. Joke mocks retroactive application of modern biases. Alonzo Church, Lambda calculus
1940s Computers programmed with wiring & switches ✔️ Early computers (e.g., ENIAC) used manual wiring and switches. ❌ “To avoid tabs vs spaces” Joke references a modern programmer debate, anachronistically imposed. ENIAC
1957 FORTRAN created by John Backus at IBM ✔️ FORTRAN was the first high-level compiled language. ❌ “Syntax error if not wearing blue tie” Absurdist satire on IBM’s corporate culture. FORTRAN, John Backus
1958 LISP created by John McCarthy ✔️ LISP introduced by McCarthy, key for recursion and symbolic computation. ❌ “Paul Graham helped invent it” / “strategic parentheses reserve” Paul Graham wasn’t involved in 1958. The parentheses joke mocks LISP’s syntax. LISP, John McCarthy
1959 COBOL created by Grace Hopper and others ✔️ COBOL was developed by a committee including Hopper. ❌ “Lost a bet with L. Ron Hubbard” / “Capitalization Of Boilerplate Oriented Language” Hubbard didn’t influence COBOL. The backronym mocks COBOL’s verbose syntax. COBOL, Grace Hopper

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.

Year Statement Summary ✔️ Truthful Part ❌ Satirical / Impossible Part Explanation Links
1964 BASIC created by Kemeny and Kurtz ✔️ BASIC was designed at Dartmouth to simplify programming for students. ❌ “Go to 1964” (in 1965 entry) Time-travel joke; play on BASIC’s GOTO command. BASIC, John G. Kemeny, Thomas E. Kurtz
1965 Kemeny and Kurtz go to 1964 ❌ Entirely satirical Time-travel gag referencing previous entry. No factual basis.
1970 Scheme created by Steele and Sussman ✔️ Scheme was introduced as a minimalist dialect of LISP. ❌ “Lambda the Ultimate Kitchen Utensil”, “infomercials”, “Java makes lambdas popular by not having them” The paper title parody and Java jab mock Scheme's academic roots and Java's delayed embrace of lambdas (added in Java 8, 2014). Scheme, Guy L. Steele, Gerald Jay Sussman
1970 Pascal created by Niklaus Wirth ✔️ Wirth created Pascal as a teaching language with strong type safety. ❌ “Criticism for := instead of =” predates C The joke mocks anachronistic complaints that would only make sense after C (1972). Pascal, Niklaus Wirth
1972 C and Unix invented by Dennis Ritchie ✔️ Dennis Ritchie co-created C and Unix at Bell Labs with Ken Thompson. ❌ “Gun that shoots forward and backward”, “not satisfied… invents C and Unix” The gun metaphor mocks C’s ability to shoot yourself in the foot (via low-level power and lack of safety features). C, Unix, Dennis Ritchie
1972 Prolog designed by Alain Colmerauer ✔️ Prolog was developed by Colmerauer and Roussel for natural language processing and logic programming. ❌ “Designed with intelligence of a two-year-old”, “says 'No.' to every query” Satire mocks Prolog’s logic paradigm and unhelpful responses from poorly defined rules. Prolog, Alain Colmerauer
1973 ML created by Robin Milner ✔️ Milner created ML for the LCF theorem prover, and it led to the ML family (SML, OCaml, F#). ❌ “M&M type theory”, “head explodes”, “Visual Basic as ML family member” Joke mocks complexity of type theory; M&M = joke on Hindley–Milner. Visual Basic is unrelated; included for comedic incongruity. ML, Robin Milner, Hindley–Milner

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.

Year Statement Summary ✔️ Truthful Part ❌ Satirical / Impossible Part Explanation Links
1980 Smalltalk and "object-oriented" ✔️ Alan Kay led Smalltalk’s development and coined “object-oriented.” ❌ “Objects made of objects all the way down, then turtles” Joke borrows the “turtles all the way down” philosophical metaphor. Smalltalk, Alan Kay
1983 Ada language created by DoD and Ichbiah ✔️ Ada was developed by Jean Ichbiah under contract from the U.S. DoD. ❌ “No evidence Ada programs were completed”, “public works project” Joke about Ada’s reputation for bureaucracy and overengineering. Ada (language), Jean Ichbiah
1983 C++ created by Stroustrup by bolting onto C ✔️ Bjarne Stroustrup created C++ as an extension of C. ❌ “Programs compiled in future by Skynet” Joke about C++ complexity and compile time; Skynet references Terminator. C++, Bjarne Stroustrup
1986 Objective-C by Cox and Love ✔️ Objective-C was created as a hybrid of C and Smalltalk. ❌ “Memory safety of C, speed of Smalltalk”, “dyslexic” Joke reverses traits: C is unsafe; Smalltalk is slow. Satire via inversion. Objective-C
1987 Perl created by Larry Wall ✔️ Larry Wall created Perl as a Unix text processing language. ❌ “Head hits keyboard”, “divine inspiration” Exaggerated origin story pokes fun at Perl’s syntax and Wall’s charisma. Perl, Larry Wall

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.

Year Statement Summary ✔️ Truthful Part ❌ Satirical / Impossible Part Explanation Links
1990 Haskell created by committee incl. SPJ, Hudak, Wadler ✔️ Haskell was developed by a committee of academics including Simon Peyton Jones, Paul Hudak, and Philip Wadler. ❌ “Ashton Kutcher, PETA”, “monads = monoid in endofunctors” used sarcastically Joke contrasts celebrity names with deep category theory. The monad quote is real but used humorously. Haskell, Simon Peyton Jones, Philip Wadler
1991 Python created by Guido van Rossum ✔️ Python was created by van Rossum and released in 1991. ❌ “Argentina operation, cranial scar”, “Poland becomes nervous” Jokes about cult-leader aesthetics and strict syntax dogma ("There should be one-- and preferably only one --obvious way to do it"). Python, Guido van Rossum
1995 PHP created by Rasmus Lerdorf ✔️ Lerdorf created PHP initially as a set of Perl scripts. ❌ “Spaghetti = web model”, “napkin documentation” Satire on PHP's messy early design and inconsistent documentation. PHP, Rasmus Lerdorf
1995 Ruby created by Yukihiro Matsumoto ✔️ Matsumoto created Ruby in the mid-1990s. ❌ “To avert apocalypse”, “real inventor DHH”, “Ruby renamed to Rails” DHH created Rails (2004), not Ruby. Post-apocalyptic joke riffs on Mad Max. Ruby, Yukihiro Matsumoto, Ruby on Rails
1995 JavaScript created by Brendan Eich ✔️ Eich created JavaScript at Netscape in 10 days. Initially called Mocha, then LiveScript. Renamed to JavaScript for marketing. ❌ “Skin disease = ECMAScript” ECMAScript is the official standard, not related to eczema. JavaScript, Brendan Eich, 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.

Year Statement Summary ✔️ Truthful Part ❌ Satirical / Impossible Part Explanation Links
1996 (note: misdated as 2001 in satire) Java created by James Gosling at Sun ✔️ Java was developed by Gosling in the mid-1990s and officially released in 1996. ❌ “2001”, “Sun heralds Java’s novelty” (implied satire) Date is off; also pokes fun at Java’s verbosity and rebranding of known ideas as "novel." Java, James Gosling
2001 C# created by Anders Hejlsberg at Microsoft ✔️ C# was developed as part of the .NET framework under Hejlsberg. ❌ “Microsoft heralds novelty” (compared directly to Java) Joke highlights the similarity between Java and C# while mocking marketing spin. C#, Anders Hejlsberg
2003 Scala created by Martin Odersky ✔️ Scala was created by Odersky to combine OO and functional paradigms. ❌ “Reese’s ad inspiration”, “both groups declare jihad” Satire about paradigm wars; "peanut butter meets chocolate" is a metaphor for hybrid language design. Scala, Martin Odersky

Footnotes

Fortunately for computer science the supply of curly braces and angle brackets remains high.
Catch as catch can - Verity Stob

Edits

5/8/09 added BASIC, 1964
5/8/09 Moved curly brace and angle bracket comment to footnotes
5/8/09 corrected several punctuation and typographical errors
5/8/09 removed bit about Odersky in hiding
5/8/09 added Objective-C, 1986
5/8/09 added Church and Turing
4/9/10 added Ada (1983) and PHP(1995)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment