297: Lisp Cycles

Explain xkcd: It's 'cause you're dumb.
Jump to: navigation, search
Lisp Cycles
I've just received word that the Emperor has dissolved the MIT computer science program permamently.
Title text: I've just received word that the Emperor has dissolved the MIT computer science program permamently.

[edit] Explanation

Lisp is one of the oldest high level programming languages. Despite being significantly ahead of its time, it never got enough traction outside of academia, and has never been widely used. However, it is considered to be a very powerful language even in the present day. Quotations regarding Lisp show that several big names in computer science and the tech industry hold Lisp in very high esteem. Eric S. Raymond goes as far as to say

Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot.

Lisp is also famous for its use of fully parenthesized Polish prefix notation. As a result, Lisp programs take the form of enormous nested lists bounded by parentheses, and it is not uncommon to see the source code of a large Lisp program close off with an equally enormous stack of close-parens, representing the simultaneous termination of dozens of recursively and hierarchically nested functional and procedural structures.

In the first panel, Cueball praises Lisp, observing that no other language can match the awe that it still strikes despite its significant seniority.

In the second panel, Cueball proposes that new programmers might continue to learn Lisp forever; that despite the language's lack of widespread adoption, a small cadre of hackers will always exist who keep the language alive.

First, a little background:

Lisp was once the lingua franca of the frontier of computer science research at places like MIT's Project MAC and SAIL, and is still highly relevant in academic and theoretical computer science despite the subsequent emergence of many other highly functional research languages. That many of these venerable research institutions have vanished or declined, their faculties having split up or moved into the private sector, and the advanced and demanding course-work taught there using Lisp having been replaced by courses based around teaching languages-of-the-day (such as Java, Python, Ruby, and even JavaScript for web design) in a series of so-called AI Winters is a widely remarked upon feature of history. To many this conjures a nostalgic impression of the halcyon days of advanced computer research when funding for blue-sky exploratory coding was plentiful and most of the features of the contemporary digital world were first thought up and made real by wizardly hackers (the well-known purple cover of one venerated Lisp textbook is especially evocative, featuring a renaissance woodcut illustration of a sorcerous natural philosopher conjuring up magic with Lisp symbols superimposed into the image).

Throughout all this, Lisp, one of the first and greatest successes of theoretical computer science, has persisted, still in general though no-longer-universal use within the warrens of programming language and computability research, still studied by handfuls of students interested in something more than simply getting a job as a code grinder for Big Data, its features still inspiring generations of new language designers and implementers to do better (Ruby was designed — according to his admission — by Matsumoto Yukihiro as "a bad rip-off of Lisp" that would be "nicer to ordinary people"; Java 8 introduced lambdas — in 2014!). David Thornley even noted that whether or not Lisp was a "dead" or moribund programming language is, in fact, a question older than almost all programming languages, and has been for decades.

The third panel references Star Wars. The "old wizard" Obi-Wan Kenobi, who remembers the culture and sophistication of the Old Republic ("Before the dark times. Before the Empire.") and lives as a hermit in the desert at the beginning of the film spoke these lines when passing on a lightsaber to Luke Skywalker:

Your father's lightsaber. This is the weapon of a Jedi Knight. Not as clumsy or random as a blaster; an elegant weapon for a more civilized age.

The title text is also a reference to Star Wars lines:

The Imperial Senate will no longer be of any concern to us. I've just received word that the Emperor has dissolved the council permanently. The last remnants of the Old Republic have been swept away.

The MIT mentioned in the title text is, of course, the Massachusetts Institute of Technology, an institution fundamental to the development of Lisp (and Scheme, which is a dialect of Lisp). For about 20 years, MIT taught Scheme in its introductory computer science course, 6.001 — Structure and Interpretation of Computer Programs (that course has since been replaced with a course teaching Python).

[edit] Transcript

[Cueball is sitting at a computer, and Megan is standing behind the desk.]
Cueball: Lisp is over half a century old and it still has this perfect, timeless air about it.
Cueball: I wonder if the cycles will continue forever. A few coders from each new generation rediscovering the Lisp arts.
[Man in Jedi robes carrying a towering stack of parentheses in his arms, speaking to Hairy.]
Jedi: These are your father's parentheses. Elegant weapons. For a more... civilized age.
comment.png add a comment! ⋅ comment.png add a topic (use sparingly)! ⋅ Icons-mini-action refresh blue.gif refresh comments!

Discussion

Soon, I shall be one of those new coders. I shall be learning (Racket) Scheme, actually. Greyson (talk) 16:10, 16 December 2013 (UTC)

Georgia Tech's College of Computing did away with Lisp and Smalltalk as of 1999 or 2000. It is now C, or some version thereof, all the way down. This change has its own perils! 108.162.238.189 (talk) (please sign your comments with ~~~~)

I am a little saddened that this comment section doesn't have at least a few Star Wars quotes with coding/programming references mixed in. -Pennpenn 108.162.250.162 05:21, 17 August 2015 (UTC)

Do or do not. If except NameError:, then var = 0. Papayaman1000 (talk) 13:09, 7 December 2016 (UTC)

Let's go back to 1986 and learn Scheme in Lecture 1A | MIT 6.001 Structure and Interpretation, 1986! Alex Vong 173.245.62.65 03:36, 19 August 2015 (UTC)

Personal tools
Namespaces

Variants
Actions
Navigation
Tools

It seems you are using noscript, which is stopping our project wonderful ads from working. Explain xkcd uses ads to pay for bandwidth, and we manually approve all our advertisers, and our ads are restricted to unobtrusive images and slow animated GIFs. If you found this site helpful, please consider whitelisting us.

Want to advertise with us, or donate to us with Paypal?