As many of you might know Rails is now twenty years old; that’s two years older than it needs to be to able to be executed by the state or sent to kill people on the other-side of the world in the US, but a year shy of ordering a Sam Adams or pack of Camels. Hypocritical gerontocracy aside, this is a huge milestone for any open-source project. The Rails team deservers to be proud. Rails’ original creator DHH deserves to be extremely proud. Ruby on Rails has changed the software development and in particular the web development industry in profound ways. This is probably a little controversial, but I’m going lay out what I feel are the three largest impacts Rails has had on the industry. Do feel free to reach out to me on LinkedIn or Twitter with your top three or just anything I might have missed.
MVC: Otherwise known as Model View Controller is a software design pattern that has as venerable a history as Bede himself, but it didn’t really hit the mainstream until Ruby on Rails. Yes, it was certainly used before and in some ecosystems, the default pattern, but look at what happened after Rails came on the scene. Java got multiple MVC frameworks modeled after Rails such as Spring, Python got Django, PHP got Laravel and CakePHP, Hell even .NET got in on the action with the amazing directly named APS.Net MVC. Say what you will about your hot pattern of the week, but MVC has stood the test of time and for my money is the go-to for “majestic monoliths” on the web. Ruby on Rails made that popular; it didn’t invent it, but it popularized it and ultimately that’s a huge impact.
Testing / TDD: This one used to be a bit spicy. To write tests or to not write tests? That’s no longer the question. Everybody writes tests or at least they lie and say they do. I know this might be a tough one for some of my younger readers, but there was a time when clients did not want to pay to write tests; instead, they accepted endless manual testing and iterating until the cow came home to find bugs that easily could have been nipped in the bug with a fourteen line regression / integration test. To be fair to the debate at the time, there was a ton of TDD (Test Driven Development) zealotry going on in the aughts that I still think overshot the mark. Worse still, TDD consultants started showing up to commit the same Law and Order SVU level crimes on testing that they had done on Agile years ago; any “consultant” that your hiring for software that isn’t either a database person or writing code should be consider “especially heinous.” In the end, testing (whether you call it TDD, BDD, or whatever) has become industry standard and you have Rails to thank for making that mainstream.
ORM: Object Relational Mappers! In other words, the magic that turns the pink goo of your code into SQL just like McDonalds turns pink goo into delicious Chicken McNuggets. Active Record (the Rails default ORM) is simply a masterpiece and the very definition of a technical abstraction making the right tradeoffs to ultimately make developers more efficient. Active Record of course was not the first ORM, but again (you see the theme here right) was one of the first to really bring ORMs mainstream. Sharpen your queries all you like DBAs (and I love you all), but ORMs are in most cases good enough and for the really heavy stuff, devs can still drop down to SQL. What’s not to love!
MVC, TDD, ORM and frankly a lot more. Ruby on Rails was a pivot point in the software industry. I personally have seen Rails’ focus on developer productivity allow bootstrapped indie startups to get off the ground on a pack of Juicy Fruit and a prayer when that otherwise would’ve been extremely unlikely. What do you think? Am I overselling the case of the significance of this twentieth birthday? Or have I picked the wrong three impacts? Is the something else? Let me know on LinkedIn. Also, if you need to automate reporting and business processes, take a look at my automation bot Alice.