Anonymous avatar Anonymous committed ea91380

*Bonk* Ignatz"! Li'l anjil! I make for you a pine among my heart!

Comments (0)

Files changed (5)


     In contrast to [[Chris Pressey's Lingography|the list of languages I've designed]],
     in this article, I talk about what it's *like* to design languages
     and what my thoughts on certain languages and the design process are.
-  description: |    
+  description: |
     ### Esolangs
     Mostly I design [[Esolang|esolangs]], which, in a nutshell,
     changes over time as I look at them from different angles, while others
     are simply difficult to fully conceive or implement —
     [[Burro]] and [[Okapi]] come immediately to mind.
+Programming Languages as an Artistic Medium:
+  type: Article
+  article-type: essay
+  authors:
+  - Chris Pressey
+  publication-date: Sun, 21 Apr 2013 10:40:16 GMT
+  article-date: Apr 21 2013
+  blurb: |
+    A consideration of programming languages as an artistic medium.
+  summary: |
+    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|esolang]] a movement within that
+    medium.  In this article I expand on those points a bit.
+  description: |
+    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
+    [[Online Installation|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.
+    [Dada]:
+    [Minimalism]:


 # (let's start from the beginning, I suppose)
 Konrad Zuse:
   type: Individual
+Don Woods:
+  type: Individual
+James M. Lyon:
+  type: Individual
 # game authors
 Gregory Yob:
   type: Individual


   development-stage: mature
+  type: Programming Language
+  genre: Esolang
+  # o dear god
+  paradigms:
+  - Stack-based
+  computational-class: Turing-complete
+  esowiki: INTERCAL
+  authors:
+  - Don Woods
+  - James M. Lyon
+  # not really
+  specification-link: esowiki
+  development-stage: vintage
   type: Programming Language
   genre: Esolang


                          help="render documentation nodes as well")
     options, args = optparser.parse_args(args)
     data = load_and_check(options.data_dirs.split(':'))
+    json_data = {}
+    for key in data:
+        if not data[key].get('hidden', False):
+            json_data[key] = data[key]
     filename = os.path.join(options.node_dir, 'chrysoberyl.json')
     with, 'w', 'utf-8') as file:
-        json.dump(transform_dates(data), file, encoding='utf-8',
+        json.dump(transform_dates(json_data), file, encoding='utf-8',
     r = Renderer(data,


         {%- endblock breadcrumbs -%}
-      <div class="span4">
+      {% block header_gadgets %}<div class="span4">
         {#- TODO: urlencode instead? -#}
         <a class="button"
            title="Report an error on this page"
            href="{{ filekey(key)|replace(' ', '+') }}">Report Error</a>
-      </div>
+      {% endblock header_gadgets %}</div>
     {%- block heading -%}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.