Five years of ruby on rails

It is fun to be creating in the programming language that is trending. Ruby on Rails was trending among the software craftsperson community throughout the 2010s and in the late 2000s. And I say ruby on rails not ruby. Personally, I do not happen to care very much for Ruby. It looks the same as Python and even is written using similar syntax and notation. However, it just so happens that ruby on rails was built using Ruby. It provided quick way to create projects while being the talk of everyone. The most productive framework if you may. Part of the fun was that everyone was creating using it. As a result, you could find people using ruby on rails in many places and you feel a sense of community without being in one.

Among the fun experience, ruby on rails also provided various tools and features that came out of the box. This would cut down the development time extremely short and increase developer productivity. However, as the time went on and the framework stabilized, the craze died down and trend moved elsewhere. People and companies stopped using ruby on rails and moved on to JavaScript or other languages and frameworks. That is the purpose of trends, to move to the next one… not all of them moved because of trends … I know.

It makes sense that ruby on rails was the king for a while. JavaScript (among other frameworks and languages) was not where it is in 2020 and Nodejs was not even a thing. Let alone having LTS releases of Nodejs that enterprise could use and rely on.

Now, I am talking from MY experience and my day-to-day programming. Or should I say ranting about my experience with ruby on rails.

The biggest negative I found, while working on rails, is that the systems usually turn into spaghetti code. I’ve seen this happen time after time first hand. This type of environment is definitely not fun to untangle or add features to. It becomes work minus the fun. Second, rails is fairly resource intensive and for a good reason – it comes with a lot of utility out of the box. Third, making rails fast is possible but requires some rolling up of the sleeves and jumping into the framework specific adjustments. Fourth, and this one is kind of my pet peeve … having ruby on rails work differently from its intension, from convention over configuration, is a headache. Moreover, you should be familiar with enough of the framework as to not damage other parts that you may be modifying.

Don’t get me wrong, ruby on rails is still my goto for starting new projects but it is not as fun as it used to be. I want to be working on problems not debating if I should ditch ruby on rails for something else. I do wonder if it is laziness at this point or familiarity that is preventing me from jumping ruby ship. There is far less people using it and far less excitement talking to other programmers using the framework. It is harder to find like minded people. It seems that DHH from Basecamp is the only one that is still spearheading how awesome and relevant ruby on rails is. It is his investment after all.

Sure you can have any of these problems in any other language or framework. And sure, my problems listed above can be fixed by refactoring, reading the documents, staying with the convention, and just doing the work. When you start fixing the problems, it becomes additional work that someone has to do that is hard to sell to a manager. All of this to say, is that it removes the fun for me.

I’ve been thinking this for some time now and wanted to put it in words and archive it. Perhaps if I was still being paid to work with ruby or on ruby on rails, I would have a different opinion. I’ll continue to take on ruby on rails projects but I am on the lookout for new frameworks and languages … at least for personal projects and quick prototypes. I want to explore python and I would like to give Go a go ;-)

Speaking of python, django seems be a good contender and to fit the need of ruby on rails. My current plan is to slowly learn python and django if there is time. Anndddd… nodejs and javascript are good too and are widely used. I’ll see how my new projets go =)

There… out of my head. Heh.

· ruby on rails, software engineering, misc, random