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.
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, Blogging...to 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 then...you 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...