What is this “Ruby on Rails”? Sounds fancy.
Ruby on Rails, often shortened to just “Rails” or “RoR”, is an open-source web application framework for the Ruby programming language. Rails was created by David Heinemeier Hansson (DHH), a partner at web software development firm 37signals. First released as open source in 2004, the maintenance and support of the framework has transitioned to a core team of dedicated developers with substantial input from the Rails development community.
Why does Foraker Labs use Rails?
Here at Foraker Labs, the majority of our web applications are now built in Ruby using the Rails framework. But this was not always the case. We’ve been around for more than 10 years and for most of that history we were essentially language agnostic. We’ve built dynamic websites and complex business applications for our customers in everything from Perl to PHP to Java to ColdFusion, and we’ve found lots of things to love about each and every one of these platforms.
So why do we now specifically recommend Ruby on Rails when our customers approach us about building a custom web application? We have our reasons.
10 reasons we use Rails
- Rails was built for web applications. Rails is free from the compromises that more general-purpose languages and frameworks like Java/EJB (1991) and .NET (2002) can suffer from. Rails doesn’t try to be the best tool for every job, just the job of building web applications—and that’s what we do!
- Rails uses Ruby, a relatively new programming language that was explicitly “designed for programmer productivity and fun”. Even Rails skeptics admit to liking Ruby for its clarity, functionality, and flexibility.
- Rails is open-source and platform-independent, which means our customers get all the benefits of an enterprise-class web development framework with none of the expense, and without being tied to a specific platform.
- Rails has quality built in, with out-of-the-box support for unit tests, functional tests, and integration tests. Testing no longer needs to be expensive.
- Rails helps us get started quickly, with built-in code generators to streamline the creation of database tables and web form pages. And using a dynamic, interpreted language like Ruby under the hood means developers aren’t waiting around for code to compile before seeing their application in action. This means our team can leverage the built-in features of Rails to get new applications up and running quickly and efficiently, in minutes rather than days.
- Rails is flexible. It makes strong use of the model-view-controller design pattern, which aims to isolate the business logic from the user interface, letting developers and designers work together efficiently. Rails also supports an array of plug-ins, modules, and engines that make it straightforward to extend or modify core functionality. This means we end up being able to say “yes” to our customers more often.
- Rails is opinionated, and starts out by making assertions and defining conventions about how web applications should be built. This ends up building de facto consensus among developers and therefore saves a lot of time.
- Rails likes databases. Integrated ORM via ActiveRecord lets programmers work with objects instead of record sets, and write database-independent code in Ruby instead of SQL. Rails migrations make it easy to roll out and roll back changes to the tables themselves.
- Rails plays well with others, with built-in support for XML web services so that integration with other applications is a breeze.
- Rails makes our team more effective. Being multilingual was a sales pitch that seemed to resonate well with many of our customers, helping us to grow our business and our client portfolio. But a little over two years ago we realized that being language agnostic was not going to scale well. Each of our developers was more or less an expert in one or more programming languages, but there was no common tongue. The decision to focus on developing in a single language and a single framework changed all of that for us. Having everyone fluent in Ruby on Rails makes it easier for our team to work together and to talk about business problems without being hindered by language differences or framework confusion. New developers learn our best practices faster, team members share information more freely, and folks get to take a vacation every now and then without worrying that nobody will be around to support “their” applications.
Rails is about results
Happy Developer at Foraker Labs
Perhaps the most important reason we use Rails is that Rails lets us focus on solving business problems. At the end of the day, our customers care more about results than about any particular technology. Using Rails as a common language for our team means we can spend more time wrestling with our customers’ business problems, and less time wrestling with the technology itself. Rails lets us get started quickly, work efficiently, and respond flexibly, helping us to focus on the real challenges of designing and implementing functional, usable, and reliable web applications for our customers.