______ programming language sucks! May 1, 2008
Fill in the blank. I promise you it sucks.
Ruby on Rails especially sucks.
While I do get quite a kick out of picking on my boss’s favorite, perl, I do recognize that each language sucks and each language doesn’t suck. Personally, you’ll probably never see me start a project in perl, c++ or anything Microsoft only. Mostly because there’s too big of a learning curve in it for me. I definitely favor PHP for most projects, but that’s soley because of familiarity. I could see myself choosing Java/Python/Ruby for some specific task over PHP. And Ruby on Rails just works in ways my brain refuses to think, it’s like trying to teach myself a new way to breathe.
So my personal favorite is PHP. I like that I can code up things in a flurry of creativity. If one night I’m feeling especially inspired I can crank something out fast as a proof of concept. Unfortunately for me, my interest vastly drops after I prove the concept and the proof of concept code is often used as the real code. So the ability to code “bad code” in PHP is both a good and a bad thing to me. I mean… I even wrote TweetWords while mostly drunk. Even though the code worked and didn’t have any glaring issues… it was ugly and hard to extend and maintain. That underwent a 75% rewrite to get most of the drunken design out of it and has been being improved weekly by my friend Ben and me.
So I know PHP well, I write a lot of spontaneous crap in it, and PHP is used in many open source web projects. This is why I tend to lean on it so much. And everything perl can do PHP can do, which is why I’d never start a project in perl. And I understand that some of the reasons why I like PHP are the reasons others hate PHP. Oh well.
So what is the right language to use? All of them.
You have to look at your situation and choose the proper language for the job. Some important factors off the top of my head are:
- Who is going to be writing it and what are they strong in?
- How complicated is it?
- How important is the ability to scale it?
I’ve seen extremely simple concepts implemented with massively complex designs and frameworks. They took 100 times longer to implement than they should have taken and any modifications to them took extra time too.
I’ve also seen more complicated concepts attempted to be done with too basic designs. They failed to scale and were a pain to modify and extend.
So pick the language that is right for the situation. And don’t be afraid to venture outside your comfort zone, you’ll never improve or learn anything new.
And lastly, here’s a handy chart using google and monster data.





