When David Heinemeier Hansson worked on the Basecamp project, Ruby on Rails came about because he’d been dissatisfied with the way it was coming together using PHP and Java. Ruby was not as popular then as it is today, so there was less support from fellow users available to help him make the most of it. To speed things up, Hansson devised a Web development framework of his own, and some of the ideas that he came up with was so good that they have since found their way into other projects.
Rails was built on pragmatism. It’s so popular now because it doesn’t try to reinvent the wheel of bamboozle users with tricky concepts. It just does what it does well. It’s based on the Model-View-Controller pattern that divides an application into three sections:
- The Model section represents the problem your app is trying to solve, in terms of its structure and behavior.
- The Views section contains the templates that display data to the user and all the logic describing the way that everything will be presented.
- The Controller section is at the center of everything, an intermediary that shuttles requests from clients, applies changes to the models and then renders the templates.
Rails has a reputation for being an individual kind of language. It wasn’t built to be a ‘jack of all trades’. It has its own unique way of doing things and its components are shaped by its personality. This doesn’t mean it’s totally inflexible though. If you want to, or need to, you can try and do things your own way using Ruby on Rails, but you will certainly find it easier if you respect the ‘Rails approach’. Hansson found it worked well enough for him and a great many developers find it works well for them too.
That style of programming turned out to suit Hansson perfectly, but it also found favor with many other developers too. They probably like it so much because Ruby on Rails was designed to make programmers more productive, even if performance suffered as a result.
This perceived shortcoming has led to a lot of heated discussion about whether Ruby on Rails is good at scaling. It’s come about because Ruby on Rails was anticipated as something that would be able to fix a lot of the problems that programmers and web developers encounter. When the development group couldn’t meet those lofty expectations, some members of the community felt unhappy about it.
Despite its shortcomings, Ruby on Rails still enjoys great popularity as a Web framework and is now the name behind a lot of well-known websites and services like Twitter, Groupon, Scribd, and Shopify.