Hacker News new | past | comments | ask | show | jobs | submit login
History of Programming Languages (felleisen.org)
155 points by ingve on May 5, 2021 | hide | past | favorite | 32 comments



If you're interested in this kind of thing, definitely also check out the upcoming HOPL conference -- co-located (whatever that means for a virtual conference) with PLDI this June. Matthias was on the program committee, along with a bunch of other PL OGs.

Website: https://hopl4.sigplan.org Papers: https://dl.acm.org/toc/pacmpl/2020/4/HOPL


Oh cool! "JavaScript: The first 20 years" looks like pretty deep internet lore; perhaps I'll finally find out what happened to ES4.

https://dl.acm.org/doi/pdf/10.1145/3386327


Most of the papers were a joy to read. The C++ one just seemed like a massive changelog, though.


HOPL takes place roughly every 15 years. Previous HOPLs were held in 1978, 1993, and 2007.


Looking at the talks/papers from 1978 is a trip: Grace Hopper gave the keynote, and there were talks by legends like Backus, Naur, Liskov, Kurtz, and McCarthy.

There are transcripts available of all of the talks as well as Q&A sessions and the like -- really fascinating to look back on now with the benefit of hindsight.

For example, McCarthy was asked [1] whether he believed "that LISP has made any long-lasting contributions to the more 'normal' programming languages, e.g., FORTRAN and ALGOL, COBOL, etc."

He responded that, yes, he thought conditional expressions and recursion were here to stay. Safe to say he was right about that!

[1] https://dl.acm.org/doi/pdf/10.1145/800025.1198363


This course sounds like a long and mostly correct histories of programming languages.

Also consider visiting

http://james-iry.blogspot.com/2009/05/brief-incomplete-and-m...

For a brief, mostly incorrect overview of programming languages.


"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."

OMG, brilliant


> "a monad is a monoid in the category of endofunctors, what's the problem?"

Everywhere else he had to invent stuff to parody the language. He presents Haskell straight up.


As a Haskeller, I feel obliged to say that that is a parody. A self-parody, perhaps, but a parody nonetheless. In reality, the vast majority of Haskellers (including me!) wouldn’t have a clue what that sentence means — but we’re content to use monads nonetheless, because having a knowledge of the category theory underlying monads is unnecessary if you just want to use them in Haskell.


Yeah, in reality Haskellers are more like: A monad is just like a burrito, whats the problem?


Except that is explicitly a parody/critique of what Brent Yorgey called the "monad tutorial fallacy": https://byorgey.wordpress.com/2009/01/12/abstraction-intuiti...

This is the post that originally coined that phrase.


Yeah, in reality Haskellers are more like: A monad is just like a spacesuit, whats the problem?


"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]."


For a more detailed look at the timeline of a programming language feature in the same vein, you may also enjoy the retrospective on Foozles:

https://wiki.hh.se/wg211/images/5/58/Foozles.pdf


Seems only meniton of Snobol is in the comments. Hard to ignore it because Snobol was the first to use associative arrays ("tables"). Awk copied this, then Perl, etc. I do not use Python. I love Snobol because it has an assembly-like feel to it. Much faster than Python.


Icon (the successor to Snobol) was one of the few languages that enlarged my brain.

https://en.m.wikipedia.org/wiki/Icon_(programming_language)


/love/s/Snobol/Spitbol/


The lecture topics is very nice, it threads a lot of known ideas that are scattered around the world (concrete or virtual)

https://felleisen.org/matthias/7480-s21/lectures.html


The slides are unreadable though: https://felleisen.org/matthias/7480-s21/18.pdf


He's been speaking English a long time (despite choosing the dot paper instead of squares) -- as a native English speaker myself those were pretty clear to read. It is interesting that he has apparently abandoned the German letterform handwriting (at least in English).

I assume his students are ver comfortable in English as well.


It has nothing to do with language skills (the parts I can decipher are perfectly decent english); his handwriting is just terrible.


These are the slides for the lecture "Programming Languages and Operating Systems" by PhD student Lucy Amidon. I think they are probably by her, and not by Felleisen. The other lectures with a byline have other distinct styles.


It's not always dots. Sometimes lines https://felleisen.org/matthias/7480-s21/2.pdf


What does dot paper have to do with English? Looks like these were drawn using a mouse.


dot paper is uncommon in the US (where he lives), rather quadrille is the norm. The opposite is true in Germany.


In PL academia (including in the US) many people prefer dot paper for physical research notebooks. When you're mixing together diagrams, prose, inference rules, semantics, code, etc. it's a quite nice and flexible medium.


as a lisper i find them perfectly legible


It feels too academic that none of popular new programming languages is mentioned in the "lectures" page, although it refers not only classics but relatively new papers.

Then went back to the top page:

   ... The intended audience consists of PhD students who will write a dissertation in the area ...
realizing that I'm not the target audience :-/


My biggest regret as a Northeastern alumnus was not taking compilers with Matthias. The man really knows his stuff.


I was lucky to have him for fundis, but sadly no other courses.


I think those slides [0] were written on a reMarkable tablet. I wonder if this was done live with some sort of screenshare.

[0]: https://felleisen.org/matthias/7480-s21/1.pdf


And the site seems to be written with Scribble[0], so that's at least two interesting choices of tools.

[0]: https://docs.racket-lang.org/scribble/




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: