Programming Languages as an Artistic Medium


In light of recent developments, it will perhaps not come as a surprise that here at Cat's Eye Technologies we consider programming language design an artistic activity, programming language an artistic medium, and esolang a movement within that medium. In this article I expand on those points a bit.


Proglang-as-art is a thesis I've been toying with for about a decade now, and it's about time I wrote something explicitly about it. But really, there is not a whole lot to say about it directly. Most of the issues that require elucidation involve the surrounding context, and I can only speak cursorily of those. But let me assure you that this does not "elevate" proglang or esolang to an "art form"; post-modernism ensured the death of such standards, it's just taking a while for all the snowmen to melt. (I'm sorry, I know how much you were hoping for an excuse to act insufferably pretentious. ☃☃☃)

Esolang has strong connections to Dada (think INTERCAL) and Minimalism (think brainfuck). These are almost certainly due to it being a reaction against the deep-seated "modernism" of the medium — programming languages are regarded as tools for serious work, and for some people, it is difficult to imagine them as anything else. "They must be more powerful, more featureful, must make it easier for us programmers to produce correct and maintainable code!" Orly.

I am ingracious here in calling programming languages "tools". It is important to note that programming languages are not programs, even though they may be implemented by programs.

If we take as a provisional, throwaway definition of art "that which is created to induce an experience" then we may focus on the experience of using the tool instead of the results that can be achieved by use of the tool. Thus the esolang is intended to be experienced, as a medium of expressing computations, by a programmer. The language is, generally, composed in such a way so as to make this experience an unorthodox one, to try to provide an interesting form of engagement for the programmer who enjoys programming in and of itself, as an activity, and who may be bored with conventional languages, or curious about other approaches, or both.

This effect extends to adjacent levels. A program written in an esolang itself provides an unorthodox experience to the programmer attempting to comprehend or alter it. By implementing esolangs in other esolangs, and using other techniques such as quining, this effect can be made to extend quite far.

The principle, of course, applies to non-"esoteric" programming languages too, and to a large degree to languages outside of "programming" proper, especially those expressive enough to describe themselves. But esolang does seem to be one community where there is significant, concentrated activity going on in this direction.

And, um... really, that's the nub of it, I think. There are a lot of nooks and crannies that could be explored — idiosyncracies of the medium; relationship to other media; practice versus production, production versus communication, and so forth — but that's the basic idea.

Personally, I'm presently interested in making these works more accessible — even though it may take an skilled programmer to appreciate the experience of programming in an esolang to the maximum extent, that doesn't mean that said experience needs to be restricted to skilled programmers. Or even to only programmers; the non-programmer may look at a piece of Java code and say to themselves, "it's all Greek to me" — well then, behold these specimens of magnificently perverse über-Greek!

I see HTML5 as a way to, finally, get computation into the hands and eyes of the masses (the Internet-capable masses, at any rate). It's never been kind to ask a random person to install and use some command-line tool just to observe these obscure processes; it was hard to take Javascript seriously before HTML5, and it's always been difficult to take Java applets and Flash seriously. I also see HTML5 as an artistic medium in its own right, and I'm interested in exploring its potential and limitations, and how these may (or may not) be combined with esolangs and computation in general.

(If you enjoyed this article, you may wish to continue reading the second article in this series, The Aesthetics of Esolangs.)