Painting With Thought

This Week: Programming

Photo:



Related Articles »





  • Printer Friendly Printer Friendly
  • Comments Comments (0)

On the second or third day of Computer Science 61A this semester, our professor, Brian Harvey, made a rather poignant observation: "CS, as a field, is really misnamed. It's not really about computers. That's electrical engineering. Nor is it really a science, because we aren't actually discovering things that already exist. We're really information engineers. We're creating things that didn't exist before us, using only our ability to think." At least that's what I heard in my heart.

It should come to no surprise to anyone who knows me why, after hearing that, I immediately fell madly in love with the field. It should also come to no surprise to people who know me that I immediately decided that I had to figure out a way to turn programming into a fine art.

I can understand if you're skeptical.

"But Daniel" you say, sagely, "There's nothing on earth less artistic than programming. It's formulaic and unforgiving and rigid and colorless and boring and complicated and dry and efficient, exactly the opposite of art!" I hear you. If traditional fine art (visual art, music, literature, etc.) was on some sort of linear spectrum of rigidity, then computer programming would be very far away. But creativity isn't a spectrum. It's a circle, and by going around opposite directions, programming and traditional fine art have reached the same place.

They aren't so different, when you think about it. At their core, all the arts are about realizing a vision using a certain basic toolset. With painters, that toolset is their brushes, berets, paint (and paintlike things, like strawberries or poop-Google it!-or whatever they're smearing on canvas these days). For musicians, it's the instruments they play. For writers, it's words and cigarettes. For chefs, it's their ingredients, their kitchen and Italian accents.

In all cases, artists realize a vision by assembling primitive elements. It's exactly the same in programming. The only difference is that programmers use basic functions like plus, minus and equal, and the beauty of the final product is not the sight, sound or the taste but the visceral pleasure of perfect logic.

A few weeks ago, we learned about Abstract Data Structures, which are essentially arbitrary rules for organizing and storing information. The most important of these was the capital-T Tree, which follows a rigid format: The first thing is some piece of information (a "datum"), like the name of a planet. Everything after that is a "child" of the first thing, like names of countries on that planet. But it gets better, because every "child" is itself a Tree and has children of its own (like the names of states). A datum can have one child, or five thousand, or zero. (Oh my god, I'm so smart!)

On the last day, we were shown a program called "Treemap," only four lines of code, not more than 30 words, that-while preserving the structure-could do something erotically exciting to every element in the entire tree. Like make every word plural.

If there is a beauty in the creative process that results in a painting or play, then that same beauty can be found in the creative process that results in a computer program. If art is about the communication of an emotion or idea, then programming is the art of arts, about the best way to communicate any idea. There is no room for error. The computer doesn't "get" what you're trying to do. It's an asshole. World-class programmers must master their instruments in the same way that world-class musicians must master theirs.

They are painting with thought.

Tags: PAINTING WITH THOUGHT


Admonish Daniel for his vulgar language at [email protected]



Comments (0) »

Comment Policy
The Daily Cal encourages readers to voice their opinions respectfully in regards to both the readers and writers of The Daily Californian. Comments are not pre-moderated, but may be removed if deemed to be in violation of this policy. Comments should remain on topic, concerning the article or blog post to which they are connected. Brevity is encouraged. Posting under a pseudonym is discouraged, but permitted. Click here to read the full comment policy.
White space
Left Arrow
Columns
Image What did we learn?
There is no way to end a column and make everybody happy, just as there is ...Read More»
Columns
Image Reeling with Ryan Lattanzio
Try to tell someone about a dream you had, and they won't want to listen. T...Read More»
Columns
Image Reeling with Ryan Lattanzio
I'm a contrarian when it comes to movie talk, and often unfoundedly so. No...Read More»
Columns
Image Reeling with Ryan Lattanzio
I have hosted three Oscar ceremonies in my living room. Well, my parents' l...Read More»
Columns
Image Reeling with Ryan Lattanzio
In my utopian fantasy of the Oscars - where I am dictator of the AMPAS obvi...Read More»
Columns
Image Reeling with Ryan Lattanzio
If I had a water cooler, or knew where one was, I'd be talking around it. P...Read More»
Right Arrow




Job Postings

White Space