programming in the
twenty-first century

It's not about technology for its own sake. It's about being able to implement your ideas.

How Did Things Ever Get This Good?

It's an oft-repeated saying in photography that the camera doesn't matter. All that fancy equipment is a waste of money, and good shots are from inspired photographers with well-trained eyes.

Of course no one actually believes that.

Clearly some photos are just too good to be taken with some $200 camera from Target, and there must be a reason that pros can buy two-thousand dollar lenses and three-thousand dollar camera bodies. The "camera doesn't matter" folklore is all touchy-feely and inspirational and rolls off the tongue easily enough, and then everyone runs back to their Nikon rumor sites and over-analyzes the differences between various models, and thinks about how much better photos will turn out after the next hardware refresh cycle.

But the original saying is actually correct. It's just hard to accept, because it's fun to compare and lust after all the toys available to the modern photographer. I've finally realized that some of those photos that once made me say "Wow, I wish I had a camera like that!" might look casual, but often involve elaborate lighting set-ups. If you could pull back and see more than just the framed shot, there would be a light box over here, and a flash bounced off of a big white sheet over there, and so on. Yes, there's a lot of work involved, but the camera is incorrectly assumed to be doing more than it really is. In fact it's difficult to find a truly bad camera.

What, if anything, does this have to do with programming?

Life is good if you have applications or tools or games that you want to write. Even a language like Ruby, which tends to hang near the bottom of any performance-oriented benchmark, is thousands of times faster than BASICs that people were learning to program 8-bit home computers with in the 1980s. That's not an exaggeration, I do mean thousands.

The world is brimming with excellent programming languages: Python, Clojure, Scala, Perl, Javascript, OCaml, Haskell, Erlang, Lua. Most slams against individual languages are meaningless in the overall scheme of things. If you like Lisp, go for it. There's no reason you can't use it to do what you want to do. String handling is poor in Erlang? Compared to what? Who cares, it's so much easier to use than anything I was programming with twenty years ago that it's not worth discussing. Perl is ugly? It doesn't matter to me; it's fun to program in.

Far, far, too much time has been spent debating the merits of various programming languages. Until one comes along that truly gives me a full magnitude increase in productivity over everything else, I'm good.

permalink November 10, 2009



twitter / mail

I'm James Hague, a recovering programmer who has been designing video games since the 1980s. Programming Without Being Obsessed With Programming and Organizational Skills Beat Algorithmic Wizardry are good starting points. For the older stuff, try the 2012 Retrospective.

Where are the comments?