The Right Tool For The Job

01 May 2011

I’m a firm believer in the aphorism above. So, in that spirit, I will now expose the process I used in choosing the tools for my project. At the risk of offending language zealots, I will be perfectly blunt; I can’t stand some of these languages, and I only put them here to belittle them.

##Part I: Language

Choosing a language is a pretty important part of this process. Here’s the rundown on my choices.

###C

Yeah, I didn’t really consider this, but it is worth noting. C is one of my favorite languages of all time, but it seems ill suited to this problem. I would have too much overhead to get it off the ground.

###C++

Just like C, this would just carry too much overhead.

###Java

Honestly, I’m not a huge Java fan. It is a little too verbose for me. The ideas behind the language were nothing short of genius, but actually using it – especially in a case like this one – is just a pain.

###C#

Ha.

###PHP

I have quite a bit of experience with PHP, and I find it to be a decent language. That being said, I have found it to be a bit disorganized; the language has gotten a lot better over the years, but it still doesn’t feel like much more than a toy.

###ColdFusion

This is what I work in every day at my job, and I can’t stand it (sorry, work friends, but you already knew I feel this way). ColdFusion makes Java look terse and PHP look clean and organized.

###Haskell

This would be overkill on so many levels. I don’t think I’m quite nerdy enough to start building simple web applications in a CS trendy language like Haskell.

###Ruby Tempting, but having actual rockstar aspirations makes the stereotypes here all too real. Not to mention all the other hipster symptoms I’m too often diagnosed with. Maybe for another project with less inherent hipster vibe.

###node.js (JavaScript)

I’ve heard good things about node.js, and I do enjoy JavaScript. JavaScript without DOM might be a fun adventure. I do enjoy functions as first-class objects and closures, but I don’t really need the event-driven I/O. Maybe another project.

###Go

Go is just plain awesome. The only thing preventing me from using Go for this is that I could only choose one. If you haven’t had a chance to try out this language, do.

###Python

Clean, terse, powerful, and stable… With a vast amount of resources available, and some of the most flexible, powerful frameworks, this was nearly a no-brainer. Plus, I just wanted to learn it.

comments powered by Disqus