git @ Cat's Eye Technologies The-Dossier / master article / Programming Languages as an Artistic Medium.md
master

Tree @master (Download .tar.gz)

Programming Languages as an Artistic Medium.md @masterview rendered · raw · history · blame

<!--
Copyright (c) 2013 Chris Pressey, Cat's Eye Technologies.

SPDX-License-Identifier: CC-BY-ND-4.0
-->

Programming Languages as an Artistic Medium
===========================================

*   publication-date: Sun, 21 Apr 2013 10:40:16 GMT

### Abstract

In light of [recent developments](https://github.com/cwales/cwales.github.com/issues/1),
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

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][].)

[esolang]: http://catseye.tc/node/Esolang
[Dada]: http://en.wikipedia.org/wiki/Dada
[Minimalism]: http://en.wikipedia.org/wiki/Minimalism
[INTERCAL]: http://catseye.tc/node/INTERCAL
[brainfuck]: http://catseye.tc/node/brainfuck
[making these works more accessible]: http://catseye.tc/node/Esolang
[Java]: http://catseye.tc/node/Java
[HTML5]: http://catseye.tc/node/HTML5
[Javascript]: http://catseye.tc/node/Javascript
[The Aesthetics of Esolangs]: The%20Aesthetics%20of%20Esolangs.md