[Humanist] 23.125 programming

Humanist Discussion Group willard.mccarty at mccarty.org.uk
Fri Jul 3 07:15:13 CEST 2009

                 Humanist Discussion Group, Vol. 23, No. 125.
         Centre for Computing in the Humanities, King's College London
                Submit to: humanist at lists.digitalhumanities.org

        Date: Thu, 2 Jul 2009 10:25:19 -0700
        From: Elijah Meeks <elijahmeeks at gmail.com>
        Subject: Re: [Humanist] 23.120 programming
        In-Reply-To: <20090702072632.9B28C2AB6E at woodward.joyent.us>

I think the concern that I'm equivocating or confusing code with
software comes from a basic prejudice on my part that the software
user is interacting with code, that there is no difference between
what the programmer wrote and what the user is interacting with,
whether it went through a compiler or not.  I think it becomes clear
that we're living in different worlds based on the following

> Furthermore, being someone who has played these games before, I don't
> ever see the code itself.  It's simply not necessary for me to do so.
> I only think about the code, in fact, when it fails.  I don't care how
> sophisticated, elegant, or esoteric the code itself is.  I do care
> than when I toggle right my character moves right and moves right
> immediately and consistently.

When you play a game, especially a game that is of interest to
humanities scholars, such as Civilization, you see the code all the
time.  It's the same when you play a less complicated game (Like, I
don't know, Arkenoid, which seems to be the example you're alluding
to).  Civilization or my previous example, Nethack, or Zork, or really
any game that pretends to simulate an environment and beings in that
environment does so by creating abstractions within the code that are
often written in such a way so that events are declared by the coder
to occur at random or partially randomized points.  Since, obviously,
you are not interacting with a virtual world that responds to your
speech and actions, you see the code in interfaces, in abstactions of
interactivity, in abstractions of combat, trade, movement, growth,
death, et cetera.  From this perspective, I see little to distinguish
between code and software, whether you read that code in a
line-by-line format or whether you interact with its expression in the
software.  You should be able to recognize bounding boxes and icons
and do/while statements within code based simply on how the software

It doesn't matter whether the guys who programmed Nethack or
Civilization did so in a way that was efficient, but that they provide
elements that interact between other elements and the player in a
compelling way.  Now, granted, something like Arkenoid isn't going to
have had much added by its programmers to foster emergent properties,
and neither is Excel--so when coders claim that they wrote Excel in a
sophisticated or elegant manner, they're just saying they made it run
real smooth and you can get your work done.  But content within games,
especially larger and older games, has a randomized nature to it that
is coded in from the beginning.  I realize this doesn't fulfill
David's requirement that the software compile ambiguous statements but
I can't think of how we could make demands on code that we don't make
on literature and poetry.  The fostering of a randomized nature must
be done, as David rightly pointed out, unambiguously (The various RAND
operators, which generate random numbers, exist and are
well-documented for every software language) but the resultant
activity of the software, the order in which functions are called, the
transformation of data, all of that is unpredictable enough, I would
argue, to claim ambiguity.  So, while nearly all software may have
emergent properties, there is software that is created specifically to
better foster those emergent properties.

> First, since we're talking about someone who is primarily a humanist
> writing code to present works of art or literature in electronic
> formats, I don't think the probably millions of lines of sophisticated
> code necessary to make a video game work is quite equivalent.  We're
> talking about something much smaller, simpler, and more
> straightforward.  XML modifications to video game coding isn't quite
> the same either.

Who are we talking about and when did we constrain that person's
ability?  I've written games in Flash over the course of an afternoon
that were 2000 lines in length and contained randomized content.  I
wish I was bragging, but it's only because Flash and Actionscript have
gotten so easy and so visually-oriented that anyone could do it.  You
could, too, if you didn't find it so boring.  While there are
multi-million dollar entertainment software projects that are
absolutely huge, the barriers to individuals creating interesting
software have significantly lowered.

> Coding itself does not "pass along complex truths," and even if it
> did, no one would have access to these truths except programmers.

Isn't that a very good reason to better understand how programming
works?  Of course, if you understand how programming works, you don't
always need to see the code to understand how the abstractions
function.  If you think it's just a giant black box, though, then it's

> Coding issues commands -to a machine-, which creates an interface with
> a user. Equating "coding" with "software" is a serious confusion of
> terms in this case.  Software is the interface, coding is what makes
> it work.  The interface itself may look no different from a literary
> product: every poem you read on a computer screen is there because of
> coding, but it's the poem, not the coding, that communicates complex
> truths.

You seem to have a limited understanding of what software is capable
of, and of what it is.

> Now you may be calling the coding itself "complex truths" because it
> is complex (or can be), but it hardly communicates "truths" of any
> meaningful sort.  If our entire world was a vast computer and our
> minds a system of computer codes, then yes, I -might- agree with you.
> But we don't live in the Matrix and the majority of people who are
> alive and have ever lived have no need of computers, much less coding,
> yet still manage to communicate meaningful truths to each other.

I believe you're rambling here, so I'll assume you didn't actually
mean that a majority of people alive have no need of computers.  I
don't think anyone would argue that.  I assume what you meant is that
a majority of people have no need of computers (Amended to coding) to
relay meaningful truths to each other.  Sure, that's true.  But that
doesn't mean that coding can't relay meaningful truth, otherwise it
would stand that in highly illiterate societies the written word also
doesn't communicate meaningful truth.

> I hope you're not confusing those two terms: machines and persons.

Who knows, maybe I'm a hard determinist and I think we're all
biological machines.  Frankly, I think you're too quick to think
others are confused.


More information about the Humanist mailing list