“My language is better than yours at doing X!”
“Yeah, well mine’s better at doing Y!”
Yep, we’ve all been there, well most of us have I’m sure. Someone likes Perl. Someone else likes Ruby. Someone else likes Java (really? you sure?! just kidding
)
Here’s a classic example that popped up recently http://blog.obiefernandez.com/content/2009/04/my-reasoned-response-about-scala-at-twitter.html. The article itself is well readable, although it does come across quite critical of Alex Payne, and of the use of Scala at Twitter. But the comments are pure flame bait.
There are countless similar examples all over the Googles back yard (or the Internet as some call it). So why drives people to start flame wars? I’d hazard a guess it’s the same thing that drives all wars. Religion. Of course some people wouldn’t call it that. Think of it as belief in your a programming deity, where each language has its own deity, and belief system. Java followers pray towards the Sun HQ, Ruby devotees bend their knees towards Japan, and Perls acolytes simply grow longer beards and get on with the job at hand. But whatever faith/language you choose there are ways to piss off the other guys, the ones that don’t believe the same as you do.
And the sad part is that there is nothing to be gained from flame wars like this. I would very highly doubt that anyone from camp A has been persuaded to give up their language of choice and side with camp B just becuase they read a ranting post in a flame war thread. Have you? Seriously?
The fact of the matter is, in 99.999% of situations language A is going to work just as well as language B. Yes there are fringe cases. Yes there will always be ways you can make it look like language B is faster. An unbiased benchmark of all current major languages in every possible permutation is of course impossible. So how do you choose? Do you have to? Well, yes, I’m sure some of us do. Most of us will be forced into using a particular language via our job, via our experience. But for those projects where you can choose the language, how do you? How about this?:
- Is it your first programming exercise? Yes – choose C (seriously, do it, you’ll learn the most this way). No – choose the language you’re most familiar with.
That’s it. Simple, yes?. Good. Right, now stop writing incediary posts on blogs and twitter et all, and spend time sharpening your skills. Then when the time is right, and you really do need to argue why your language is better suited to a particular implementation you’ll know the ins and outs and gotchas of your language better than the other guy, because he won’t have read this and so he’ll still be starting flame wars that don’t matter.
Have fun!