Not too long ago, someone I know said, “At this point in time, Rails is old hat”, in reference to the fact that many developers are adopting newer technologies like Node.js.
I don’t see this as a negative, true as it might be. When Rails arrived on the scene a decade ago, it was thoroughly impressive and quite the improvement over the status quo in the PHP, Java, and even Ruby communities. At the time, despite some shortcomings, it was revolutionary.
Not surprisingly, as time went on the framework evolved, improved, and became more mature. The whole ecosystem around it grew exponentially. You can now deploy scalable Rails applications. It is the darling framework of most startups in Silicon Valley. You can leverage advanced support in editors and IDEs, run it on different platforms (e.g., on the JVM via JRuby), and find Rails developers to hire with relative ease.
As it grew to become the tool of choice of countless web developers, it managed to have a massive influence on other communities as well. It contributed to raising the bar for frameworks in other languages and as a result we have at least a bit of Rails inspired frameworks in virtually every language today. We are more productive almost regardless of the language we choose, and in many cases we have Rails to thank for it.
What Rails lost in the process is the massive competitive advantage it had in its early days over virtually everything else that was out there. [1] It hasn’t failed to grow. It hasn’t failed to innovate. It simply matured and so did the rest of the web world.
I think it’s important for developers to reinvent themselves, or at least stay up-to-date on what’s available out there. That’s how I came to discover Rails in the first place. This is true for programmers in general, and its especially true for my professional role which includes technical evangelism in a team that continually reinvents itself.
When you go talk to a new generation of programmers, you need to be able to speak their language. And today for many, in my experience, that means speaking Node.js, instead of Rails.
That’s okay. Ruby on Rails might be old news by now, but it remains a perfectly capable solution for a wide array of problems. It has become the status quo and there is nothing wrong with that.
As we look for new runtimes, languages, and frameworks that innovate further and better solve those particular use cases where Rails doesn’t shine, we might stumble upon a new and innovative solution that make today’s Rails look like J2EE or PHP did to us back in 2004. [2] Until then, it’s worth keeping an eye open while still wearing that old, comfortable, and very trusty hat that has been helping us get the job done for a decade now.
Get more stuff like this
Subscribe to my mailing list to receive similar updates about programming.
Thank you for subscribing. Please check your email to confirm your subscription.
Something went wrong.
It’s just “old hat”, not “an old hat” 🙂
http://www.phrases.org.uk/meanings/old-hat.html
I questioned whether that was the case. Good to know. 🙂
Rails succeeded because it was flat out better than the alternatives on most (all) fronts: better language -syntactically, which means DSL, no XML, better development environment (reloading, autoloading), better libraries for web dev (ActionView::Helpers, ActiveSupport’s various core ext), the list goes on…
Overall JavaScript is a pretty poor (but powerful) language that is lucky enough to be the defacto language on the platform of the 21st century. Is it really any better than everyones favorite punching bag, after PHP: Perl?
Now Node.js certainly has it’s use, but non blocking certainly is not new or exclusive to it.
So I wonder, are people using Node.js and/or JavaScript out of necessity or hype?
This is a good followup to your article: http://www.breck-mckye.com/blog/2014/12/the-state-of-javascript-in-2015
May also be good to check what Steve Yegge was saying about JS on the server some years back:
http://steve-yegge.blogspot.com/2007/06/rhino-on-rails.html
http://steve-yegge.blogspot.com/2008/06/rhinos-and-tigers.html
Ah Rhino…