Hacker News new | ask | show | jobs
by tartoran 2053 days ago
Ruby is an appealing language for sure , but is it worth learning it in 2020, with the intention of getting paid for one’s work? It is an honest question and in no way am i trashing the language. Just curious what others have to say about it
10 comments

Yep, absolutely. Python has taken off in a major way for data science / machine learning work, but Ruby is still a fantastic option for web apps and for general purpose programming, with a great community. You can be productive in it very very quickly.

I may be biased, but I find Rails and Ruby conventions still more intuitive and less surprising than Django, especially when onboarding new people.

Thanks for the insight. I’ll start looking into it more.
Keep in mind opportunity cost. In the average city across the world, I'd say that the order in which you get a job as a developer is:

1. Javascript.

2. Java.

3. Python.

4. C#.

5. C/C++.

I'm also weighing each of the against the difficulty of learning the language and the ecosystem.

Ruby could be nice but I doubt it breaks top 10 anymore. Your mileage may vary.

I think if you ask ten developers, you'll get ten different rankings like this, with minor overlap :)

It's going to be really really really dependent on your field of work, your career experience and network.

I'm not even going to attempt to offer a top five list, because I'm sure it will be wrong :D

FWIW, I would not base your decision on what language to learn only (or even mainly) based on "what's the most common language in use".

There's more than enough work in the world in all common languages, unless you're talking about really obscure research langs.

There's also value in getting expertise in something more niche - because fewer people know it, you can make a bigger impact and have less competition. It's also a powerful status signal - if you tell me you enjoy working in "Python and Haskell" or "Ruby and Erlang", versus "C# and Java" I'll have a very different impression of you (as unfair as that may be).

In summary, I'd say, try out a few languages, and learn the ones that you enjoy the most and feel most productive in. You'll spend most of your waking hours thinking in it, you might as well pick something that is fun for you to express yourself in, rather than a language that you have to fight.

If you’re planning on creating something that you can build a business around, yes. If you’re learning from scratch and want a business as quickly as possible, Rails is your best bet. If you want a job working at companies where they use Ruby, also yes.

Just search HN for the current year and you’ll find threads like “what framework should I use for <current year>“ and the common denominator over the past 10 years is Rails (or the language/framework you know better than Rails).

There are absolutely Ruby jobs out there that will pay your bills, and it's absolutely a successful ecosystem with which you can build effective modern products.

That said, in 2020 if you're picking a language, I don't think it has the most jobs available (probably JS), or the best paid jobs available (something ML, maybe Python), or the most interesting jobs available (up to you). For similar reasons, I'm not sure it's the best language to pick for a new product - it doesn't have the largest community or most momentum nowadays, it's neither the forefront of powerful tech nor the backbone of rock-solid boring tech.

If you already know Ruby, or you just want to learn it anyway, it's definitely not a bad choice. If you're choosing afresh though with no specific reason to pick Ruby, it's probably not the right choice.

Thank You!.

So Ruby Rails is bottom of the list.

Thanks for the heads up. I’ll look into it more
I'm not writing it right now, but have never had trouble find really high quality work (in NYC and elsewhere). The community is active and generally very friendly/positive.

The ecosystem is obviously rails-heavy, and you have to like that, but the skills translate to python jobs well too, and rails has done a good job both keeping up with modern trends and staying modular.

And, the language is faster than ever with 3.0.

Great. Im based in NYC but have been doing .NET for a while now and am rather turned off by it, the types of solution I’ve been working on are too damn complicated for no aparent reason
> with the intention of getting paid

In one way or another, Ruby has been helping me pay my bills since 2008. I've used other languages, worked in various industries, embedded, robotics, healthcare, from freelance to full-time, etc... Ruby, SQL, and bash have been the only constants for me.

Just today, in fact, I had a phone screen for a (non-Rails) Ruby position and I'm not even really looking.

I'm currently hunting Ruby roles in Europe (that will sponsor a visa to move continents) and it seems like recruiters do not have a lot of roles open for Ruby. They want to know about the Java that I did 10 years ago, or whether I have Kafka, Python and machine learning, or maybe some JS.

Maybe this has something to do with the few Ruby giants not taking CVs from recruiters, but those giants aren't calling me back either. :shrug, maybe it's just me.

Broad generalisations incoming:

I don't see a lot of new and exciting things being done in Ruby, and I don't think it's a popular choice for highly technical companies any more; even if you find one company doing cool stuff with it, do you want to be looking for a job in 5 years' time having spent 5 years in Ruby?

Rails is still the fastest way to bang out a CRUD webapp, and there's a lot of companies who use those webapps for critical parts of their business - but those also tend to be companies that are not primarily technical, for whom this is more of a cost center than a profit center (and who may well have outsourced the original creation of the app and then barely maintained it). So while you could probably make a career as "the tech guy" at that kind of company, it's likely to be an unrewarding position with limited opportunity for growth. (On the other hand, it might be a stable position, particularly with a big company in a lucrative industry like finance). Consulting for companies like that has more potential, but only if you're good at negotiation, as you'll likely face a lot of clients who want to nickel-and-dime you.

Well there's all the companies that were built around 2006-2015 with Ruby, when Rails was hot stuff. Many of them can't afford migrating to a new stack, or want to. But generally I kinda agree - more is being created with other stack nowadays. A byproduct of that is way more people learn Python / Java as a first language, so you also perhaps need to think if being a Python guy gives you any edge when you turn 45-50 as hordes of young people learn it as we speak. Outsourcing a Python project is gonna be way easier 10 years from now than doing the same with Ruby. I don't have clear answers btw, there's just pros and cons.
> Well there's all the companies that were built around 2006-2015 with Ruby, when Rails was hot stuff. Many of them can't afford migrating to a new stack, or want to.

Right, so either you're working for a struggling company, or you're working on the old stack while things are gradually being migrated and most new stuff is being done in a different stack. Maybe you'd find a company that is sticking with Ruby because they like it, but that's pretty rare, and probably means that company hasn't scaled past a certain point.

> A byproduct of that is way more people learn Python / Java as a first language, so you also perhaps need to think if being a Python guy gives you any edge when you turn 45-50 as hordes of young people learn it as we speak. Outsourcing a Python project is gonna be way easier 10 years from now than doing the same with Ruby.

Well if it's hard to replace you in your current position then that cuts both ways. So you might be able to find a comfortable position, but there won't be much opportunity for growth.

> Right, so either you're working for a struggling company, or you're working on the old stack while things are gradually being migrated and most new stuff is being done in a different stack

Well, currently I'm working for neither. Just a Ruby company that's doing well. I'm sure there's more of them. It's not as if the idea of a rewrite was never thrown, but honestly why would they? It would take years, all the while your old dev team needs to pick up a new language and your new hires need to pick up both Ruby and the rewrite language. If the whole architecture was service oriented that may be not too bad but many Ruby companies are running a few big monoliths. Besides, this whole idea of lack of Ruby jobs seems weird to me especially if you're from North America. Mainland Europe is a different beast though.

Well, if a company is successfully running a Ruby monolith without hitting the scaling problems that would make it start cutting out services to implement in other languages then that suggests the company either hasn't grown past a certain point, or isn't doing anything particularly heavy technically.
That's a controversial topic though. Keep in mind that companies like Github and Shopify showed us it's damn well possible to scale massively with a monolith. But I take your point as being correct, there are quite a few Ruby companies who didn't reach Shopify/Stripe scale (is that a problem though? and if so - why?)
Shopify (along with its millions of shops) is probably the biggest user of Rails (with Ruby) in production. Aside from them, not sure who uses Ruby at that scale.
https://stackshare.io/rails is a reasonable source to see what company uses Rails; notable entries are Github, AirBnB, Twitch, etc. Mind you it doesn't really say what / how much of those things are made with Rails. Github definitely uses it a lot though: https://github.blog/2019-09-09-running-github-on-rails-6-0/
Stripe, GitHub, GitLab, Hey, ...
Pay is excellent. 120k is east anywhere in the country. 150-170k is harder to find, but not uncommon.

Ruby itself is great but it’s everything around it that makes it so productive.