Religion in Programming Languages

I don’t have time for this sort of thing, but I keep stumbling across it anyway.

Programmers keep having flame wars about the drawbacks of various programming languages. (I should probably provide a link, but the entire discussion should really just die).

Newsflash: They all suck.

This is a basic engineering fact. No matter what you create, it’s going to suck at something. Everything in life’s a tradeoff.

Want a big brain? You probably aren’t going to fly on your own wings. Want to print lots of color pictures? You probably want separate black toner for the legal stuff. Want a happy marriage? You may have to learn to live without nuts in your carrot cake (though this would be a horrible tragedy…I think we can all agree about that).

Anyway.

I just ran across a blog post that boiled down to “PHP sucks almost as bad as VB6, and it doesn’t matter because you’re going to use it anyway.”

My personal inclination is “Meh…whatever.” *Most* programming languages that gain wide-spread use were not well designed. If elegance were the key, we’d probably all be using Haskell.

There isn’t anything interesting in what I’ve written so far. I’m just telling you what you already know. But there is some meat here, for a change.

I work with a person who honestly seems to believe that all programming languages are basically the same.

He favors PHP, and grades interviewees on their familiarity with that particular language. I strongly suspect that I got a “Pass” in the hiring process from him because I think it has its place. Never mind the referal bonus that I know he received.

At the same time, he’s a fairly rabid K&R C fan who absolutely hates the idea of thinking about performance. One of the things he loves most about C is the ability to link in an extra library to handle your memory management for you.

This particular attitude totally blows my mind.

In this day and age, I’m not sure why anyone who has any choice in the matter would ever choose C except for the ability to explicitly control memory. If you’re calling free() and malloc(), then you’ve probably missed the point.

Well, except that it isn’t C++. That’s something. But still. It just doesn’t seem like a *big* something.

I have some fairly serious doubts about the programming ability of anyone who claims that, for example, C, clojure, and python are all equivalent.

From the Turing Machine perspective, they *are* (at least mostly), but the reality of the concepts you can think about in each language is just vastly different.

The fact that he’s in the process of merging a whole bunch of functions back into one long one (which he promises will be elegant and beautiful) looks like another red flag to me, but that’s probably the subject for another post.

Leave a Reply

Your email address will not be published. Required fields are marked *