Monday, July 18, 2005

Why technology is like art

One unfortunate consequence of being in the software profession is that people don't usually associate software with creativity, beauty and expression. For that matter, most people don't even like technology, as it either scares them or strikes them as being 'mind-driven' rather than 'heart-driven'. This is less true in India where it is 'cool' to be a 'code-freak', than in the US, but here too software engineering is treated as a well-paying 'love-less', 'passion-less' deskjob'. What is more unfortunate is that many software engineers too treat it that way - seeing the profession as a way to make a living rather than seeing it as yet another way to vent their creative cravings.

I wonder if it is because most people fail to see the beauty resident in a good program, in a well-designed 'geek-toy' or in a software tool. So, in this post, I want to present my views on the similarities between good art/music/architecture and good technology. Needless to say, I am only talking about my experiences.

Here goes:

Great architecture and great technology have universal appeal.

There is something about great art/architecture/music that appeals to a very wide audience. I know many people who have never heard Carnatic music, but simply love the Pancharatnas rendered by Balamuralikrishna. I myself fell in love with Beethoven's symphonies after hearing them at Vienna and I had zero exposure to western classical music then. Almost the entire world loves the Taj Mahal.
The same holds for technology. The Apple IPod, the Internet, Google, name a few.

Great art and great technology are timeless

I know that many of you will take issue with me on this one what with new tech toys and software coming into the market every day. But consider, for a moment, UNIX. Consider TCP/IP, with its extensions, and you'll realize what I mean.

Great technology is simple - sometimes deceptively so
Great technology peels well and peels long - just like great art.
Great technology creates experiences - just like great art.

Great technology is always simple - sometimes deceptively so. Anyone who has coded Quick sort would be quick to point out how the algorithm which stated in its textual form is:
Step 1: Choose an element and put it in its right position in the array.
Step 2: Repeat the same for the elements to the left of the array
Step 3: Repeat the same for the elements on the right
takes many iterations to get right. And then, we could talk about its complexity. And then, we could improve its efficiency for boundary cases, and then we could make it generic, and then provide proof, and get the idea. The same holds good for almost every piece of hardware, for every game sold in the market place. Abstraction is a fundamental construct of technology. Which is true for art as well. I 'sort of' play the violin in Carnatic style, and believed for a long time that all there was to Carnatic music were the notes. You play the notes, and you have the song. Lately, I've realized that this is hardly the case. The notes are just one part of the song. There are the lyrics, there is a situation behind the song, and more importantly, the lyrics themselves have many meanings and so on. If you don't believe me, read the following line:
"mohada hendathi teerida balika maavana maneya hanginyako"
Translated, it means, "Why bother about your father-in-law's house when your wife is no more?". Apparently, this single line has many different, uncommon meanings, none of which are conveyed by the words(directly).

Great art creates experiences. Great music makes you forget the world. You lose yourself in the brilliant colours of a maestro's pictures. Technology does the same. We all know how we fought to finish our first video game, how we enjoyed the thrill of victory when we shot the villian (or ate the bad goblins), why, we even remember how we debugged our first program - don't we? Haven't we all had the days when we are so engrossed in a game that we lost track of time? Or so engrossed in getting a sorted linked list (this one is for you, Harsha) right in the 3rd semester programming class that we worked late into the night on an exam weekend!? Technology not only creates experiences, but also enhances them - take CDs and vinyl records for instance.

The principles of great art and great technology come from the same source.

More on this later...


Balbir Singh said...

Don Knuth titled his books "The Art of Computer Programming" for the same reason. He was a bit focussed when he said that Computing is an Art.

Yes, look at the problem you solve everyday like a canvas of a painter. How you will your canvas is up to you. Whether you sketch (XP) and paint or have a small painting from which you reproduce the figure is up to you. There is no dearth of challenging things to do in CS, which is where the art comes in. Cut-Copy-Paste is definitely not an art.

There is art in computing and plain application of concepts which makes it a science. But the most important thing is that the science is not predictable enough (as of now), thats why we still have schedule over-runs, etc

Anonymous said...

I always wonder why we have predictable models (as in wind tunnels, model bridges, etc) for everything - aeronautics, civil engg, mechanical engg, but not for programming. One thing is that programming does not scale - but why is that? Is it the complexity?

kattricker said...

Thanks for this very interesting observation Gops. Art is something that requires a lot of human senses to coordinate to produce and appreciate. It requires intellectual skills rather than occupational or professional skills. Its inherent complexity comes from this very reason. The extra bit of senses and feeling is what we might call artistic talent. It may or may not be perfected by practice. There may be art in computing, but I feel its more scientific marvel than art.

Gops said...

Thanks Karthi, for your message. Its great to have people post comments!!! My replies appear below.

[quote] ...Art is something that requires a lot of human senses to coordinate to produce and appreciate. [/quote]

Isn't that the same for technology?

[quote]It requires intellectual skills rather than occupational or professional skills. [/quote]

Again, very true for technology, which requires occupational and intellectual skills

[quote] Its inherent complexity comes from this very reason. The extra bit of senses and feeling is what we might call artistic talent. [/quote]

Me thinks there is something called tech talent as well. I've seen people with machines - they seem to sense what is going on in them - like they have a connection. Also true of software - don't you intrinsically _feel_ a kind of pleasure when you see a well constructed algorithm, not very much unlike a well composed song?

[quote]It may or may not be perfected by practice. [/quote]

I think it is very much practice. Bhimsen Joshi, for example, is said to have sung for hours, standing in a river early in the morning to perfect his voice. All the great musicians have done 'riyaz' for hours to become perfect. Which is true for technology too - a Balbir Singh sits up late in the night to write a compiler which is not a work item, nor is a study assignment - precisely what makes him tick.

[quote] There may be art in computing, but I feel its more scientific marvel than art. [/quote]

I agree that my post is subjective, a disclaimer I made in the beginning itself. But you cannot disagree with the commonalities I've brought out in my post. Also, how about the adding the fact that the same source creates both art and technology - the well of human creativity.