Whether you’re a rapper who’s become too rich and powerful, or a web framework that’s become popular beyond anyone’s expectations, one thing is true: haters gonna hate. This is the case with Ruby on Rails, perhaps more so than any other topic in the developer community in recent years. It’s the code messiah, or it’s worthless – everyone has their opinion. In any event, Ruby on Rails powers many of the web’s most popular services – Airbnb, Groupon, and Hulu to name a few – and is at the heart of at least 250,000 other sites on the internet. Let’s dive in and take a closer look at what it is.
Ruby on Rails (often called Rails, or RoR) is an open source, full-stack web application framework that uses the Ruby programming language. This means a few things. Because it is open source, anyone can use it. Because it is full-stack, Rails provides everything you need to create a web application from the ground up. And because it uses Ruby, an object-oriented programming language with a flexible syntax, it is relatively easy for an inexperienced programmer to get started.
Like other popular web application frameworks (Django, Zend), Ruby on Rails provides lots of “out-of-box” capabilities that make a developer’s job easier. Rails comes with libraries for database access, templating frameworks and session management, and gives a developer 100% control over the presentation layer of the code. Also, because Rails favors convention over configuration, it has a tendency to hide things that, especially for a simple application, developers don’t really need to know.
Ruby on Rails was first developed by David Heinemeier Hansson in 2004 as part of his work on Basecamp, the now-famous project management tool. Use of Rails grew steadily over the next few years, but hit a snag when Twitter abandoned Rails in mid-2008 amidst their widely-publicized problems trying to scale their platform. Since then, people have worked hard on creating solid stepping stones for scaling Rails applications, such as through the use of alternative databases and caching libraries. Today, more than ever, there are a wide range of paths to take when scaling up.
Rails is comprised of “gems,” or, packaged Ruby applications and libraries that developers have made available for the public. Twilio, for example, is a gem that enables apps to place phone calls and send texts. The vast quantity of gems is evidence that Rails has inspired one of the most active – and evangelical – communities in the programming world. Indeed, if you’re setting out to learn a language, Rails offers an impressive, perhaps daunting, number of tutorials, books, videos and programs to choose from. You can even learn Rails the zombie way.
At the same time, some have argued that the learning curve for Rails is very steep, and that it’s difficult to build anything both good and scalable without prior knowledge of Ruby. Furthermore, if your application employs a number of gems (as so many do), and you don’t truly understand how each gem works, there will likely be trouble down the road.
Still, if you’re looking to dive into programming and get results quickly – for example, building a simple prototype – Rails may be perfect for you. Check out the Ruby on Rails site (or consider taking a Ruby on Rails course at GA!) to learn more about what it can do, and how to get started.