INTERCAL Is the Most Awesome Programming Language Ever

Don Woods - INTERCALAh, 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.

James Lyon - INTERCALINTERCAL 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

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.

8 thoughts on “INTERCAL Is the Most Awesome Programming Language Ever

      set condition > pitiful
      do until [x] : mioux
      if not [x] : set condition > pissy
      do : claw
      do : !meow!
      if not [x] : set condition > destroy

    • I also like “GIVE UP.” I now have an idea for a play based on the language. Maybe even a musical. I wonder if I can get the rights.

  1. This reminds me of the similarly-motivated Brainfuck, which was designed to… well, I’m sure you can guess the rest.

    Actually, though, I’ve been considering how BF could be used for steganography. It would be ridiculously inefficient, and it would require a hell of a lot more attention than I usually pay to punctuation – but it could work.

    • Yes, it is. Although there is much to be said for minimalist programming languages, because they can create very efficient code. One thing about INTERCAL is that all its known implementations are slow and create bloated code — which is itself funny as hell.

  2. (Having problems with my comment being flagged as spam; too many links I guess; okay, changing the last link to italics worked.)

    I was aware of INTERCAL and other esoteric programming languages, although I’ve never written a program in any of them. See Esolang (Esoteric Programming Languages Wiki) for more. Brainf**ck, as mentioned by Marc, is probably the most well-known.

    I found the fungeoid languages intriguing. In the original language of this type (Befunge?), the instruction pointer can move in 4 directions on a two-dimensional plane. Naturally, people couldn’t resist extending the concept to higher dimensions.

    My favorite esoteric language, Velato, is programmed using MIDI music files. Scroll down on the Wiki page to see the music for “Hello, World”. From the Wiki introduction: “Programs in Velato are defined by the pitch and order of notes. Velato is intended to allow for flexibility in composition, so functional programs will not necessarily sound like random notes. There is a tendency for Velato programs to have jazz-like harmonies.” (The “jazzy MP3” link at the bottom of the page confirms the last statement. Daniel Temkin invented Velato and his website has more in a similar vein with regard to art, music, and literature. Unfortunately, the MIDI links on the Velato portion of his website don’t work.)

    • Sorry about the spam filter. That Hello World! program is odd. It starts with Am and moves to D#-dim?! Not very welcoming!

      I miss the old days with all the old languages. Now almost everything looks a whole lot like C++. But interestingly, specialty languages like Prolog are still widely used, so that’s cool.

Leave a Reply