Happy Birthday, Rails! 🎉

Fifteen years ago, in August 2009, I worked for a small network provider company. I was a junior developer, yes 15 years ago, junior devs didn’t become seniors in 3 months. We used Dolphin SmallTalk for our internal systems, and I had the task of creating a simple web application for our customers. Also in the summer, but 20 years ago in July 2004, David Heinemeier Hansson released the first version of Ruby on Rails. I watched this video, and my life has changed.

Rails was a game-changer for me. I’ve been working with PHP and Java before, but Rails was different. It was a framework that was built with developers in mind. It was a framework that was built to make developers happy. And it did. It made me happy.

Let me explain, fifteen years back, web development was a bit different. We didn’t have all these fancy tools and libraries that we have today. We didn’t have Webpacker, we didn’t have Yarn, we didn’t have Tailwind CSS. Everything was overcomplicated. With Java, you had to start by reading a 600-page book, understanding the concept of Servlets, JSP, and J2EE, and god knows what else J. PHP was everywhere, but it was a mess. Every developer started their path by writing his authentication solution. You had to write your own ORM, you had to write your own MVC framework, and you had to write almost everything from scratch.

You can say, “What about Django and ASP.NET, dude?”. Yes, they were there. But ASP.NET was a Microsoft thing, and I was a Linux guy. Without .NET Core it was impossible to run ASP.NET on Linux. And, yes, there was Mono, and as far as I remember, it was possible to run ASP.NET on Linux, but the phrase “OpenSource sponsored by Microsoft” sounded like a joke those days.

Django was a good thing to use for web dev. Compared to everything else it was a breakthrough. And I tried it, but two things made me stick with Rails. First, Django is Python. After using SmallTalk, where everything is an object, Python felt like a more multi-paradigm language, which it is. The second thing is that Django does a lot of things too complicated. I remember my impressions from the routing based on regular expressions. I am not saying that it is bad, of course not. I just needed something more straightforward.

And Rails was it. It was more straightforward because it was built on the principle of “Convention over Configuration”. It was more straightforward because it was built on the principle of “Don’t Repeat Yourself”. It was more straightforward because it was built on the principle of “You Ain’t Gonna Need It”. It was more straightforward because it was built on the principle of “Keep It Simple, Stupid”.

Rails meets its 20th birthday in good shape. Yes, like every software, it has its problems, it becomes more and less popular from time to time. It has fans and haters. But it is still here. It is still my tool to make money and to make me happy. And I am grateful for that.

Happy Birthday, Rails! 🎉