Lisp is Poetry and Most Programmers Want Prose
As I was reading Sriram Krishnan’s Lisp is Sin it struck me why I simultaneously find myself impressed with Lisp but could never even think about using it. Sriram talks about a love-hate relationship, here is my take on it.
Well written Lisp code is poetry - it is expressive in the same way that Shankepeare is. Yet, while we may admire Shakespeare, most of us don’t routinely blog in verse, and I would never attempt it.
My experience with Tamil and English is illustrative. I did my schooling in India with Tamil as the medium of instruction until my 10th grade. English was taught as the second language. Initially, like all kids in that system, I struggled with English, but somewhere around 8th grade it “clicked”. The trick was finding the famous grammar text book Wren & Martin and learning the rules of grammar [rather odd way to learn a language, when you think about it]. After learning grammar, I took a dictionary and just randomly memorized as many English words as I could find. So grammar + dictionary database - that was how I learnt English. I still could not speak English well until I reached IIT, but my reading comprehension was quite good at that point.
Here is the interesting part: by around 10th grade, I was finding English a lot easier than Tamil. The problem for me was that as a old classical language, Tamil has a lot of polished, ornate, expressive literature, particularly poetry which is routinely inflicted on students, while English-as-second-language was mostly about easy prose. My wife, who went through an English-medium education in India finds it amusing that I “escaped” schooling without learning any English poetry at all. My written Tamil is about as prosaic as my written English, and in Tamil, that is less OK than it is in English. The literate Tamil style is more ornate and expressive. With a mathematically oriented mind, I always viewed language as a tool, a means of communication, not as art. It is both, of course, but the art part language is not for me. I get far more excited by ideas, not the form in which they are expressed.
It is not to say that Tamil poetry or literature is not beautiful. In fact, there are a lot of things in Tamil that are very hard to translate to English while preserving the original effect - something people would assert about many other “classical” languages, like Sanskrit or Latin or even French.
I view a computer language the same way as I do a human language - a tool, a means to an end, not the end itself. I love software as an end-product, but don’t particularly like to view the code, unless I have to. And if I have to, the more obvious the code the better. I am much more impressed by the genius of the finished product rather than the expressive beauty of its implementation. Contrast this view with Paul Graham’s Hackers & Painters. Different strokes …
English became standard because it is a thorougly bastardized language [that, and the little thing called the British Empire] that appeals to the pragmatic business crowd. It is telling that there is no one even to take offense when it is called a bastard language - a French person or a Tamil person would take real offense, for example. It is hard to imagine a Brit or American to be up in arms to defend the “purity” of English.
I think it is the same in computer languages. I bet that the vast majority of the world’s programmers, want an “easy” language, not a highly expressive, poetic language. In Paul Graham’s terminology, they want Blub. And the Blub programmers don’t particularly get worked up when Blub is attacked. And contrary to Graham’s implication that this says something about their IQ, I believe the reason they want Blub is that they don’t get all that excited about something as mundane [to them] as a computer programming language. After all, if you are doing wireless communications systems simulation [as I was] or writing a web word processor [as we are], what matters is the particular domain, and the language in which it is developed is not the most important issue.
So go ahead, call us Blub programmers - we don’t mind.