Ah, graduate school! There is much that I miss about it. Most people think that graduate school is hard work, but that’s not really true. Looking back on it, it seems like it was a lot of fooling around. As a physics undergrad, I worked very hard — harder than I ever did in my life. But graduate school was different. At least it was for me. I’m a creative guy. I didn’t have a hard time coming up with things to do. And that left a lot of time to do other stuff. That included things like INTERCAL — a subject I will come back to soon.
It was in graduate school that I really developed my love of writing. I published an underground satirical newspaper called The Splinter Post, which made fun of the schools official weekly, The Center Post. It was hugely successful. I also published a straight news underground called Dysentery, which got a department head fired. (I feel kind of bad about that, because looking back, I think he was in the right.) But such is the nature of grad school. Unless you are someone who really doesn’t belong, graduate school gives you lots of time to play. And damn it: play is good!
In 1972, there were two similarly inclined graduate students at Princeton: Don Woods and James Lyon. This was a time when people were creating all kinds of programming languages. Computers were becoming a thing that wasn’t so outside the mainstream. I remember television commercials for Control Data Institute. Oh, it was an exciting time!
But Woods and Lyon noticed something: programming languages sucked! Understand, these are guys who understand computers. They are still programming with computer cards. They know what the stack is. And they are seeing these high level languages pile up and they are just ridiculous. So they wrote INTERCAL, which is short for “Compiler Language With No Pronounceable Acronym.” And as I write this, I am laughing hysterically. This is making fun of languages like APL (A Programming Langage) and the absurd COBOL (Common Business-Oriented Language). But Woods and Lyon had much more in mind than just making fun of the overuse of acronyms.
INTERCAL is a real language. It is available on the computer that you are using right now. I guarantee it. And it is designed to annoy. For example, the compiler just ignores anything that it doesn’t understand. Normally, compilers complain. But not INTERCAL! It’s very easy going. As a result, a comment is any line of code that it doesn’t understand. But you have to be really careful, because if it does understand the code it will compile it. And then where will you be?
Well, that’s kind of the point. INTERCAL is a language that is made to drive you crazy. For example, if you make an error in your code, INERCAL will just ignore it and not tell you. It really is deliciously evil.
Introducing INTERCAL
I’m sure by now, you want to see some INTERCAL programming. Who wouldn’t?! I mean, this is the greatest programming language ever written. So let’s consider the standard “Hello, world!” program. In BASIC, this is a single line program:
10 print "Hello, world!"
Doing this is a tad more complicated with INTERCAL. Here is its “Hello, world!” program:
DO ,1 <- #13
PLEASE DO ,1 SUB #1 <- #238
DO ,1 SUB #2 <- #108
DO ,1 SUB #3 <- #112
DO ,1 SUB #4 <- #0
DO ,1 SUB #5 <- #64
DO ,1 SUB #6 <- #194
DO ,1 SUB #7 <- #48
PLEASE DO ,1 SUB #8 <- #22
DO ,1 SUB #9 <- #248
DO ,1 SUB #10 <- #168
DO ,1 SUB #11 <- #24
DO ,1 SUB #12 <- #16
DO ,1 SUB #13 <- #162
PLEASE READ OUT ,1
PLEASE GIVE UP
Did I forget to mention that there is a PLEASE operator? In some implementations of INTERCAL, the compiler will do nothing if you don't include enough PLEASE commands. And if you include too many, it will consider you obsequious and still won't do anything. Because what's the point? Let's face it: you suck.
I hope never to have to do anymore software development. But if I do, I think I'm going to demand that it all be done in INTERCAL. It's my kind of language.