Ruby on Rails

Ruby on Rails

At my day job we’re currently redesigning our long suffering website using Ruby on Rails.  The fun started back in October when a small team of mine started looking at a couple of different technologies including PHP with Cake, Django, and Ruby on Rails.  After a really brief look at other stuff (a day or so) we went with Ruby on Rails.

To my friends who aren’t web nerds, I apologize, this is probably going to be boring for you, to those of you who are interested in seeing how I tend to make decisions (quickly and full steam ahead), this might be interesting.

When we had been looking at changing technologies, we decided early on that our main decision factors would be:

  • Ease of implementation – we wanted something that didn’t require 20 years of computer science to understand
  • Easy, but not simple – something easy to use, but sophisticated enough to handle some of the complex things we do.
  • Ease of outsourcing – something that we could hire people to work on small projects, so the technology itself had to be widely adopted
  • Scalable – something that we could throw more servers at to handle load problems.  This is how we handled load at TSN, and that’s always worked for me.
  • Interpreted language – This is a personal choice, but I hate compiled languages.  Back in the bad old days at Globe and Mail, I always bristled under the Java people’s way of doing things, and .NET was looking more and more like Microsoft’s implementation of Java.  Great for applications…crappy for websites.

While it might look like it was a rash decision (really, you looked at a technology for a day and decided on it?), the truth is that I personally had been noodling this decision for a year, and I’d laid a lot of groundwork.  Over the course of a year I had installed WordPress and did some brief customization (and listened to Joe evangelize the technology), I had played with CakePHP a little bit on one of my servers, had been fooling around with a ton of different PHP CMS systems including Drupal (installed on GarsideWeb but removed a few months ago), Joomla (installed on All New IT, but removed a couple of months ago, Pligg (which I built the slowly dying ComicLift on top of), I had read a lot about Django, but hadn’t done anything with it because none of my exiting infrastructure supported it “out of the box”.

The guy leading the project, Derek, someone who’s opinion I’d learned to really respect over the previous year because he and I were on many of the same wavelengths, suggested Rails, and initially I bristled because I had read a lot of negative press mostly around Twitter’s poor performance.

Rails was something I looked at early, and decided against due to the problems that Twitter was having scaling.  There was a large “Rails doesn’t scale” camp out there, and I was listening to it.  However when I started looking at the big sites using Rails, I realized that maybe Twitter just had a bad implementation.  After all handled the Olympics traffic like a champ.

So what sites are using Ruby on Rails and reporting pretty good results?

Basecamp – by AdaptivePath the founders of RoR – the joint TV venture between NBC Universal and News Corp (Fox)

YellowPages – the phone directory service

Twitter – the social media website.

The New York Jets – the NFL team’s website

To me the big two were Twitter, which is an online application, and Hulu, which has been handling gobs of traffic lately.  Twitter had some growing pains, but recovered amazingly around the time of the election, and handls massive promotion on NBC and Fox like a champ!

In the end I trusted Derek, and let him run with what he thought was promising.  To be honest we just needed to make a decision at this point and all of the technologies had their own plusses and minuses…and all were “good solutions”.  While we might have found “the best solution” if we did a more thorough testing, sometimes you just have to make a decision and go with it.

We’ve been working away on the site since November, and we’re within a month of launching.

Next Wednesday (I’m going to get back to my “Web Development Wednesday” schedule), I’ll go through the process of redesigning the site and what principles were behind it.

I’ll also write up my starting Ruby training, which books, sites, and screencasts were invaluable…and I’ll show you how to create a content management system in 35 minutes (Yeah, I couldn’t believe it either).