Cabinet, a self-described magazine of art and culture, features in issue 36 (Winter 2009/10) a short and rather amusing piece by Lev Bratishenko entitled "Technomasochism: Getting spanked by INTERCAL". Unfortunately it is not available online, but if you come across Cabinet in your public library or bookstore, do take a look, it will make you smile (or at least grin). As you can imagine, the PLEASE keyword is used to good effect.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

PL history

Let's try an unsourced assertion, worsened by the fact that I can't reach the cited article.

Many deliberately obfuscated languages seem to draw from the PL tendencies of their time, as an humourous critique : INTERCAL laughes at COBOL, FORTRAN, ALGOL styles. Unlambda derides Scheme and pure functional languages.
Like old jokes, INTERCAL is probably less funny nowadays (although I still like the "COME FROM" idea...)

All mainstream PL paradigms deserve being laughed at : I guess one could make an obfuscated variant of UML. (Or is that a humor language, I've misssed the pun ?)


Unlambda derides Scheme and pure functional languages.

Hardly! Unlambda is an impure language, bloated with needless verbosity. What you want is Lazy K, an elegantly minimal and referentially transparent functional language without all the superfluous features cluttering up Unlambda.

Like old jokes, INTERCAL is probably less funny nowadays (although I still like the "COME FROM" idea...)

Many people do. While use of COME FROM was pioneered in INTERCAL, the expressive power it provided for intricate logic and non-local control flow were persuasive indeed, and eventually more structured versions of COME FROM were added to other languages.

Popular variants include subroutine-style VISIT FROM that jumps from any of multiple source locations, executes code, then resumes from the original point, later known as "Aspect-Oriented Programming", as well as the scoped error-trapping construct ON ERROR COME FROM that jumps from anywhere in an enclosed block if an error occurs, later abbreviated as the keyword "catch".

The expressive power of COME FROM as a flow-control structure is largely unmatched, as it enables the concise description of behavior that, without it, can be emulated only by messy, invasive, encapsulation-violating code transformations to insert conditional branches all over the place. More powerful still are generalized versions such as nondeterministic shared-origin COME FROM (forking threads for each distinct COME FROM) or computed COME FROM, where the origin location depends on program state.

It's rather a shame that such a useful construct is misinterpreted as a joke and so often ignored by language designers, while hilarious ideas that were obviously intended as jokes, such as null pointers or redundant type annotations, are common in mainstream languages. It's a mad world out there, I tell you.