Main

Aesthetics Archives

October 22, 2008

The Aethetics of Code

"An intellectual is a man who says a simple thing in a difficult way. An artist is a man who says a difficult thing in a simple way."
- Charles Bukowski

In Monday's lecture and class, we drove into the bit of gray area concerning code and programmers: Can code have aesthetics? If so, what are some the important implementations of said aesthetics, and what does it say about for a) the programmers themselves and b) the end user of the code. Near the end of class, we were able to come up with a sort of joke-ish way of understanding how hacker aesthetics work, which I like to refer to as the "trifecta," which I will explain in the rest of this post:

trifecta.jpg (again, thanks tuxpaint)

We read two texts for the day's class, one from Maurice Black entitled, "At the Edge of Language: The Art of Code" and another by Samir Chopra and Scott Dexter entitled "Free Software and Aesthetics of Code." Blacks's primary argument revolves around looking at various aspects of the craft of code, referencing the 10,000 lines of UNIX, and the surrounding public. John Lyons self crafted book on UNIX, famously copied, discussed, and shared marks an important basis for understanding the "craft" aspect of code. This was an important aspect in creating a community of programmers who were coming together and actually looking and admiring the style and creativity found within one of the most heralded operating systems of all time.

Black continued his exploration of hacking craft, by exploring the idea that code is not like poetry, but it IS poetry, and should be treated as more than a mechanical representation of computer instructions. (Wordpress.org, the site for the popular open-source blog software, adopts Black's motto "CODE IS POETRY") Black gives o concrete example of Perl poetry, that is, code written in the Perl programing language which is both a human readable poem and executable by a computer, is a principle example of how the craft of coding can venture into reputable art. He argues that these representations should make clear that code is an acceptable form of expression, and should be treated with the same liberties as expressive works.

Here is an example of a Perl Poem:

' Love was’

&& ‘love will be’ if
(I, ever-faithful),
do wait, patiently;

“negative”, “wordly”, values disappear,

@last, ‘love triumphs’;

join (hands, checkbooks),
pop champagne-corks,

“live happily-ever-after”.

“not so” ?
tell me: “I listen”,
(do-not-hear);

push (rush, hurry) && die lonely if not-careful;

“I will wait.”

&wait

# Sharon Hopkins, June 26th, 1991
# rush (a perl poem)
"

via http://www.digitalcraft.org/iloveyou/catalogue_jutta_steidel_if.htm

While certainly "perl poetry" is an expressive work, it is an extremely specific example of how code could be used as a vehicle for expression. Lions work on UNIX and Perl Poetry showcase how code can be a craft, something which is done with a passion for a constructive purpose, and valuing something seen as a chore to some. These aesthetics make up the first pillar of the Trifecta.
With that being said, during class we focused more on the arguments of a Chopra and Dexter, and outlining what they considered to be crucial elements of what makes the aesthetics of code.
These authors primarily focus on a few key elements when comparing programming aesthetics to more traditional art forms. These aspects, while not completely exhaustive, include:

1. Condensed, non bloated code.
2. Free and Open Code
3. High level code and programming languages
4. Never ending production, (programs are always evolving, they have no completion) date
5. Libraries of sharing, peer review, negotiation of code, and constant competition ("ready-mades")
6. Embracing restraints as an impetus for creativity
7. Improvisational nature of coding
8. “In the end is an “esoteric art” that can really only be appreciated by its makers

Discussing each of these parts ended up being the most spirited part of the class, as people continued to justify how and if these conditions were satisfied in code.

John Randall questioned the definitions of Chopra and Dexter, asking where the desire for "power of simplicity" exists within their definition, and why this is not included as an aesthetic?


"• Simplicity and elegance in code and coding tools is a valued aesthetic because it gets the mechanics out of the way, allowing the programmer to deal in the realm if the pure idea, or pure logic, in a less encumbered fashion.
• Simplicity and elegance in code is a valued aesthetic because it represents simplicity and elegance in an abstract logical machine.
• An abstract logical machines operates very close to, and is restrained by, the nature of logic and math, as derived from the nature of the universe, These machines therefore (un?)consciously resonates with the deepest of mysteries of consciousness and existence, and therefore, simplicity and elegance in the logic of abstract machines, as expressed in the logic of code, are valued aesthetic with nothing less than a spiritual draw."

Personally, while I do feel that simplicity and mathematical rigor is something which is valued and idolized by many programmers, I don't necessarily feel that it is a required impetus for code to embody an aesthetic, due to the fact that many programs are extremely complicated to understand, however brilliant; nor do all programmers value this element above all others One of the interesting facts of nature is how many of her “codes” can be understood in a just few simple variables which define much of science. On the other hand, computer algorithms, even in their most elegant, are still most times complex, unapproachable, and constructed Additionally, these authors did not discuss particular programming structure and styles: ever hacker and programmer has different styles and methods which they deem "the right thing" for a certain job, and trends and ideas in how to program become fashionable and then die out in time. However, these individualized stylistics help us see how programs embody an aesthetics, and therefore so do the programmers which code them. That gives us another pillar of the Trifecta of the Aesthetics of Code, the romantic programmer, where we see fanaticism to text editors and tools, and flame wars about styles of programming languages (such as Perl vs Python) , and other statements of purpose in their code.


wtf-code-1.jpg
less wtfs/minute = better code! but wtfs still exists!


The final aspect of the hacker aesthetic revolves around what Fred Brooks called "the thought stuff," the materials hackers use to create their art. The math and algorithms behind their programs remains the most important aspect of hacker aesthetic.
The love of restraints (hardware, software, memory time, money, language) and nontraditional notions of authorship for entire projects gives this math power an interesting twist on hacker aesthetics (it is interesting to note that FOSS hackers use "ownership" to say they are responsible for maintian a project). Their clever hacks and programs make them respected within the community, but they don't keep these things close to their heart, they let good math defuse across the community as a whole.

And that is what is so interesting about code and hackers. Never in the world has there been something in which doing what you are doing both progresses your own concept of what is right (technically), in addition to serving as a primary text for expression. Certainly other art can comment on its condition of inception, but can only can code actually adjust the landscape and address an issue at hand so tangibly. While self modifying code may be an ancient faus-pas amongst computer programmers, the programs they create with the aesthetics they have serve to self modify their own existence.

Then again, hackers just want code that works, and work well!

About Aesthetics

This page contains an archive of all entries posted to STDIN in the Aesthetics category. They are listed from oldest to newest.

Anonymous is the next category.

Many more can be found on the main index page or by looking through the archives.