Jach's personal blog

(Largely containing a mind-dump to myselves: past, present, and future)
Current favorite quote: "Supposedly smart people are weirdly ignorant of Bayes' Rule." William B Vogt, 2010

Orwell on Object Oriented Programming

I was re-reading Orwell's Politics and the English Language tonight, it's been many years. One new insight I got from it came from this subsection of a paragraph:

As I have tried to show, modern writing at its worst does not consist in picking out words for the sake of their meaning and inventing images in order to make the meaning clearer. It consists in gumming together long strips of words which have already been set in order by someone else, and making the results presentable by sheer humbug. The attraction of this way of writing is that it is easy. It is easier -- even quicker, once you have the habit -- to say In my opinion it is not an unjustifiable assumption that than to say I think. If you use ready-made phrases, you not only don't have to hunt about for the words; you also don't have to bother with the rhythms of your sentences since these phrases are generally so arranged as to be more or less euphonious. When you are composing in a hurry -- when you are dictating to a stenographer, for instance, or making a public speech -- it is natural to fall into a pretentious, Latinized style. Tags like a consideration which we should do well to bear in mind or a conclusion to which all of us would readily assent will save many a sentence from coming down with a bump. By using stale metaphors, similes, and idioms, you save much mental effort, at the cost of leaving your meaning vague, not only for your reader but for yourself.

This is the essence of bad OOP, characterized most humorously by Steve Yegge's Execution in the Kingdom of Nouns. It's a funny observation that many Javalanders are very happy with Java, and as Orwell says, it's easier, and quicker once you're in the habit, to fire up Eclipse, autocomplete and autorefactor this and that, sling giant names and namespaces around that still somehow fail to describe what's happening, and be satisfied by completing your story with the minimum of mental effort. Clojure is the antidote for anyone unhappy about being in Javaland. But I don't think Clojure will ever be as popular as Java, and it can at most hope to be bundled with the JDK. Simply because as Hickey says, simple does not mean easy, and as we've seen repeatedly in history, people choose the presently and evidently easy path even when it's against their long term interests. (Not that working with Clojure is an exercise in doing things the hard way -- it wouldn't be as popular as it is if it didn't make certain things, like Java interop, very easy as well as very simple -- but Clojure does require more mental effort overall because it makes it harder to get away with sloppiness.)

See Full Post and Comments