Why I Still Love Rails (and you should too)

Bevin Hernandez
4 min readOct 11, 2018

In 2001, I worked in a world where there were front-end developers (like me at the time) who worked in HTML and JavaScript, back-end developers, and sys admins. In order to make an application, you needed all 3, and you needed a lot of time. The back-end developers were frequently called “Software Engineers”, developed things in Java and wrote stored procedures in the databases. The sys admins were responsible for maintaining the environments that we worked in and pushing builds to each server.

Coordination was difficult, and if you needed data from the back end in a different way, you’d have to have a meeting, and explain a feature, and then wait for someone to develop it and push it out to the server. At night, there would be a fresh new build run on the server, and you’d get to see the results of everyone’s work the next morning. But the key was, you had to wait. No matter who you were, you were waiting for someone else.

I left programming for a number of years, and then returned when I found my passion wasn’t for managing people, it was actually about the act of creation. When I returned, I picked up Rails and it seemed like magic to me. Things happened. I could be the sys admin and the front-end person and the software-engineer all rolled into one. And still better yet — I could write code and make something happen and I didn’t need anyone else. It doesn’t mean that I wouldn’t get feedback or that more developers wouldn’t equal more output…but I wasn’t blocked by the need to have someone put up a server or write back-end code for me.

It took me a few years to learn Rails properly, but I was able to get my first apps up and running in the first year. They weren’t great apps and man did I write some ugly code, but I could do it. All by myself. I could flex my programming muscles, which had gone dormant for a bit, and create.

Then the JavaScript framework craze hit, and I joined in. I learned Angular, then React, then finally Vue. In order to get them going, I had to learn Express and Node. And then Mongo (which really broke my brain for a bit).

And I found that though I think all of those frameworks and new technologies are great (I’m particularly partial to Vue at the moment), it started to feel like 2001 again. I had to think every time I used them, which one would I choose, where would I put it, would I use Mongo or something like Firebase…and the frameworks changed so much so fast (Angular, I’m looking at you here) I’d barely learn something before it was no longer supported.

It doesn’t mean that I hate JavaScript. Heavens no. I use Vue on the front end where it makes sense, I have apps in Angular and React, and still write a lot of vanilla JavaScript code where it makes sense to do so — but on the whole, it has been a frustrating experience. Even for someone with a lot of years writing code, the learning curve was just hard. And often times I’d google something and since the frameworks were so new, no one else had encountered the same issue. Or if they had, it would be for a different framework (I often found that for Angular 5 issues, searching for the same thing but adding “React” helped me figure it out, but that took awhile).

The JavaScript community also doesn’t seem as friendly. Programmers (I include myself here) often wear difficulty in a framework and flexibility like some kind of crazy badge, like that makes us more skilled, but truly our measure of whether we’re any good or not depends upon our utility to the world. The Rails community and the Ruby community in general seemed welcoming to people like me, people returning to code after a hiatus and even welcoming for people who hadn’t the foggiest about programming. What was baked into the Rails philosophy seemed to be baked into the people who were in the community.

So, for my latest projects, I have returned to my committment to Rails. Call me old-fashioned, but the lack of thought necessary to implement the framework itself made it simpler for me to innovate on features. I crack my knuckles, go to work, and recognize that I’m able to invent, create, and deploy all by myself. It’s easy to evaluate gems and integrate them into my work, without worrying that they’ll be obsolete next week when the latest version of the framework shows up. It feels mature and stable.

David Heinemeier Hansson may be opinionated and not everyone’s cup of tea, but he baked into Rails some philosophies about work and code that make it so accessible. It may be that I’m just getting older, and appreciating the intangibles like documentation and community better than I did when I was a young developer. Either way, Rails is still worth a look for your next project. Despite what you may have heard, it’s plenty performant, and after all, the goal of writing software for most of us is to make something a group of people actually really need.

--

--