Ruby on Rails: Making Web Programming Easier
If Web development application tools were a music festival, Ruby on Rails would be the hot up-and-coming act, stealing much of the attention away from the aging headliners, such as .Net or Java. The band's sound would be clean and melodic -- opposed to the unnecessary noise emitting out of the competition.
Forgive the musical analogy, but if you've spent any time using "Rails," as it's affectionately referred to by its legions of programmers -- in fact, more than 1,200 of them are congregating in Portland, Oregon, in May for a Ruby on Rails conference -- then you know how it could help quickly establish and grow the Web presence for your small-to-mid-sized business.
Rails was created by 27-year-old David Heinemeier Hansson, a partner at Chicago-based 37signals, a Web-based software company best known for the award-winning Basecamp, a Web-based project management and client extranet tool, and Backpack, a Web-based personal information tool used by many small businesses. "Ruby on Rails" is a full-stack, open source Web framework that lets users create full-featured applications -- from collaboration tools to ecommerce solutions to Web 2.0-based community sites -- but with less code and less hassles than other tools.
The theory behind rails
"Quite simply, Rails is a set of tools that makes it easy for programmers to do what they do," says Hansson, a Danish-born programmer who won the first Google-O'Reilly "Hacker of the Year" open-source award in 2005. "Instead of the experience being a frustrating and disappointing one, we chose to take programmer-friendly approach to development." Adds Hansson, "From day one, our goal was to 'optimize programmer happiness,' which is the reason why Rails has received so much attention."
Hansson says Rails wasn't just created for the small and mid-sized business market. It was born out of it. "We were just three people working on Basecamp, the app that founded the Rails framework," recalls Hansson. "We found existing tools weren't productive or rewarding enough for small teams -- Rails is the framework for small teams to do big things."
On how they achieved this lofty goal, Hansson says it was a desire to create "beautiful code." "We don't treat code for something as machines to interpret, but rather, it's designed for those who are writing or changing it," says Hansson. "Rails is clean, consistent and simple -- almost elegant -- like good writing, if you will."
Convention over configuration
According to Hansson, too many programming packages require an enormous amount of configuration just to get started as they assume the programmer wants a clean slate. Ruby on Rails, however, assumes "most people want to the same thing most of the time," says Hansson, offering a significant productivity benefit, especially for companies that are short on resources and tall on IT marching orders. "We offer conventions as a starting point, which is how applications can be structured, instead of relying on new configurations."
Instead of forcing the programmer to make new decisions every time they create a Web application, Rails "shoves" these decisions into the framework to help programmers along. "We wanted to get rid of 'Groundhog Day," adds Hansson, referring to the feature film where every day follows the exact pattern. "We make a set of decisions everyone will live by unless they say otherwise."
Put your mouse where your mouth is
The aforementioned Basecamp is the original Rails application. Basecamp is a project collaboration tool to help employees collaborate around projects. Because Basecamp is hosted on 37signals' Web servers, users need not download, install, upgrade or configure anything -- all that's required is a Web browser and Internet connection.
Tobias Luetke, who co-founded jadedPixel, which developed Shopify, a hosted e-commerce platform used by more than 17,000 stores to date, maintains that Ruby on Rails has helped the programming community. "Ruby on Rails is the closest thing to the mythical 'silver bullet' there has ever been in Web programming," he says. "It's a language and framework for writing modern webpages in a fraction of the time it used to take using traditional tools and with a fraction of the team size."
Luetke has used Rails in developing applications, including Shopify, and he sees it as a watershed development. "The technical superiority of Ruby on Rails is leading to a golden age of entrepreneurship in the Web programming industry which often sees people quit their day jobs and then accomplishing in a month what their old team tried to accomplish in years," adds Luetke.