Living with a computer language
I’m not a big fan of David Lean’s movie “Doctor Zhivago”, but it contains a line I love: “He approved of us, but for reasons which were subtle, like his verse.”
The older I get, the more I become averse to the snap judgements that seem to pervade the software industry. I particularly hate the genre of the shootout article. It’s bad enough for web browser comparisons, but it’s terrible for everything else. When applied to languages, this philosophy gives rise to articles showing a strong preference for, say, Python over Ruby, on the grounds that a little toy project is 3 lines shorter, and 5% faster, in Python.
In some cases, a language is clearly junk, but more often than not, it is unwise to make a language choice based on performance for your pet toy program. I’d go as far as saying that it takes months to get what a language is about. When you reach that point, it is likely that your complaints will be subtle, and poorly matched to a gladiatorial review.
These days I’ve been using and liking the Go language. I’ve written a few programs in it, and I’m going to use it for my project at work. I look at this language with hope. I happen to think that the Java + XML + Patterns + TDD fundamentalism that has been ruling the software industry is a bleak place to be, and plain boring. Go is refreshingly pithy and idiosyncratic, and still a serious, typed, compiled language. I ignore the language purists complaining about the lack of generics, or this or that pet peeve. I’ve been living with Go, and I’m keeping it.