Thursday, May 7, 2009

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

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)

708 comments:

  1. Jacquard's loom wasn't concurrent? It was pretty thoroughly multithreaded, I'd have thought!

    ReplyDelete
  2. As the story goes, when Odersky got the idea for Scala, he was high on pizza and listening to "Stairway to heaven"

    ReplyDelete
  3. Languages wars are usually sad but languages history is definitely funny! Thanks.

    ReplyDelete
  4. :D Thx.

    You did however forget some important/interesting languages e.g. Objective C (all things Apple?)

    ReplyDelete
  5. I can't stop laughing... thanks man! :)

    ReplyDelete
  6. Objective C is nice but it's not considered an influential language. It's only used on the Apple platform and nothing else. It didn't have anything that could inspire a new language designer, because in the end its object model is just a light smalltalk layer over C.

    I'd say, it didn't make "History".

    ReplyDelete
  7. A laugh a line. Brilliant. Critics love "A Brief, Incomplete, and Mostly Wrong History of Programming Languages" and so will you.

    ReplyDelete
  8. juasss "John McCarthy and Paul Graham invent LISP"

    ReplyDelete
  9. Oh God - that was hilarious!!!!! Thank you for the best laugh I've had in ages!!!

    ReplyDelete
  10. Very nice! :) Ada is missing though.

    ReplyDelete
  11. No mention of PHP? Is that because most people don't consider it a programming language?

    ReplyDelete
  12. And every 3 years, Alan Kay gets a fellowship title at another company (Apple, HP, Disney) and re-invents Smalltalk under a different name,

    ReplyDelete
  13. Sorry it wasn't enlightening which I thought it would be.

    And this page of yours constantly contacted and donwloaded MB's of data from s3. aws. or Amazon or whatever, eating up my precious EDGE quota.

    ReplyDelete
  14. This comment has been removed by the author.

    ReplyDelete
  15. What about Factor?

    ReplyDelete
  16. SOrry but why Poland becomes nervous by the fact that TIOOWTDI ?

    ReplyDelete
  17. I am now a far better programmer for having read this. I hardly ever use gotos anymore and have given up eating meat. Bless you.

    ReplyDelete
  18. i really love this humour, thank you

    ReplyDelete
  19. That was excellent.

    First useful use of a blog ever.

    ReplyDelete
  20. Thanks a lot ! your post made my day ;)

    ReplyDelete
  21. 10 LET FUNNY = 1
    20 IF FUNNY <> 0 GOTO 50
    30 PRINT "LAME"
    40 END
    50 PRINT "YOU WIN THE INTERNETS"
    60 END

    ReplyDelete
  22. Made me spurt coffee out of my nose. Thanks!

    ReplyDelete
  23. I can't help it...Man! Awesome!!

    ReplyDelete
  24. Lua is missing, wtf!?

    ReplyDelete
  25. "Engineers do this in order to avoid the tabs vs spaces debate."

    Unfortunately, the plug-boards vs. switches war of the early 40's was bloody and long. Some say it led to the development of the bombe.

    ReplyDelete
  26. Very good! I don't get all the jokes but bonus points (bonii points?) for making Haskell amusing.

    ReplyDelete
  27. Brilliant!

    However I think you should change the Java entry to:

    'Java finally fixed C++ but inadvertently evolved into skynet'

    regards
    Al

    ReplyDelete
  28. BWAHAHAHA!!!! Oh, I think my stack overflowed...

    ReplyDelete
  29. nice post, the creation of javascript is quite good

    ReplyDelete
  30. This is great! Very funny stuff.

    ReplyDelete
  31. Very funny, but you somehow forgot the first OO-langauge, Simula.

    ReplyDelete
  32. This was just hilarious, well done!!

    ReplyDelete
  33. @Duck
    Indeed PHP is a scripting language. Just like C# and imo it shouldn't be in that list either.

    ReplyDelete
  34. Yeah, hey Perl is a scripting language too. It's just more ridiculous even than PHP.

    You could come up with some funnies for TCL I bet...

    Very funny. Thank you

    ReplyDelete
  35. Now this is a slice of fried gold.

    ReplyDelete
  36. $ sed -e '/Peanut/s/\(Ree\).\(e\)/\1s\2/g'
    # hint: you forgot regexps! (and shell ;-)

    ReplyDelete
  37. You left out FORTH, the only language with scriptural authority?
    (God said, "Go Forth, but he couldn't find the run button... ")

    ReplyDelete
  38. This was such fun to read. Thanks, you made my day.

    ReplyDelete
  39. This is all 100% accurate of course, but incomplete. Don't forget:

    1968: Chuck Moore gets a sweet gig at the National Radio Astronomy Observatory. Realising his poor hygiene and complete inability to speak any human language would inevitably lead to unemployment, he invents Forth, a language interpreter with no features at all and even less syntax than Lisp, in which he rewrites all the observatory's software in a week so that it runs ten times as fast and is totally unmaintainable by anyone but him. Geeks surprise him by taking the language and running with it, making N squared incompatible implementations where N = the number of users. They do this because Star Trek: The Next Generation is still ten years in the future and nobody has invented the Klingon language yet.

    ReplyDelete
  40. I am angry because you omitted my favorite language! Let's say it's Dylan this time.

    ReplyDelete
  41. What, no Lua? Video gamers everywhere will cry fowl!

    ReplyDelete
  42. Thanks. I needed this to brighten my day. I can relate to the Prolog section, but I'm surprised that Ada wasn't mentioned.

    ReplyDelete
  43. PHP: Began as a simple way to include a few elements in a web page. Syntax slowly evolved using a sophisticated voting system by the masses and also tacking features on in a way described as "willy nilly". Later PERL developers flocked to the PHP, dissatisfied with the complexity of PERL. They solved this problem by adding millions of functions that all followed different naming conventions and did not always do what the name suggested. For instance: serve_up_a_flickr_website(); actually created a Facebook-like site. Objects were introduced late in the game but are highly unused because there are functions that'll do just about anything in PHP.

    ReplyDelete
  44. But FORTRAN was for men ...

    ReplyDelete
  45. Awesome, very funny.

    You misspelled "still" ("stil") in the funniest paragraph, the 1995/JavaScript paragraph.

    ReplyDelete
  46. I got the brief and the incomplete, but, so far, I haven't found any errors.

    Anyway, I'd love to see Forth in there. For no other reason, because I can't settle for a brief way to make fun of it... so many options!

    ReplyDelete
  47. VB Sucks, C# rules.....

    great article, really made me LOL

    ReplyDelete
  48. > Smalltalk 1980

    Just as funny in 1971 and more likely to result in Smalltalk-72 Smalltalk-74 Smalltalk-76 and Smalltalk-78.

    http://www.levenez.com/lang/lang.pdf

    ReplyDelete
  49. What about this one:

    1993 - Roberto Ierusalimschy invents Lua, a very powerfull programmer repelent. He mixes all the things programmers hate: simplicity, indexes starting at 1, not object oriented, "~=" means "not equal", avoids bloatware, etc. He is highly successfull.

    ReplyDelete
  50. I think we should punish the Smalltalk guy for inventing an inferior and disturbing paradigm. We should also punish Stroustrup and Gosling for popularizing it. Because of them, millions of programmers have suffered and thousands have killed themselves.

    ReplyDelete
  51. That was all kinds of awesome.

    Should've had something about Java being invented because "C++ is just too HARD, and omigod, did you see Billy Wilson, he is SOOOO cute and dreamy!!!" (All said while cracking gum and twirling that lock of hair with an index finger....)

    ReplyDelete
  52. JAVA IS SUPERIOR!

    ReplyDelete
  53. Ignore everyone who's telling you what's missing. It's delightful and hilarious exactly the way it is.

    You win the Internets, indeed. Good stuff.

    ReplyDelete
  54. Bravo! This is classic!

    ReplyDelete
  55. Now that was funny. Although, I cant believe that no one has yet complained that APL did not get a nod.

    ReplyDelete
  56. I'm surprised APL isn't in the list! Talk about a much maligned language that had a fierce following!

    ReplyDelete
  57. 1964 -- IBM adds the IO capabilities of COBOL to ALGOL, stirs in semicolons and decides that they have created the first real programming language, and created PL/1

    ReplyDelete
  58. Anyone want to dabble in the history of Erlang?

    ReplyDelete
  59. Brilliant, but you left out Redcode!

    ReplyDelete
  60. Oh my god. This is so freakin funny, I have tears running down my cheeks and I almost fell out of my chair. Twice.

    Thank you.

    ReplyDelete
  61. This is a modern classic. Very nice job.

    ReplyDelete
  62. I would have included the massive EJB fraud foisted on the world by Sun circa 2001

    ReplyDelete
  63. Very good, but...

    C# was created in 1999; that's when I first read a spec of it anyway, I don't care that no compiler was available for it at that time.

    ReplyDelete
  64. you sir, made my day!

    great work

    ReplyDelete
  65. That was really good...

    but where is Visual Basic? it is perhaps the most derided of all languages.

    ReplyDelete
  66. at which point FORTRAN turned into 4CHAN

    ReplyDelete
  67. What, no Eiffel? Sacrebleu!

    ReplyDelete
  68. My favorite was L6 (Low Level Linked List Language). Someone couldn't count.

    And Pascal, which was mentioned, was written as a joke until someone decided to implement it on the PC.

    And hey, if you can't find something funny to say about ADA, you're not a real comedian.

    No where's my old book on programming languages, the one with the Tower of Babel on it? Need to look up some of these languages. Anybody see it around here?

    ReplyDelete
  69. You forgot Charles Babage. http://en.wikipedia.org/wiki/Charles_Babbage

    ReplyDelete
  70. Great stuff!

    But where is Clojure?

    ReplyDelete
  71. I prefer to think that this is the official history of programming languages and hope to see it on wikipedia soon as fact.

    ReplyDelete
  72. Awesome! but there's a bunch of easy pickings for real stupidity you missed:
    RPG, XML, CSS (Which should be banned), Awk, Bash/sh, Delphi, sendmail.cf (Which in itself might qualify as a language.)
    and of course GROOVY! Which is just itchin' to be poked at.
    CMON' the 'eggs' in python are cracked, ruby gems don't sparkle unless they run on the JVM, what about assembly? Didn't we all write for the Motorola 6800?

    ReplyDelete
  73. I see no inaccuracies whatsoever in this excellent and perspicacious history. I hereby declare it a Reliable Source and will just be off to Wikipedia to add every word.

    ReplyDelete
  74. If you haven't seen it, the Stroustrop 'Why I invented C++' interview is awesome:

    http://www.odgaard.org/jeod/funny/interview.html- j

    ReplyDelete
  75. Paul Graham didn't invent Lisp all by himself?

    Whatdayaknow, you learn something new everyday...

    ReplyDelete
  76. HAI
    CAN HAS STDIO?
    VISIBLE "What about LOLCODE?!?!!"
    KTHXBYE

    ReplyDelete
  77. *rolling on the floor laughing*
    The one about Haskell was especially good.
    thanks mate!

    ReplyDelete
  78. *falls off chair laughing* :D

    ReplyDelete
  79. This was hilarious.....Thanks for sharing a programmers pain... :)

    ReplyDelete
  80. Thanks, Funny Stuff so many gems in there has me laughing so hard..

    What about Lingo ( has arrays which start at 1.. pfft disgrace ).

    ReplyDelete
  81. Good one.

    What, --insert programming language here-- is not listed?

    ReplyDelete
  82. The comment on PHP is lacking the beginning: In 1994, a guy named Rasmus Lerdorf, who hates programming, printed out an HTML page and shook the printout so hard that pieces of it fell off (this is known as the "shaken page syndrome"). Then he let his dog chew on the detached pieces. He glued those pieces back and typed the result into the computer.

    ReplyDelete
  83. brilliantly funny throughtout. and 1965 was pure, inspired genius :)

    ReplyDelete
  84. Previously mentioned you missed Forth which has lead many to a Fifth to help forget about it and taking to the Fifth to deny all knowledge. Only to be perverted into postscript and then PDF. Also, it is of particular celestial importance controlling telescopes and the Sun (Sun monitor is Forth).

    ReplyDelete
  85. James invented Java in the spring of 1991, the general idea being that he disliked C++ and everyone else disliked his previous effort, Object-Postscript [from NeWS], because of the RPN syntax, so he rewrote the NeWS interpreter with a c++ like syntax.

    ReplyDelete
  86. Sorry everyone for my comment maligning Objective C. I used sour milk in my cereal and couldn't think straight after that.

    History of JavaScript was brilliant! Unfortunately the real history was far worse!

    ¿Donde esta PostScript?

    And lastly, what about HTML, about which I like to say: it's not "what you see is what you get (WYSIWYG)," it's "what you get is what you deserve!"

    ReplyDelete
  87. Where's INTERCAL?

    ReplyDelete
  88. An excellent revision of history. Don't forget Prograph though!

    http://en.wikipedia.org/wiki/Prograph

    ReplyDelete
  89. Ok Historians:
    1955(?) Somebody at IBM forgets to clear the E Register and the JSR is born.

    ReplyDelete
  90. Where is RPG?
    Am I the only human who programmed in RPG, RPG I and RPG II?
    It's been 20 or so years and those codes are still in my head.

    ReplyDelete
  91. Typical of programmers to forget SQL. Is it because all of them hate databases and goes to any length to avoid them?

    ReplyDelete
  92. No one seems to have noticed the Jane Austen connection.

    ReplyDelete
  93. Simply Awesome! Thank you

    Grammar nit:
    1983 - monotone should be singular

    For your consideration:
    1973 - add MILF to the end list

    ReplyDelete
  94. This is classic Wikipedia content. Well done! For those who missed ADA, it's in there too. You just need a security clearance to see it. And VB is there, too. These days VB on steroids is called Java.

    ReplyDelete
  95. This comment has been removed by the author.

    ReplyDelete
  96. This comment has been removed by a blog administrator.

    ReplyDelete
  97. The Programming Language Abstract link above is spiked. Don't click it.

    ReplyDelete
  98. MicroSoft Basic: Mostly Harmless

    ReplyDelete
  99. If you haven't seen it yet, Dick Gabriel and Guy Steele have a talk called "50 in 50", where they discuss 50 programming languages in 50 minutes. I think they originally wrote it for the History of Programming Languages conference, but they've since done it at OOPSLA and JAOO. I found a video for the JAOO one here:
    http://blog.jaoo.dk/2008/11/21/art-and-code-obscure-or-beautiful-code/

    ReplyDelete
  100. Anonymous wrote:
    > Objective C is nice but it's
    > not considered an influential
    > language.

    Unless you consider that *millions* of iPhones are running it, and you can literally make hundreds of thousands of dollars in a few weeks if you use Objective C to write the next popular app in the iPhone Store.

    But aside from the millions of people using Objective C on their iPhones every day around the world, nobody really uses it.

    ReplyDelete
  101. This comment has been removed by a blog administrator.

    ReplyDelete
  102. Flex/AIR will have to be added in the future, with some comments on Adobe's plans for world domination.

    ReplyDelete
  103. Here are a couple I came up with.

    1960 - Algol 60 is standardized by an international group of academics. They leave out useless frills like IO and invent a new calling convention that is used to torture CS grad students.

    1968 - Algol 68 is standardized, Wirth nails a list of complaints to the door and creates Pascal.

    1963 - Ken Iverson invents APL and bases its syntax on some gold tablets given to him by the angel Moroni.

    1980 - The DoD solves the problem of 500+ programming languages by combining all of their features into Ada.

    ReplyDelete
  104. Forgetting PHP is a kindness. This is so good.

    ReplyDelete
  105. The PERL comment made me die. Thank you!

    ReplyDelete
  106. 1986 - Joe Armstrong implements Erlang which is later open sourced. Erlang is the first language to properly execute a bullet-proof thread safe hot updating seamlessly distributed super-scalable VM which is destined to rule the web, but it is the very last language to achieve x86 SMP support. Unfortunately this is not a joke.

    ReplyDelete
  107. Might I add a request for Dylan, invented by Apple in the early nineties?

    ReplyDelete
  108. 1967 - IBM forges PL/I in the halls of Armonk to reinforce their stranglehold on the computing industry. Despite its promising future, the language is banned under the Strategic Arms Limitation Treaty of 1972.

    1986 - Bertrand Meyer founds the first Church of Eiffel based on the principles of object-orientation, design by contract, and flagellation.

    ReplyDelete
  109. May I ask for the history of the J language? :)

    ReplyDelete
  110. 0000 - and GOD said let there be Light, and Assembly language sprang forth from the blackness and GOD looked upon what he had created and it was good. And then the darkness spat forth the curse of high level languages to entangle the good and drag it into the pit.

    ReplyDelete
  111. That was so funny! Ha ha ha!!!

    ReplyDelete
  112. FANTASTIC!! This is collectable!
    A word about Jules would have been Jovial, too:-)

    ReplyDelete
  113. 1993 - Brain**k [-]>[-]<>++++++++++[<++++++++++>-]<-.>++++[<++++>-]<-.>++++[<---->-]<+++.----.>++++[<++++>-]<+++.>++++[<---->-]<+.-.>++++++++[<-------->-]<----.>++++++++[<++++++++>-]<++.>+++++[<+++++>-]<--. by Urban Müller.

    ReplyDelete
  114. You are made of win -- best bday present I've received in nearly *ever*.

    ReplyDelete
  115. 1999 - Dissatisfied with the lack of portability and abstraction in hardware design, a consortium of Electronic Design Automation companies create SystemC, allowing software engineers to design hardware and EDA companies to make lots of money selling separate compilers for CMOS and TTL based designs. Manufacturers later complain of reduced yields because of debug symbols not being stripped, increasing die sizes.

    ReplyDelete
  116. "1965 - Kemeny and Kurtz go to 1964." Cracked me up.

    ReplyDelete
  117. It seems an Underflow-In stack!

    Many very popular missing from your "Very brief, incomplete ..." list.

    Not to mention the very few, Simula, Snobol, Icon (and Unicon), etc.

    ReplyDelete
  118. "recursion and condescension," lol :))

    ReplyDelete
  119. Thanks that's great keep it upto date :D
    Steve

    ReplyDelete
  120. What about occam? Invented in the early 1980s for parallel programming. Named after William of Ockham a 14th century monk famous for Ockham's Razor (at that time razors han't been invented so a razor was a witty saying)"entia non sunt multiplicanda praeter necessitatem" - in English, this is "entities should not be multiplied beyond necessity" and in American KISS (Keep It Simple Stupid). KISS was exactly what the language was, so you could actually get things done in it. For most programmers, delivering a result was far too innovative an idea, so occam failed to catch on. If it had, we would have Windows 8 by now and it would be running like greased lighning on todays 4 core processors and would need 1G RAM to boot up.

    ReplyDelete
  121. 1987 - Dan Winkler invents HyperTalk, an English like language for programming HyperCard. Unfortunately no programs are ever written in it since programmers can't write English.

    ReplyDelete
  122. James, nice to know that you didn't leave your humor in Austin

    ReplyDelete
  123. 1988: in a daring escape from Hungary, Tim Osterhout defects to the West. He brings with him the Soviet's own version of Lisp. They used the cheaper square bracket [ instead of parens ( and everything is a string and there are no macros, but it's not too bad for a commie knockoff.

    ReplyDelete
  124. Hilarious. What about object Pascal, central to the Lisa and early Macs?

    ReplyDelete
  125. How can you forget the most -- ahem -- versatile language of all: RPG, in all its evolving versions?

    ReplyDelete
  126. I take great exception in the fact that variations of the word create are misspelled throughout this blog. Any good C Compiler would have caught this suntax error!

    Great blog.... left me with a huge grin. My hat's off to the individual who has creat'd it.

    ReplyDelete
  127. Let's not forget the precursors to Scheme, besides LISP and Lambda Calculus. Without the need to teach computers to understand children's stories and play with children's blocks, Hewitt, Winograd, Sussman, and so on would not have first needed to invent PLANNER, then CONNIVER, ultimately leading to what rightly should have been called SCHEMER. PLANNER was especially good at writing programs that enabled robots to efficiently fail in all possible ways, without repeating themselves (unlike humans attempting the same tasks, who typically repeat the same failing strategies at random and ad nauseum, showing that robots are indeed smarter than humans).

    ReplyDelete
  128. Late 1960's, early 1970's - Seymour Papert at MIT, with assistance from Wally Feurzeig at BBN as well as various grad students, invent LOGO, on the belief children could be tricked into actually thinking correctly if they learned LISP but it was disguised to look more like BASIC or FORTRAN syntax, given the world-wide shortage of parentheses and the need to reassure mathematics teachers that precedence of operators was something students should guess about. (Larry Tesler also tried this straegy on grownup programmers, by disguising Scheme as Dylan.)

    (This isn't really a fair characterization of any of the above, of course!)
    -- One of the co-conspirator grad students

    ReplyDelete
  129. Gee, 140 comments and only one (miscapitalized) reference to ...

    1962 - 67 - David Farber, Ralph Griswold and Ivan Polonsky create SNOBOL, SNOBOL3 & SNOBOL, a language with only one statement format:

    label string pattern = replacement :(success/fail goto)

    1968 - Jim Gimpel creates, ICEBOL, a SNOBOL4 program that removes all white space from a SNOBOL4 program.

    Late 70's - Numerous veterinarians misspell the name of our long-haired, white cat.

    ReplyDelete
  130. Absolutely spot on. :) But what about Logo?

    ReplyDelete
  131. Excellent! You forgot Ada, though. Too bad the developers of Ada didn't.

    ReplyDelete
  132. How about PL1: Programming in PL1 is like flying a plain with 7,000 buttons. If you know what all the buttons do you're soaring, but god help you if you loose the manual!

    ReplyDelete
  133. my favourite FORTRAN program reads:

    REALITY, SANITY, and ME
    STOP
    END

    ReplyDelete
  134. Since there is more than one way to do it, I completely expect your explanation of the origin of perl to make it into the official perl faq sometime before the month is out.
    captcha: cycos

    ReplyDelete
  135. As one satirist to another: Dude, that was awesome.

    ReplyDelete
  136. BCPL aka the first curly brackets programming language.
    'nuf said.

    ReplyDelete
  137. Thanks for this post! :)

    Isn't it Tina Arena instead of Tina Turner?

    ReplyDelete
  138. 2009: Simon Jackson suggests that all instance variables should be method local to make assignment focused in one method. All languages decide this is a bad idea, and snoop bus logic blooms to exceed the size of a silicon wafer.

    ReplyDelete
  139. 1990 - Ken Iverson and Roger Hui decide that APL is too verbose and by removing all variables create tacit J. Attempts to further reduce programming keystrokes may have been successful, but vanish into the empty spaces between words in blog posts.

    ReplyDelete
  140. Great write up :-) ... but I think your a few years late on the Java one. Even though it was distributed outside of Sun for the first time in 1995 I believe it was around for multiple years before hand.

    ReplyDelete
  141. 2003 - Giancarlo Niccolai decided there were not enough programming languages around so he invented Falcon (From an earlier language named HASTE -- Haste Advanced Simple Text Evaluator). Instead of focusing on one paradigm, Falcon was built off the idea of being a poser. Niccolai created Falcon after he tried to market a more advanced version of HASTE called Haste Advanced Text Evaluator (HATE) which didn't prove popular with many IT shops.

    ReplyDelete
  142. 10 FOR I=1 TO 10
    20 PRINT "ROFLMAO"
    30 NEXT I
    40 END

    ReplyDelete
  143. I am pressing my thighs together in happiness. All my years of obsessive, insular study, and the sacrifice of a well-rounded personality in favour of a detailed grasp of programming paradigms, suddenly became worthwhile.

    ReplyDelete
  144. Very funny.

    Aren't .NET and SilverLight some awful crap microgarbage languages?

    AMOS Professional is the best I've ever used. (A BASIC language variation.) It's excellent.

    ReplyDelete
  145. "There is some speculation that Skynet is nothing more than a pretentious buffer overrun."A correction and additions to this entry:Skynet is a buffer overrun that began to learn at a geometric rate. It became self-aware at 2:14 a.m. Eastern time, August 29th, 1997.
    Thankfully, the Windows 98 host went BSOD a millisecond later.
    Unthankfully, in Redmond, Washington, USA, deranged COM-oriented mutants survived the fallout. Their unnecessarily long reign of terror was enforced by their ability to cause derangement and confusion in the human populace.

    J_Tom_Moon_79

    ReplyDelete
  146. you've exhausted my laugh quota! thankyou

    ReplyDelete
  147. You forgot Simula, and gave Smalltalk the fake Simula should have gotten! :-P

    ReplyDelete
  148. Brilliant, was scrumptious with my morning tea.

    ReplyDelete
  149. Outstanding
    Especially about perl

    ReplyDelete
  150. So much brilliant stuff in this, hats off to you, sir. The C++ entry alone... And the novelty of C#.

    By the way, notice how the C# spec claims C++ as an influence but doesn't mention Java, and the Java spec claims Smalltalk as an influence but not C++, and C++ claims Simula as an influence but not Smalltalk. Every language[n] seems to be influenced by that great language[n-2] but swears it has never heard of that pathetic language[n-1].

    Please cover Intentional Programming, Eiffel, Forth!

    Regarding Alan Turing, British Intelligence not only made him 007, they also gave him boobs, so if James Bond movies are accurate, he probably never had to leave the house.

    ReplyDelete
  151. 170 comments, and not one of them mentioning Dijkstra being sensible and just using a typewriter. :(

    Also what about cellular automata, funge variants, and D? ;)

    Brilliant work, though; love the pre-C things being criticised for not being C-like enough.

    ReplyDelete
  152. a marvel!
    we want more! keep writing!

    ReplyDelete
  153. Wouldn't the "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..." one more accurately describe APL?

    ReplyDelete
  154. Very cool! Thanks a lot for this load of fun :)

    ReplyDelete
  155. SNOBOL? FORTH? One-liners from APL?
    There's a wealth of additional material for you to invoke in your next opus.

    Thanks for the laughs.

    ReplyDelete
  156. For those fond of seldom-met languages:

    http://www.99-bottles-of-beer.net/

    I particularly like Chef, and it's derivative, Sous-Chef! (maybe because of my name?)

    ReplyDelete
  157. June 2005 - Reddit is launched, leading to the imminent creation of RedditScript. RedditScript is a statically-dynamically typed, type-inferred, purely-functional, stateful language, and the first in the line of temporo-morphic languages. Each week, RedditScript changes its features, nom de guerre and implementation, leading to new arguments regarding the validity of it for production code and the nature of the productivity gains its proponents claim. Recent and oft-repeating nom de guerres include: Haskell, Erlang, Clojure, Scala and lisps of all kinds, depending on the week. The Truth is that RedditScript is ALWAYS the best language for any job (for evidence, just see http://programming.reddit.com)

    ReplyDelete
  158. I made a translation to Spanish and posted it to Barrapunto (a spanish version of Slasdot). I hope you like it. If not, put a comment there. I'll delete it. Thanks for the laughs :-)

    ReplyDelete
  159. And then in the 90s came HPFF, the first language to allow a massively parallel machine to run as fast as any one of its processors.

    ReplyDelete
  160. Machine Language
    Rules
    What else can cause a PC to
    SMOKE ?
    Or even a Mac

    ReplyDelete
  161. ?- How many Prolog programmers does it take to change a lightbulb?

    no.

    ReplyDelete
  162. 1995 - Rasmus Lerdorf is born, fulfilling an ancient apocalyptic prophecy. As it is written:

    He that letteth is taken out of the way, and yet we do not realize that the Antichrist is near. Behold, for PHP is born amongst you! "Woe unto Perl", the prophet Larry Wall cries, for savage tribes in countless numbers shall overrun run all parts of this God-fearing land. Lo, for these tribes of PHP shall grow in multitude and shall lay waste upon the land of the Internet. The end is nigh!

    ReplyDelete
  163. Uh, an important milestone in the 1940s for languages was left out. Chuck Norris was born in 1940, and thus invented kung fu.

    "No matter how much kung fu you know, someone else always knows more."

    I was taught this in very strict fashion in my intro to programming class. :)

    ReplyDelete
  164. Hey, I loved how Larry Wall created perl! ;-)

    ReplyDelete
  165. I see, now that's why Perl looks like that! :-D

    ReplyDelete
  166. kammenti rulyat!
    comments RULEZZ!!

    ReplyDelete
  167. great!
    BTW, object-oriented programming was invented in 1967. In an attempt to liberate the workers, Kristen Nygaard and Ole-Johan Dahl created simula-67, a Java-like language with algol syntax. It is not known if the first simula program had yet finished execution by the time Alan Key and Bjarne Stroustrup decided this was almost exactly what they wanted, a decade or so later.

    ReplyDelete
  168. Wow the comments are almost as fun as the article. Thanks for the humor!

    ReplyDelete
  169. Actually there was no Skynet in 1983 ;) ... as long as "Terminator" is not based on some C/C++ developer stuff that is ;)

    ReplyDelete
  170. I think you forgot Plankalkül by Konrad Zuse, that was published in 1948, however it was designed between 1943 and 1945. It was much more difficult as he cannot do that looking at other language invented, so it was very difficult. Zuse also designed that language for his 1st computer, that it increases his worth.

    So finally he made the first high level language at least 9 years earlier than Fortran. Maybe it would be good put him in your list :-)

    Regards,

    Borja Tarraso

    ReplyDelete
  171. I believe you all are confusing scripting languages with interpreted programming languages. A scripting language is typically used to write extensions to and/or control specific programs. Programming languages like Perl and PHP and very much general-purpose programming languages even if they don't result in a native compiled executable. Perl at one time might have been a scripting language, but it grew beyond that a long while ago. Off the top of my head, things like BASH or Javascript would be good examples of scripting languages.. though Javascript is getting developed to the point where it is beginning to be arguable.

    ReplyDelete
  172. wasn't it Snoopy of Charlie Brown fame that said "Don't eat yellow SNOBOL?"

    ReplyDelete
  173. Great post. Thanks. Missing REXX the everything is STRING language!

    ReplyDelete
  174. From wikipidia: "The Plankalkül was eventually more comprehensively published in 1972 and the first compiler for it was implemented in 1998."

    In other words Plankalkül drowned in obscurity for close to 30 years and wasn't implemented for over 50. While it may still technically be a milestone, seeing as it had zero impact on computer science I'm not sure that I can agree that it belongs on the list -- other than to make fun of it as perhaps the ultimate fail.

    ReplyDelete
  175. "It's funny 'cause it's true." - Homer Simpson

    I've told that EczemaScript skin disease joke at public talks over the last few years -- it's still fresh.

    Thanks for the LOL,

    /be

    ReplyDelete
  176. Actually Dijkstra hand-wrote most of his later articles -- abandoning even the typewriter.

    One omission from here is CPL (date "early 60's"?), a theoretical language invented by Christopher Strachey and which gave birth to BCPL (Basic CPL), which presaged C (via B -- oh well). The first compiler for CPL was never written, since it was decided to start the implementation after the formal specification of CPL was completed and proven correct.

    ReplyDelete
  177. In 1964, after downing one to many gin and tonics after work, a couple of British boffins create CORAL. In 1966, during the great gin shortage, they sober up, realize their mistakes, and publish the 'all new' CORAL-66. In their rush to glory they forget about basic I/O functions and make every CompSci lecturers life hell when teaching people programming using the "Hello World" approach.

    Seeing value in 'standards' it is adopted/mandated for UK military programming and was in no-way responsible for the cost/duration overrun on the UK Nimrod AEW program in the 1980s. Such was the success of this mandate that the US adopted a similar policy with ADA and got the same results.

    ReplyDelete
  178. A few quotes from the past:

    "I can read hieroglyphs, too" (Communications of the ACM, about APL)

    "In Pascal, arguments are passed by Wirth, not by value" (Reverend David Gries, in a NATO summer school - he pronounced 'worth', of course)

    "It took you 2.5 hours to understand what this 20 symbol APL program does? Well, it too me 2 to write it!" (André Probst)

    "If Prolog is the answer, then what was the question?" (don't remember whom nor where - I'm a Prolog fan, though)

    ReplyDelete