Ask HN: Is it still worth it to learn RoR?

18 points by PaulBGD_ ↗ HN
I know Go, Rust, and Node.js but I'm wondering if it's still worth it as a freelancer to learn Rails.

9 comments

[ 2.6 ms ] story [ 36.3 ms ] thread
There's still tons of work in Rails, but I think you'd be better served by becoming an expert in what you already know than knowing another language, unless you're targeting the lower end income-wise.
It's always worth to learn something new as long as it fascinates you and you enjoy working with it. Otherwise stick deepening your knowledge in the languages you are already know, as somebody else already said.
If you are indeed interested in taking a substantive look at Ruby frameworks may I suggest opening the aperture a bit. While Rails is indeed feature rich and "one of the big boys" you would be well served by looking at Sinatra as well. It's as minimalist as they come while still scaling very well. Beyond that there's also Padrino which builds upon the former very nicely and still maintains much of Sinatra's elegance. Food for thought.
I agree with this wholeheartedly. When I first started learning Rails, I found that a lot of the automagical stuff hindered my understanding of how Rails actually worked. After building a few projects in Sinatra, it was easier to see how much of the heavy lifting Rails does for you behind the scenes.
Yes! I'd argue that the same can be said for Django for those either currently using or exploring the use of the heavyweight Python web framework. Take a look at Flask and build your understanding from the ground up. Anyway, at the end of the day they all have their place and IRT the Op's question: It never hurts to gain an understanding of another language/framework. There's so many amazing projects across the entire landscape that it never hurts to have even a cursory familiarity (e.g. breadth and depth being complementary).
And for anyone going down this path with Python, I recommend taking a look at web2py after Flask.

web2py is where I finally settled after trying Django and Flask first. It's got more magic in it than Django, and yet, I found Django felt heavier and more "over-engineered". Flask, on the other hand, is very elegant, but as soon as you start patching together a few different libraries, the cognitive load of needing to understand Flask, WTForms and SQLAlchemy was too much for me.

web2py has most of the features of Django, but is written by only 1 person so the API is much more consistent than a Flask-based smorgasbord. It took me a small fraction of the time to get up to speed on the web2py documentation than it did for me to figure out the Django and Flask ecosystems :) I recommend it whole heartily!

As a freelancer, the value prop of learning Rails is that the market of projects you can take on becomes much larger—there's a lot of legacy Rails code out there that freelancers get hired to work on. I'd say its much more valuable from a business perspective than either go or rust.

As a developer, however, my opinion is very different. I've been doing Rails work for about ten years now and while in the beginning it felt great, I see it now as a big liability in terms of long-term growth of a project. "Just add a gem" is neither a good scalability nor a good growth story on a project.

In short, yes its still worth it, Rails is a mature and fully-fledged framework which is not going away anytime soon. From a business perspective there is no shortage of rails work to be had.

Anecdotally, I'm also seeing more and more traditional organisations move from "corporate world" frameworks (Java, .NET etc.) to RoR because they are seeing how fast smaller companies and startups that use RoR are able to get things done. Probably also a side effect of how much people from the startup world like to brag about how much they can "get done".

Though as a result of people seeing how fast you can get things done in rails, I've seen a lot of really poorly coded rails sites which does hinder progress. However I think that is an inevitable outcome of any good framework - if you make it easy to get the boring work done then that will have two effects:

1. it allows good developers to skip over boring or repetitive work and focus their efforts on hard problems.

2. it allows inexperienced or just plain bad developers to churn out applications which may get the job done but the code will be a mess.

So yes if you enjoy coding in RoR then I see no reason not to stick with it. However I'd suggest you pick one language/framework and stick with it. This might not be an opinion appreciated by the hacker news crowd but the reality of getting work as a freelancer is that most managers or potential clients will be more impressed if you can say "5 years experience with Ruby on Rails" rather than "5 years experience as a programmer - working with Go, Rust, Node.JS, Ruby on Rails".

Thanks for the help everyone, I'll add it to my list :)