Executive Briefing: Ruby on Rails

rails.gif

According to Derek Haynes of Atlanta-based Highgroove Studios, CIOs & CTOs that don’t investigate Ruby on Rails could be missing out on the holy grail of web application development – faster development, cheaper development, and vastly more usable applications. As our guest blogger this week, Derek provides a nice executive overview into this fascinating technology platform.

divider.png

“Mom – is my bedroom still available? I’ve run into some financial difficulties.”

It sounds over dramatic to talk about a web application framework as a life-changing experience on par with marriage, college graduation, and the birth of a child, but Ruby on Rails (Rails) has had more of an impact on my professional career than any other event.

In the spring of 2005, I was reluctantly leaving a startup I co-founded where an application built with Java 2 Enterprise Edition (J2EE) formed the basis of our business. Development was a nightmare. Besides being slow and overly complex, it wasn’t fun. If starting a car was like building a J2EE application, I’d have to spend 10 minutes configuring the engine before I even started the car. It doesn’t matter how nice the car is – if it takes me 10 minutes to start it, I’m not driving it.

The J2EE development experience could lead a person to swear off technology, purchase a hotdog cart, and head down to Atlantic Station.
As I’ve never been much of a cook and I lack street-vendor-hawking skills, I decided to give up on that idea.

Luckily, the story gets better. If you have an iPod around, go ahead and cue your favorite “I was down but now I’ve risen” song. Reading about Rails for the first time was like walking out of an evangelization camp where 2 people were cured of cancer and a third was cured of blindness. I was re-energized – ready to take on web applications with a framework that looked like it was the freakishly perfect child born from Google and Apple. Development was fast and fun and the code was amazingly readable. If Valentine’s Day hadn’t already passed, I might have asked my significant other if I could bring my laptop and reserve another seat at the dinner table for my Rails application.

Today, my relationship with Rails is even better, and instead of sleeping in a twin bed in my childhood bedroom, I lead Highgroove Studios, a growing web development studio with locations in Atlanta, GA and San Mateo, CA. Largely because of Rails, we’re delivering applications on-time and on-budget, while creating pieces of work that literally change our clients’ views of what a web application can do. While I’ve seen how Ruby on Rails can impact my services firm, I’m also witnessing how it can change larger organizations. CIOs & CTOs that don’t investigate Ruby on Rails could be missing out on the holy grail of web application development – faster development, cheaper development, and vastly more usable applications.

I’m going to cover Rails at a higher-level in this article and talk about some of the great side effects of Rails development. I’ll cut out the discussion on moving to Rails and the technical differences between Rails and other frameworks as plenty of resources covering these topics already exist. There’s a great article on migrating enterprise development to Rails by Rick Bradley, a project manager who is doing just that. IBM also has a solid piece on the technical differences between Rails and J2EE.

Rails In a Nutshell

The goal of Ruby on Rails is to make web development simpler. It’s fairly new, having recently reached version 1.0, and is an alternative to building applications in J2EE, .NET, PHP, or any of the other web frameworks and languages. Rails, built on the Ruby programing language, makes it vastly more productive to write web applications – as much as 10X faster than J2EE. Besides the productivity increases, Rails also has the best support of the for mentioned frameworks for implementing AJAX technologies. AJAX allows a web page to change state (for example, adding a message to a page without reloading). Web applications that utilize AJAX can blur the line between a desktop application and a web application.

Why Rails

  1. Time is Money
    While 10X productivity increases might only apply to specific projects, I haven’t worked on a web application that could be developed faster in a framework other than Rails. Other knowledgeable people agree. With Rails, there’s basically no configuration within an application. All of the needed components are available when you start your project. There’s also zero turn-around time to view changes in code (Ruby is a scripted language, which means you don’t need to recompile code to view changes in your web browser). I’ve found that “zero turnaround time” is one the best ways to encourage developers to write more maintainable code. With J2EE, developers might avoid refactoring bad code as the time to recompile and restart the web server serves as a major deterrent. With Ruby, it takes seconds to view the changes.
  2. Rails’ earliest detractors have become it’s biggest supporters
    This may be the greatest sign – an acknowledgement by many of the leaders in the Java community that Rails has really gotten to the root of the web development problem. Many people who have a considerable investment in Java are endorsing Rails. In the words of Levar Burton of “Reading Rainbow” fame, don’t take my word for it…
  3. Smaller Teams = Better Projects
    Small teams can accomplish a lot with Rails – and there are few arguments against small teams in development projects. Instead of delegating work to a development team, I can personally lead and develop our applications (while doing it profitably), and I can afford to hire a few of the best instead of a lot of the rest.
  4. The Rails community is the cream of the crop
    Developers who use Rails do it because they recognized there must be a better way – I’d argue they have a much better sense of the pieces needed to complete a successful project than a “heads down” coder. “Big Picture” coders need less management attention, which again leads to more successful small teams.
  5. …and it’s easy to switch if you don’t have Rails experience
    While the number of Ruby developers pales in comparison to other languages, it is an extremely easy language to pickup. I have few reservations about hiring a developer without Ruby experience as they don’t need to know a lot of details about the framework – they just need to be good coders.
  6. When usability matters (and when doesn’t it?)
    Many people associate Rails with great-looking applications. Because Rails has fantastic AJAX support – implementing AJAX is becoming trivially easy – the framework works great with small teams that have the ability to work on the interface design and the backend functionality. Usability is more important than ever – people have less and less patience for tedious applications today, and Rails gives developers the tools to make applications easier for its users.
  7. Higher Quality
    We’re not perfect, but the amount of broken code that’s been rolled out in our Rails projects is far less than the number of bugs I’ve experienced in applications with other frameworks. This is largely because it is far easier to implement unit testing in Rails as compared to other frameworks. Unit Testing is a way of automating tests – developers write scripts to test out parts of an application, and can then run these at anytime in the future. Just added a new feature and not sure if it will break other parts of the application? Simply run the tests and see if they all pass.
  8. But can it scale?
    One of the major items of concern raised by those in the Java community is whether Rails can scale. The bottom line: there’s no reason why it can’t do it better (and cheaper) than Java. However, there hasn’t been an eBay-like application written in Rails to prove this theory (but there haven’t been a lot of new eBay-like applications as a whole either). Scaling is never simple, but there’s no reason why it would be any harder in Rails.

As the framework has matured, it has become more and more difficult for Rails developers to cite cases where Ruby on Rails development should not be the framework-of-choice for web applications. As it grows, some of the framework’s relative weaknesses, like a lack of internationalization (support for multiple languages) and a complicated server setup are fading.

I’ll leave with a quote by David Geary, the author of Core JavaServer Faces and a Java-to-Rails convert:

“Will Rails hit a tipping point and become widely adopted in the near future? I am certain of it.”

Biography

Highgroove StudiosDerek Haynes is the founder of Highgroove Studios, a web applications studio specializing in building elegantly simple Web 2.0 applications. Before starting Highgroove Studios, Derek worked in a variety of industries – from sales in a Fortune 100 company to software development in a 6-person firm. Graduating with High Honors from Georgia Tech, Derek bleeds black and gold.

divider.png

A special thanks to Derek Haynes of Highgroove Studios for serving as our guest blogger this week. Great job, Derek! As IT leaders, we should always strive to explore new efficiencies, and how they might fit into our strategic technology plans.

Have an opinion on a topic relating to technology, leadership, venture capital, entrepreneurship, business networking, or the Atlanta business scene? If you or someone from your organization would like to participate as a guest blogger here on The Pothole, by all means let me know! This is a great way to get your message out into the blogosphere without necessarily having to create and maintain your own daily blog.

Cheers.

1 Comment

  1. Nicely put, Derek. As a good friend and fellow classmate, I have witnessed Derek’s downs and ups — and his new found “revitalization” and success with Ruby on Rails.

    There is another reason that a framework like Ruby on Rails will succeed — it is because of people like Derek, and those at Highgroove Studios who can not only develop usable, functional, beautiful applications, but also engage, communicate, and effectively “grok” clients and their expectations. Couple this kind of stellar run company with a stellar technology like Rails, and watch the success stories for both continue.

    Great job, Derek — here’s to more ups than downs to come….

Leave a Comment

Your email address will not be published. Required fields are marked *