Why I Use Ruby on Rails

Posted by drew

I was perusing Brad Gessler’s conden.se blog today when I came across this article – How to Hire a Rails Developer . Lots of swearing aside, Brad brings up an important question that every developer, rails or not, should ask themselves: “Why did you choose Rails?”

Rails is a technology de jour. They all come and go; even Rails will not escape this fate. Be sure to ask your developer, “Why Rails?” In fact, if you are looking for a Rails guy and you’re starting a project from scratch, you should probably also be asking yourself that question!

When you ask your developer this question, don’t accept the answer, “because it is so easy!” or “It makes me more productive!”. Why is it easy? How does it make you more productive?

At Condense, we chose Rails because unlike most of today’s web frameworks, environments and testing are a forethought; not some shit that is tacked on to a framework after it was shipped. This paid off at a TECHCocktail when our internet connection was down and we had to copy our application to an iPod, move it onto another machine, and fire it up.

Without automated tests, we’d just be dead. There is no way in hell we would be able to deploy new features with confidence. For Rails, it was really the thought of the workflow around all of the development that had us at “hello”. Automated tests have proven so important and valuable to us at Condense that we consider them a competitive advantage.

So Why Do I Use Rails?

My answer is much less technical than Brad’s. I don’t really have automated testing or systems environments in mind. I like rails because I can quickly get my ideas to prototype.

Professionally, I work with Java most of the day on highly enterprise-y applications. Java is at the other end of the webapp spectrum when it comes to doing stuff fast. Yes, it can handle the load better and yes, it’s more mature but when it comes to taking an idea sketched on a cocktail napkin and creating a prototype all in the same night Java can’t stand up.

PHP does a good job of bridging the gap between scalability and speed-to-market. There’s an ongoing PHP-is-better-no-Rails-is-better debate going on within the nerd community. One major argument is that the same MVC framework and LISP-like functions Rails uses can be applied to PHP with some simple framework/library modifications. As well, many developers argue they can prototype just as quickly in PHP as Rails.

Glad to hear PHP works well for you, but PHP feels like a chore to me. It takes me time and energy to load in those libraries, make sure the config is set up correctly, test, debug, blah. When I want a new rails app I do this:

 > rails newApp 

What matters to me is getting my from napkin-to-prototype quickly. I have a full-time job (~50 hrs/wk), I travel every week and am expected to also have some semblance of a social life. I don’t have time to mess around with configuration, libraries, JARs and other odds-and-ends involved with more production-worthy languages.

At the heart of it all, I am a business technologist, not a computer scientist. Handling scale is all well and good but it doesn’t mean squat if the project cannot be produced quickly. Rails empowers the business-minded developer with the flexibility to develop, test and deploy web applications without the cognitive friction involved with setup and configuration.