What is Ruby on Rails?
Rails is a web application framework built around the Ruby language. The Ruby language was created in the mid 90s when the author, Yukihiro Matsumoto, decided to create a new, object-oriented language that combined some important features from several other languages. Rails actually began life as part of 37signals’ Basecamp. The framework was extracted from this project by David Heinemeier Hansson and Rails was was open sourced in 2004. We started using it six months later.
What is an Application Framework?
An application framework provides a set of rules and patterns that encourage a developer to work in a specific way. An often-used term is that Rails favours "convention over configuration". In short, this means that the framework has been designed to make it easy for developers to follow certain standards, and not waste time on making decisions about how to structure an application. This ensures that Rails applications have a common feel regardless of who wrote them.
The benefit to business stakeholders is that their application can be developed, deployed, and maintained by different developers. They will spend more time learning about how your business works and the rules you have in your application, instead of trying to understand why somebody wrote it in a specific way. They'll also spend less time making decisions about how to structure your application. Those decisions have already been made for them. To business owners this is a huge benefit in time and money. Teams change over time, and the cost of bringing a new developer up to speed can be reduced.
We can vouch for this as more than ~75% of the Ruby on Rails applications that we provide support and maintenance for were inherited from other agencies and/or freelancers.
Is Rails a mature framework?
Let’s be honest, there are many factors that come into play when choosing a framework for a new project and maturity is not necessarily the most exciting. The web is constantly evolving and developers can be driven by the challenge of what is on the horizon - learning the frameworks that have been designed to meet the changing web, or even creating new frameworks to push the web where we want it to go. Maturity sounds static when considering how quickly things change.
The changes that have been introduced over the last 12 years have been fairly seamless and there hasn't been a strong feeling of features being shoehorned in. This is no mean feat, as frameworks grow and adapt to what developers need. Often painfully so. This growth of features may be seen as bloat by some, but decisions have been made that enable developers to leverage subsets of the framework where appropriate.
A good discussion on the future of Rails can be found in interview with the creator, David Heinemeier Hansson. It’s worth a read.
Who Uses Rails?
There is no shortage of companies that are using Ruby on Rails. For example Github, Airbnb, Hulu, Square, and Shopify are some of the larger, more visible companies.
Who Can I Get To Work on My Rails Project?
So, is Rails still popular and can somebody with a new project find developers that have expertise with the framework?
A quick search will (not surprisingly) show conflicting opinions, as there isn't a single, accurate way to determine this. For example, you can see here how people use different metrics:
Despite the number of newer frameworks, Ruby on Rails is still very popular and community activity is still high. It may not be the choice that it once was, when there wasn't really anything comparable, but it's maturity makes it a very strong option.
In our professional opinion, Ruby on Rails is just as relevant as it has always been and is a good choice for many projects. As with any framework, it's not suitable for everything. While there are plenty of new, promising frameworks they are still relatively immature and do not have the maturity of Rails. To us, it's as strong as ever and we're looking forward to seeing how it continues to evolve in the coming years. We’ve yet to see another framework released that has enabled us to develop scalable web applications smarter and/or faster.
Photo by Tiago Gerken