Rails is Scalable
Despite the negative press, I’ll argue rails does scale.
After developers at Twitter have
spoken at length about their issues with Rails
it’s easy to get the wrong idea.
Rails is not the fastest framework in the world… but I will argue that
performance is the last thing you should worry about when you want to
In my experience, NodeJS or projects written in other frameworks start
to collapse architecturally after an alarmingly small amount of
complexity is added to them.
More important than how many requests you can serve per second, is how
your development team can maintain productivity over time.
With the strong opinions and emphasis on code quality, Rails
applications continue to remain relatively healthy and concise when
compared with their brethren.
The hard cold fact of the matter is: CPU cycles are cheap. Developer
hours are not. If your company and product are in their early stages of
development I can almost promise you that the costs of poorly structured
spaghetti code will far outweigh your hosting costs.
As our Lord and savior Uncle Bob says: the only way to go fast is to go
Rails is Opinionated
Rails is one of the most opinionated frameworks there is.
Creating opinions in a development team is labor-intensive and wasteful.
Trying to come to a consensus on the most arbitrary of decisions can be
Where should we put files relating to our data model?
Where should we put our config?
Our email code?
Decision made. Conversation over. Now let’s get back to our desks and
write some code!
Having an opinionated framework to lean back on is a breath of fresh
air. If you know rails, you can instantly be productive in a new codebase.
It’s easy to hire and onboard new developers because they are already
familiar with the
Database Management and Tooling
Database management is hard. Managing database schemas and migrations is hard.
Rails provides you with a no-nonsense way of defining your database
structures, as well as a full suite of CLI commands for migrating,
resetting, seeding, dropping and creating databases across all
Just look at how simple and clear Rails migrations are:
Rails handles databases in a ubiquitous way.
for almost every popular database, and schema management and
is handled the same way across all data stores.
Item 3 of the 12 factor app is
Rails has multi-environment support built into the framework, with sane
defaults and safety checks across
Rails also has great support for environment variables using the
dotenv library or similar.
Because the NodeJS ecosystem is so fragmented, it is common to see
libraries use entirely different configuration styles and it is
frequently frustrating to try and massage them to work nicely together.
Rails (and Ruby) Have a Deep Culture of Code Quality
Writing clean, readable code has always been in Rails’ DNA.
The language of ruby itself
was designed with clear and concise code as the primary design
Often people, especially computer engineers, focus on the machines.
They think, “By doing this, the machine will run fast. By doing this,
the machine will run more effectively. By doing this, the machine will
something something something.” They are focusing on machines. But in
fact we need to focus on humans, on how humans care about doing
programming or operating the application of the machines. We are the
masters. They are the slaves.
Matsumoto – the creator of Ruby
Rails automatically generates tests as you build code, encouraging
developers to write well-tested, clean code.
Some would argue that Ruby and Rails were the combination that pushed
TDD and BDD principles into the development lime-light.
The Rails team have put a lot of time and effort into creating simple
(but powerful) ways to manage assets in a modern way.
webpack is notoriously difficult to
Thankfully Rails has included another “batteries included” approach with
the asset pipeline.
Ruby is a Pleasure to Use
It gets out of your way, supports flexible and concise metaprogramming,
and has a fantastic standard library.
RSpec is the Gold Standard of Testing Tools
A Smorgasbord of Plugins
Almost no other framework can boast the shear number and range of
Rails is all about getting on your feet quickly and being
ultra-productive by leveraging it’s OpenSource community. Rails provides
you with the tools (and the documentation) to get up and running
Heroku embraced Rails’ “batteries included” philosophy and
revolutionized development operations almost overnight.
By providing a single-command deployment and effortless plugin system,
Heroku enabled developers for the first time to deploy and manage large,
enterprise-level infrastructure with a simple and quick GUI.
Rails was and still is their champion framework.
One of my personal favorite aspects to Rails is the automatic tooling
for generating admin and back office tools.
Perhaps the best is ActiveAdmin.
Well-supported, secure, and with smart defaults; ActiveAdmin allows
developers to scaffold complicated admin GUIs with just a few lines of
Just point the tool at your database table, list a few fields and define
the layout and POOF you have yourself a personalised data management
tool. Download one of the free themes and you’re free to move on and
develop your project instead of wasting time building tooling.
Rails is battle-hardened and industry-proven.
There is a long list of (very) successful businesses building their
product with Rails.
Twitter, AirBNB, Github, Kickstarter, DigitalOcean, Groupon,
SlideShare, Urban Dictionary, Couchsurfing, Basecamp… and many more!
Rails is secure, open source and ubiquitous.
The talent pool is deep. The framework is mature. The community is