Other recent blogs
This blog was initially published on www.tivix.com(a subsidiary of Kellton). As a result of a merger of Kellton and Tivix all the content hosted at tivix.com has been merged with www.kellton.com. Happy Reading!
Frameworks come, frameworks go.
There’s nothing unusual or particularly damning about that. Frameworks start out as a way to address the programming challenges people face at that particular time. Sometimes they expand as technology advances. Sometimes, they’re limited by the constraints of the time they were created in and start to fall out of use.
So, where does Ruby On Rails sit on this particular timeline? And is it still used in API and backend web development? The superstar server-side framework of the noughties has lost some big names (more on that below…), so naturally, would-be visionaries, analysts and bloggers with a name to make have rushed in for the kill.
But...people make these ‘x type of software/framework/platform is dead’ all the time. Sometimes they’re right; sometimes someone’s jumped the gun in the bid for a prediction that will give them industry kudos further down the line.
More to the point, Rails is still here.
So, is Ruby On Rails really dead, or is this just another false alarm?
Let’s take a look at the evidence...
Ruby on Rails - a brief history
Consider this the ‘background info’ sheet in your case file, internet detectives.
What you need to know: Ruby On Rails was the poster child of Web 2.0 development. One of its original highlights, back in the day, was that you could use it to set up a blog in less than 15 minutes. It seems trivial now - but in the history of backend web development, this was absolutely revolutionary.
Using web standards like JSON and XML for data transfer and HTML/CSS for user interfacing, it gained popularity because of its then innovative scaffolding of views for web app developments and easy database table creations and migrations.
These things stuck, and, regardless of whether it’s alive, dead or anything in between, Rails has had a serious influence on how the internet looks today. You’ll see elements of Rails reflected in several of today’s more ‘modern’ frameworks, including Salis.js in Node.js and Catalyst in Perl.
So in that sense, we come to our first point. Ruby On Rails lives on through the influence it has had on our lives - both as developers and as consumers of internet-based media - over the past ten years.
Is that answer a cop-out? That’s up to you to decide...but let’s take a closer look at how the framework itself is doing.
Big names have moved away from Ruby On Rails...but it retains an impressive number of era-defining apps
Evidence point one: Ruby On Rails has taken some hits when it comes to notable companies moving off the framework.
It started with Twitter, who started migrating from Rails to Scala back in 2008. Yes, that was nearly 12 years ago now, but there are still more ‘why did Twitter move away from Rails’ threads on Quora than you can shake a stick at.
This somewhat unfairly overshadows the fact that, in 2019, plenty of the internet’s biggest names still rely on Rails for a good part of their stack. Basecamp, GitHub, Shopify, Airbnb, Hulu and Zendesk all retain elements of Ruby On Rails, as does streaming behemoth Netflix. One of the most popular - arguably era-defining - ways of accessing media still uses Rails and does so very successfully - and that’s not to be sniffed at.
Big names are still investing in Rails
A Rails developer in the US can expect an average annual salary of $123,792 For reference, Django/Python developers can expect $120,141 a year, Java developers $104,680, and PHP developers $88,726.
The ‘Rails kids’ of the noughties are not only sticking with the framework that made their name but are also happy to pay big bucks for the talent to keep it going. This should be a sure sign that, for the time being, Ruby On Rails isn’t going anywhere.
Why do big names still use Ruby On Rails?
Ruby On Rails has a mature, experienced community of developers attached to it and an expansive library. A Rails developer that was there at the start will have about 15 years experience in using it by now; a less experienced one has access to extensive resources and support from which to learn.
Ruby On Rails is super quick to develop with - according to some estimates, teams using Rails can build apps around 40% quicker than teams using other stacks. Coupled with how easy it is to implement complex business logic in Rails and build APIs, that makes it an attractive proposition indeed.
And, on a more general note, the larger an organization is, the more difficult, expensive and risky any sort of change becomes. Sure, there might be performance gains to be had by switching to something more modern - but these need to be weighed up against the cost of change.
Essentially, large companies can be reluctant to rejig their stack unless they really need to. Rails currently provides adequate functionality and performance for most web apps - so why change? It’s not a glamorous or exciting reason for sticking with the framework, but it’s a sound one nonetheless.
Startups might be getting more reluctant to use Rails
With such a host of big names still using Ruby On Rails, it’s hard to argue that it has no place in the present...
but does it have a place in the future? It might not be dead, but is it dying?
One way of determining that is to look at whether startups are using it, and whether it will have a place in the next generation of big-name platforms.
Bluntly, this is where things start to look a little uncertain for Ruby On Rails. According to GitHub’s annual State Of The Octoverse report, Ruby - the programming language on which Rails is based - just about makes the top ten languages by popularity, but having started at number five in 2014 and tanked to number 10 in 2019, it’s very much on a downward trend.
Given GitHub’s popularity with startups as a code repository, this gives a solid indication that Ruby-based development isn’t as popular with startups as it once was.
Another way of measuring how well used a framework is is looking at job postings. In December 2019, Indeed listed:
- 2,478 open positions for ‘Ruby On Rails developers
- 9,067 open positions for Node.js Developers
Whilst there’s clearly still demand for Rails developers, could this be indicative of a shift in preference? Is the sun slowly setting on Ruby’s reign, whilst alternative web development methods are on the ascent? Obviously, we can’t make these kinds of calls exclusively using data from Indeed, but taken in conjunction with other sources, it certainly makes for interesting reading.
Why would startups be reluctant to develop using Ruby On Rails?
In some ways, the speed of development Rails offers would be perfect for startups working to tight deadlines. It all depends on what they need it for.
Perhaps a big stumbling block for ambitious startups is the fact it’s difficult to scale. So whilst Rails might get your product to market very quickly, you may have to put in a fair amount of effort growing it once it’s out there.
Scaling Ruby On Rails is by no means impossible - Netflix, GitHub and all those other A-list names we mentioned above have managed it successfully - but it is expensive and time-consuming. Add that to the cost of Rails developers we discussed above, and Rails becomes an expensive option for smaller companies and startups.
Another issue is that Rails lacks the capacity to deal with newer technologies like blockchain, automation, and machine learning, and its general inflexibility - Rails offers a massive library of ‘gems’, but railroads (hah) you into using in specific ways. This is one thing for established development teams who have grown up doing things ‘the Rails way’, but quite another for a startup that wants the flexibility to break the mould, do things their own way and adapt to the technologies of tomorrow.
A mature and extensive library...but is it moving forward?
This brings us to the crux of the issue.
Ruby On Rails is an open-source framework that has been around for a while.
The advantages? You’re not going to be annoyed when you realize that there isn’t the right component on hand to create something. This happens all too often in younger frameworks, which seem like a fantastic time-saving tool until you end up coding what you need from scratch when you can’t find a ready-made component to do the job for you.
There are ‘gems’ (what Rails calls its components) for nearly anything you’d need to code a standard web app today. This is why using Rails is still one of the fastest ways of building your app.
Is pace of development stagnating?
But (and this is a big, important ‘but’) this big, extensive library seems to be stagnating slightly. It’s still early days to be calling anything for definite, but this data, collected by the folks at Infinium, indicates a decline in the number of new Rubygems created year on year.
There could be two main reasons for this:
- Developers are still interested in Rails, but there doesn’t need to be as much activity as most of the functionality developers need is already there
- The developer community is less active than it once was because there’s less demand, or because they’ve moved onto other frameworks
Either way, if the trend continues, Rails risks becoming a legacy technology. It may be able to keep things ticking over, but for how long? Even the largest, most un-nimble of companies update their legacy technology eventually, and if Gem creation doesn’t pick up, there may come a point where the big Rails stalwarts are forced to make the leap due to lack of relevant functionality.
Dying, or dominating a niche?
An interesting thing to note about Infinium’s data is that whilst Gem creation has fallen, downloads have increased. So, even if a segment of the active Rails community has moved onto the Next Big Thing, there’s still significant demand there.
It’s possible that, now that Ruby On Rails has matured as a framework, it’s simply finding its niche. Rather than using it as a main tool for app-building, developers can use it as one tool in their stack and play to its strengths.
In Rails’s case, these are its speed of development and its easy business logic implementation. It works really well as a ‘glue’ that holds the backend and the frontend together - perhaps for the foreseeable future, that’s where the future of Ruby On Rails lies.
Rails might no longer be the exciting new framework du jour, but there’s use left in it yet.
Is it still relevant today? Absolutely. If it’s a match for your project, you need to create something quickly and you have the resources to scale it, Rails is a solid option. You just have to think about how best to use it, and what trade-offs you’re happy to make - just like any other framework.
Will you still be using it in 2030, or 2035? That looks a lot more doubtful. You may think twice about building exclusively on Rails if you’re a startup that wants easy scalability and a framework that’s ready for the technologies of tomorrow.
In this sense, Rails currently exists on a bit of an uncertain path. It’s fine for now - but will it last? The feeling you get is that it might - but potentially as part of a wider stack, with an emphasis exclusively on fast API development.