Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Will Ruby Get a Comeback?
61 points by going_to_800 85 days ago | hide | past | favorite | 98 comments
I know that many of you will say Ruby is doing fine, etc... let me say that regarding jobs and adoption is not that great, especially compared to Python and a few others, without even looking at usage stats.

However, I see some attractive features in Ruby 3, do you think that's enough to get a comeback?

My main concern is jobs availability, as an employer I find it harder and harder to find good RoR developers and they become super expensive. As a startup you're start to think if you made a big mistake choosing Ruby , even if it's easier to build something, being so hard to find affordable developers offsets every advantage you had.

I don't think Ruby 3 will change anything with that. I am one of those who never jumped the boat and still doing their daily coding with ruby, rails & co.

The ecosystem changed a lot, as it always did. Many youngsters learn that single language works everywhere, learn that server and frontend may share their code. If they end up using Rails they likely spend more time in their react files than anywhere else.

The reason why I don't find nice RoR jobs anymore is because most of them are looking for a react/Vue developer with rails skills and not the other way around.

Also I am not sure why you think there should be cheaper Devs. Cheap Devs means unskilled labor, which means a less optimal code base. The situations I built RoR apps for always had a high testing, optimization, quality standard and liquid development process, essentially using all the strengths rails has to offer. why they choose rails in the first place.

As somebody who jumped ship, I sort of regret it. I tough I could share more code between the backend and the frontend with JavaScript but that sort of died early on when frameworks like Meteor where declared “the wrong way” of doing things. Hell, in the frontend department SPAs where the big thing for a long time and now with frameworks like Next.js we are going back to server side rendering and static pages. We had that with our Rails apps 8 years ago.

I honestly think that a good and modern Ruby team would have somebody like you, somebody like me and two people that want to switch to Ruby because they like the language better.

When it comes to the react/vue dev with some rails skills. Yes I get you, but a lot of those jobs are for people like me. I’ve been doing Ruby (and Rails) about 5 to 6 years of the last 10 years and JavaScript every step of the way for 13 years now (frontend and backend). I fit the full stack role but I honestly don’t believe that you need more than one of us in a Rails team. I would rather split the rest up between ruby/rails devs and javascript/react/vue devs.

I hear you. The best team I've been in was a rails core dev, me and a trainee with a good portion of modern frontend skills. We build amazing (boring) software, I am sure most of it still in use even thought they don't do rails anymore when our team split away.

I think that is also the general idea. You only need one or two expensive rails guys and some other people who don't find MVC weird, willing to learn, to setup a proper efficient team for any project.

I am in the same boat, but jumping back. Folks at the non ruby company all had fond memories of rails apps and missed the simplicity. The tangled mess of TypeScript was a disaster codebase with massive tech debt.

One of the biggest issues ruby faces is performance. The productivity of the language is undeniable. That is a big reason start-ups so often choose ruby. Eventually Salesforce or Microsoft acquires these ruby start-ups though that the apps run up against enterprise managers who have traditional baroque "cost optimization" incentives. Very few people, especially managers, are comfortable making the argument that paying for more machines is better than paying for more cheaper devs so you see these successful apps rewritten in java, C#, etc. Someone shows execs a chart with costs per user plummeting (usually with a deceptive Y axis), everyone pats each other on the back, and then they lament not being able to find ruby devs when they acquire the next company. I'm hopeful that ruby can close the perf gap enough to slow/stop this weird cycle.

Ruby's performance as a function of infrastructure cost was largely fixed back with Ruby 2.2. Today it's even faster and uses less memory.

The performance problems were 99% invalid database usage, poor or overly aggressive pre-emptive indexing, or bad active record usage.

Developers lacked education in basic database design, and given rails made it do easy, yes that resulted in a lot of slow code and overloaded RDS instances.

But it was entirely possible to build highly scaling rails apps back in 2012. When I ran Wanelo's engineering team we squeezed 300K+ rpm's on a relatively small cloud foot print. It has since been migrated to Heroku.

> One of the biggest issues ruby faces is performance

You can follow along Shopify's progress with the JIT https://speed.yjit.org/. Seems promising.

You are saying this as if C# is not a ridiculous productive language.

Ruby and Rails Engineer here, for a decade now.

I had the fortune to be part of new startups that chose RoR for all the good reasons, but also because at the time it was trendy.

Nowadays I keep finding RoR jobs but I see more and more legacy applications that need to be maintained in order to move to a new technology.

I've had some discussions with founders and they always mention the same problem: there are not a lot of Ruby developers or they are expensive. So they choose to go with another technology, aka Javascript.

I like the language but I like others more, but Ruby brings bread to my table and I'm sure it will keep providing as long as Ruby engineers become founders or companies keep mantaining legacy projects built with the tecnology.

"Nowadays I keep finding RoR jobs but I see more and more legacy applications that need to be maintained in order to move to a new technology."

This is exactly the situation with a number of long-standing, formerly popular languages. ColdFusion and PHP jump to mind. They're fine languages and people love them, but if no one's paying, why bother sticking to them? Loving a programming language doesn't pay the bills.

"I'm sure it will keep providing as long as Ruby engineers become founders or companies keep maintaining legacy projects built with the technology."

My previous employer was maintaining over 30 acquired company's worth of legacy code bases. They replaced common functionality via new microservices and would sometimes replace an entire product via a new acquisition. It's sometimes a better ROI to replace instead of maintaining or building.

> This is exactly the situation with a number of long-standing, formerly popular languages.

This is also not new. I've replaced a number of "legacy" apps because, basically, it was too hard to find devs for the current language. This was happening with perl in the early 2000s, PHP in the 2010s, Ruby now. Java has gone through surges and waning of support over the years. When I was a fresh devs, the old timers told me about this thing called serverside javascript.

This kind of thing is inevitable. It is something that businesses just need to plan for, because it can happen with established languages (PHP) just as easily as it can for trendy ones. And you can't predict future generation's attitudes towards tech.

> Will Ruby Get a Comeback?

Probably not anytime soon, depending on your definition of "comeback", though ruby is still chugging along just fine IMO. There are more IPO'd ruby-based companies out there now than there ever have been before. (edit: and many non-ipo successful exits where ruby usage is maintained)

> However, I see some attractive features in Ruby 3, do you think that's enough to get a comeback?

No, just a few nice additions to the language won't create any pop in popularity in any language.

> My main concern is jobs availability, as an employer I find it harder and harder to find good RoR developers and they become super expensive.

This is just a problem with tech jobs in general. I've had the same problem hiring JS devs, and they're the most plentiful. I also had the same problem 10 years ago staffing up RoR teams. Its not a new problem. It largely just depends on your definition of "good".

> Will Ruby make a comeback?

I don't know, but I certainly hope so. I started building web apps in Rails in 2007 and rode the wave till 2020, when I joined a company that ran on TypeScript, Go, and Haskell. I've since left said company.

There are several things that Rails got exceptionally "right":

- code generation that included test templates

- active record was much simpler than Hibernate

- a super dense and all powerful meta-programming enabled language behind the scenes (ruby is arguably the most compact and human readable language out there).

- rubygems was always robust, but is now mostly complete packaging platform.

But most importantly IMHO people back in 2007 started launching super hot looking Ajaxy apps on Rails, that turned up the heat and drew attention to Rails. There was a new coolness about how Basecamp worked, and early Twitter. It was all self updating and magical. And that's how the web app development should be.

Today, nodejs is no match in productivity or testing practices, TypeScript is a huge mess, and the cost is going to surface in the coming years as todays apps shift into maintenance and less development.

Once we have enough apps in maintenance mode in all four: ruby, Django, Go, and Larvel we'll see who wins the long term game.

Devs always want to work on the new shiny tech whether or not it's the best choice. This is because few do the exercise of identifying what they are optimizing for: dev speed, app reliability, or massive scale.

I am actually going back to the Rails/Ruby ecosystem, and will report here when I find a good spot.

How can we make Ruby come back? By introducing it into the stacks of companies as CLI tools, or mini services. I maintain ruby rules for Bazel build system, for instance, and my hope is that it will help support Ruby as a first class citizen within corp monorepos.

I have been working in RoR for a long time and, yes, it is being surpassed by other languages/frameworks, particularly python and, obviously, javascript.

However, I think we are turning the corner on javascript-everywhere movement and that html-driven development is poised to make a big comeback:


With the adoption of html-driven tools like hotwire, unpoly or my own project, htmx, the choice of back-end becomes more open ended because any language can produce server side HTML, and usually pretty well.

My hope is that, with this development, platforms like RoR, php and even haskell[1] will gain new life in web development.

[1] - https://thisweek.htmx.org/issue/3/

great news. as a c++ developer i have long considered building sites server side in c++ so i do not have to learn anything else.

As a Pascal developer I have built all my sites in Pascal

Seriously. It is perfect. It gives you C++ like speed, memory safe strings, and near instant compilation

I don't see any advantage over pascal vs C++. I already know C/C++, so I'll stick to that. But great to hear that you are also using a compiled language that is not typically used for web development.

I was a Servlet and JSP developer. I really miss it. I liked it. I was good at it.

And you were really... alive?

I did it for me.

Python and Typescript/Node are taking over Ruby's domain, and it's unlikely the trend will ever reverse.

The htmldriven website is really weird. The "tool" section is entirely composed of thing to emulate a Javascript-heavy frontend. I would expect to see server-side rendered HTML frameworks.

Anecdotal, but in my industry (sports front office), we’ve seen a heavy shift from Rails to Python over the last few years. I don’t think it’s much to do with perceived shortcomings with Ruby/Rails, but rather alignment with what the analytics side of operations uses. Front office R&D groups (typically comprised of systems and analytics) are relatively small, and there’s a fair amount of collaboration between devs and analysts. The Ruby ecosystem doesn’t offer the data science tooling that Python does, so it has been easier for devs to align with analysts (by using Django, Flask, etc) than the other way around.

May I ask you what are the tools and/or features that Python offers and Ruby does not? It'd be interesting to invest resources on it, given that Python is not very different from Ruby

Python has numpy and native bindings to Fortran. People often think of Fortran as archaic, but its math libraries are quite fast. With Python bindings, you don't need to write any Fortran in order to have access to those libraries.

Mind you, this is useless for web dev and a lot of other things, but that's still what has tipped the scales for many people.

As wgj says, it's mainly that Python easily interfaces with other languages without having to copy data. This means that we can use a vast amount of highly efficient mathematical libraries written in C, C++ and Fortran.

NumPy and SciPy are the main workhorses of numerical programming with Python, and provide bindings to extremely efficient libraries (mainly a BLAS and LAPACK implementation), that utilizes SIMD parallelism, adaptive thread parallelism based on workload and cache optimal algorithms to minimise communication between the CPU and RAM.

this gives Python multidimensional arrays that have the flexibility of Python types and speed we can only dream of obtaining if we wrote the low-level code ourselves.

I am amazed at how quickly Ruby came and went. I started working with Ruby around 2004, made a decent career with it for a long time but bailed out at the very end of 2015 after the roles really weren't all that, rates weren't going up and it was pretty clear that things were no longer growing. Basically, the previous two roles at this point were very much about coding to an existing monolith that was being broken up and replaced with Java microservices.

> I am amazed at how quickly Ruby came and went

It's still here. You decided to switch stacks which is fine, I haven't and I'm doing fine as well. I'm not expecting Ruby jobs to die out in the coming 20 years. There's less of them than there used to be 5 years ago but there are also less developers per job. But yes, Ruby isn't the #1 choice for startups tech anymore. I'm not so sure Node will still be the top choice 5-10 years from now. Or Go. The hype cycle will go on and on. It's only Java that I feel really confident in saying it won't loss any market share, and maybe C.

Java caught up. I wonder if with green threads it will catch Go momentum.

I read this thread and can't believe it. I'm a RoR Dev in a medium sized software house, we are hiring, everyone on the market is hiring, and bunch of new Ruby people are joining the scene each month (either via internships or moving from PHP or something)

From my perspective Ruby + Rails is really booming. Most of our clients (startups) want to use RoR due to it's development speed.

Also salaries are higher than ever.

I’m a Ruby (and Rails) developer and currently write node.js code. A friend of mine that I worked with that is also a Ruby (and Rails) developer is currently working as a Python developer. I am more than willing to switch back and so is my friend. Ruby (and Rails) was fun to us and that is lacking in our current jobs.

I personally am stunned when I compare the developments in Rails to the developments I see in the node.js community. I loved ActiveJobs and am missing something along that line in node.js and that is not the only example. Since I am a full stack guy I’m also looking forward to what is coming in Rails 7 (making JavaScript simple(r) again) and I’m hopping that Rails will find a way to leverage Ractors in while Ruby continues working on its JIT.

People like us would like to go back to developing in Ruby (and Rails) but we do come with something along the line of 10 years experience in the Industry so no, we are not going to be the cheapest devs out there. And in my case you are going to have about 5 years of Ruby experience and a Year since the last time where I touched Ruby on the Job.

If you can go for multiple Ruby devs I would go with one senior dev that was able to stick around Ruby during the last few years, one returner like me or my friend that has gathered experience outside of Ruby and fill the rest with devs that have one or two years experience any other language that WANT to do Ruby. Nice combination of experience, perspective with the first two (even tough they are going to be more expensive) and some eagerness and enthusiasm for Ruby on a good price point.

Let me be honest. The last years have not been good to the Ruby (and Rails) community. A lot of us left because of golang, node.js, rust, elixir or whatever and so did companies. Ruby had problems and some still exist, especially when it comes to scalability. Problems that most companies will never have but that still hurt us. But the damage has been done. But what we have now is, I think, a good situation for a type of rebirth. A lot of us “switchers” are more then willing to come back but there also needs to be a willingness to not just hire us but also hire more junior devs that want to switch to Ruby and let your senior devs show them the ropes. If enough companies do that I think the Ruby (and Rails) job marked will be back in order in a year or two.

I think the main problem for Ruby isn't Node.js, go, Rust, etc. None of those ecosystems have anything comparable to Rails. The problem is Laravel (PHP) and Django (Python) which both offer a comparable (if not better in many ways) experience to Rails with access to much bigger ecosystems.

I sort of see where you are coming from but as somebody that used PHP in the past and has left I can’t really get myself to look there.

Now when it comes to Python and Django I’m not so sure. I’ve read a couple of articles where some of the Django users where annoyed that in their opinion there isn’t enough development/new stuff in the Django.

Personally I think the biggest problem is that none of the MVC frameworks in other languages are all that bad and Rails has the problem that it is not better enough for you to have an incentive to learn the language JUST for Rails anymore.

I personally currently see the type of progress I want to see in a backend framework in Rails and in Phoenix (elixir) and I don’t think the changes that are coming are big enough to entice people away from another language just for the framework.

But for me learning Ruby was unexpectedly fun. I come from a Python background, but back then there weren't any Python or Django jobs where I lived at so I did PHP instead. I also learned quickly that JavaScript would be huge so I deep dived into that. When I got fed up with PHP (T_PAAMAYIM_NEKUDOTAYIM) I did find a job with Ruby on Rails and Ruby clicked hard, in a way it never had before.

So yea, I don’t think we will win anything based on the Rails framework, but Ruby is fun and the community is a bit weird and that is majorly attractive, especially after you’ve been working as programmer for a couple of years and it becomes important again to Squeeze all the fun out of the job you can.

re: Django, it continues to chug along but is at this point a very mature ecosystem. There are larger things in the works (like the async support effort), but they tend to be gradually rolled out.

It's not going to score points for being flashy, but is a healthy tech and community. Hard to beat as a safe default if you don't already have strong preferences and are working in Python!

Plenty of jobs to be had, too.

I haven’t seen Rails devs and projects moving to php or python. They’re moving to javascript/typescript/node, go, and rust mainly, for some combination of better integration with the frontend stack, static types, and scalability/performance.

I think Rails was a victim of its own success. It’s always been great for getting projects started quickly, but now many of the early crop of “agile” startups have grown up and need solutions to large project issues that Rails doesn’t have great answers for.

> None of those ecosystems have anything comparable to Rails.

Rails has nothing comparable to React or the performance of Go. Laravel and Python are just alternatives to Rails, which suffers from the same issues, although Python has a lot of C/C++/Fortran bindings for some heavy stuff.

Meta question - has any language ever made a comeback?

Not in terms of quality or features (many have had significant improvements obviously) but in terms of adoption and getting back to the spot of "this is one of the go-to languages to do x".

I would put python in this category.

Back in the RoR days, python had a very second class status in the web community. There were some famous web 2.0 companies that are using django. All the limelight was on Rails.

These days, python is probably the second most popular langauge for after JavaScript in number of repos and maybe the go-to language for first time Devs.

(Thanks to Zed Shaw)

And there are significantly more people doing web app dev with Python now than with Ruby

Python was kind of a cult-popular language in the 2000s. I did as much work as I could get away with in it; mostly system-level nuts and bolts kind of things, but also web apps.

Django 1.2 was the killer app that made it so much easier to sell to teams. But by then, I think RoR was more fashionable.

It was.

While I was using Rails for web dev, I was using python for Gtk apps.. Ubuntu had a visual Gtk app creator. I forgot what it was called. It generated python code by default. That whole Linux app ecosystem was python for a while. Then there was a brief period of Vala being used for this. Not sure what they use these days

PHP kinda did with Laravel, suddenly PHP was cool again and startups were using it for a month or two :)

Can any language make a comeback to its original popularity? I would argue they can’t because they where overhyped.

I’m not interested in getting back to the overhyped level of popularity. That kept me away from Ruby on Rails for a while. But getting to a “mature” point where we can admin, no we are not dying and yes we are one of the better solutions for web development, would be nice. Also the job market adjust to it would be nice in that it gets used to having people switch to Ruby from other languages again.

The next hype bubble that hits the Ruby community is probably going to be something not related to web development. Look at Python and Machine Learning.

Ruby will not make a comback ever again. Maybe as configuration language.

We (web dev, UI dev, game dev) need simple, fast stuff, something Go like but better. Maybe Swift? (haven't used Swift). Maybe V will deliver in the end.

> Maybe Swift? (haven't used Swift).

Swift is really slow for web stuff.

> We (web dev, UI dev, game dev) need simple, fast stuff, something Go like but better.

Do you think "we" need something faster than Go for web stuff? Go is already fast enough for most use cases.

Crystal has Ruby similar syntax and Go like speed. Still needs mature a bit more

If you believe the TIOBE index, the popularity of python peaked around 2008-2009 and then slid to a low around 2014-2015 -- and now it's more popular than it's ever been.


> If you believe the TIOBE index

I don't. I don't think anyone else should either. TIOBE counts number of hits returned by a weighted selection of search engines when you search for "<language> programming" - it's a useless metric.

That's mostly due to the popularity of Python in machine learning like projects. It's ideal for plumbing and Numpy/Tensorflow and CUDA bindings make it fast enough for real work.

As someone who missed the early Rails train, I'm not really seeing a lot to love anymore.

It seems like Rails tried to do exactly what MSFT was doing with ASP.net - Give an excellent set of defaults you don't have to think about.

The problem with that (and it's the same problem in Rails) is that "excellent defaults" change rapidly - much more rapidly than most production code-bases.

So you end up with outdated defaults, and documentation fragments everywhere (this is actually FAR worse in Rails, because ruby hands you a million and a half ways to accomplish most tasks).

The end result is a framework with a ton of baggage, poor documentation, and riddled with "That way is not proper anymore" style footguns.

It's quick to knock stuff out with, but the second your team is bigger than 10 devs - Rails is a fucking ugly beast.

Honestly - ASP.net was crap, and I prefer it to modern rails on large teams.


So no - I personally don't see Ruby making a big comeback anytime soon, since its poster child - Rails - kinda sucks these days (and no disrespect to the authors, I think this problem is unavoidable in frameworks that give opinionated defaults - 1 set of opinionated defaults is awesome, 6 different sets of opinionated defaults that are no longer compatible is fugly, but if you don't update your opinionated defaults the framework rots anyways.)

That said - I actually quite like Ruby as a scripting language. I just really wish it hadn't become so tightly bound to Rails.

Just like I quite enjoy C# compared to java, but I still don't want to write ASP.net applications.

Are we talking classic asp or core? The former is dog shit while the latter is quiet nice.

classic! I hear most of the core stuff is actually pretty decent, but I haven't worked in the MS ecosystem for a while.

You should really try ASP NET 6. I won't try to sell you on anything and let the framework speak for itself.

I think the biggest challenges that Ruby faces are:

* No built-in type hinting (you have to reach for Sorbet which is a lot more than just hinting) * developer ecosystem seems to struggle to get gravity around anything that's not web-related.

Python has so much diversity of packages. You need simplex noise? Package. You need a terminal ui library? Yep. You want to use wxwidgets or qt? Yep and yep. You want to do computer vision? yep.

Ruby can check some of those boxes, to be fair, but ime the ruby solution tends to be less-used, lower-quality, and more likely to just be thin bindings around the C APIs (if relevant) than a more holistic language-native implementation.

I'm a little sad because I honestly like Ruby more than python just from a language perspective. RubyGems alone are better than the trillion packaging solutions that python has churned out. I like ruby's preference for method chaining vs python's list/set/dict comprehensions (just look at what a "2-layer" list comprehension looks like :( )

Also, for the type-hinting thing, maybe it's just me, but the only reason I don't consider python to be a trap is because it added type hinting as a first-class thing. Eventually, as a project grows, you just need types sometimes. I don't like that Sorbet is a) third-party and b) pretty heavy-weight (does a lot more than just type hinting) and I also think it's just not as pretty (it's not part of the grammar so it has to be tacked on, like if python type hinting had to be done via decorators.

I know ruby recently adopted some kind of native type hinting thing, but it's in a separate file, right? Like adding typescript hints onto js code? I don't like that either, it's just going to rot. I haven't been following this closely though, so maybe I'll be pleasantly surprised there.

No one uses Rails anymore--it doesn't scale, said one developer to the other while pushing their code to github.

What sold me on Ruby/Rails in the first place was its comprehensive test and deployment framework that worked out-of-the-box without having to make too many choices or develop those things independently. That was truly revolutionary.

But everything else eventually caught up and surpassed the Ruby/Rails ecosystem on the requirements->deployment pipeline, and did a lot of other things better.

I have a real soft spot for Ruby but I won't be back.

You mentioned 2 essential things: 1. You say it's hard to find good RoR developers 2. Good RoR developers have become super expensive

Ad. 1. To have more Ruby or Rails developers on the job market, you need to train them. Ruby is not a good language to start with because it offers many ways to solve a given problem. Juniors prefer to hear "do it like this" and not "you can do it like this or one way or another". The responsibility lies with the companies, they should patiently train and encourage developers in Ruby because of its advantages. The Python Foundation does a good job because they always say that Python has the best web framework, has the best X and Y (although that's not true). But it works for juniors. In contrary, Rails is a good framework for beginners, as it allows you to hide a programmer's shortcomings through built-in "good practices". It allows you to quickly create a relatively safe advanced product, at the same time giving developers some time to make up for gaps in their skills.

Ad. 2. The developers you knew 10 years ago are now expensive because they gained a lot of experience and are in a different position than they were 10 years ago. New developers are not "good" yet, they have to gather this experience. It has nothing to do with language. Hire less good RoR developers in your startup and let them grow under the watchful eye of 1-2 experienced (expensive) RoR leaders.

I think part of the answer to that would be "What replaced Ruby, and why?".

You can start here with Rails. I know that React technically "replaced" it, at least in popularity, but React is a frontend framework. Rails has a notion of views, and React probably replaced that, but I have no idea what happened to the model and controller. Express is very popular, but it's very thin compared to Rails. There doesn't seem to be any dominant database library. Some people are probably using Firebase, Hasura or some other "managed backend". But there is no "Rails but in JS". Maybe web development itself changed? Maybe it's harder to start out with Rails than it was a decade ago, so less people do it? Maybe the deployment/scaling experience wasn't good? Maybe Rails doesn't scale with the number of developers (microservices and things like that) so even if lots of products are still made with it, bigger products employs way more developers so we hear more about what they use?

The other thing that seemed very popular in Ruby was scripts and dev tools. I think Go ate a big part of the dev tools market, especially the ones you distribute as a CLI. For scripts, I have no idea. Python has always been popular here. Maybe with the rise of JS, people are writing their scripts in JS too? Maybe bash made a return?

I personally missed the Rails wave, and I feel like people are still trying to get back the productivity of good backend MVC frameworks. The most common advice given here to someone starting a web project that doesn't know what to use seems to be "use a popular MVC framework in a language that you know that generates HTML server-side". So there is still a need for stuff like Rails. The question now would be, why Rails instead of any other? From what I've heard, Django, Laravel, Spring, ASP.NET all offer a similar experience.

Two things happened: Twitter switched to the JVM and posted a talk getting a few high profile Ruby consultants to do the same.

A lot of the people that I knew from that time had already switched to Sinatra for their non work related projects.

As simple as Rails was compared to what came before it (J2EE), it was still complex in ways and people felt Sinatra was simpler.

When node.js started gaining traction and people realised that they could write front-end and back-end both in the same language, people went in troves to node.js. All popular Ruby projects like passport and Passenger had a node.js version. Some others had a node equivalent quickly put together.

Some rubyists that I knew also took the route of writing everything in (a very Ruby like language called) coffeescript and compiled it to js before running it on node although this didn't last long.

For me as a kid, Rails taught me a lot of things: MVC, db migrations,relationships, HTTP and REST for which I'm grateful.

But I don't see myself using Rails again because we have tooling now that makes me more productive or atleast feel that way.

> even if it's easier to build something, being so hard to find affordable developers offsets every advantage you had.

I think that's debatable. All these new & hyped up languages may give you cheaper developers, but you won't get the ecosystem and functionality Rails provides out of the box.

JS and derivatives (TypeScript, etc) is very popular nowadays and yet on the backend something that's provided out of the box with a monolithic framework like Rails (or Django, or Laravel) will take time to implement manually (often in a bad way).

In the end, you may "save" on salaries by going with another language, but then you'll end up spending twice as much time delivering functionality which would completely offset any savings.

As someone who has worked in both rails and JavaScript ecosystems, this is untrue.

Running on rails not only increases Dev expense but also the operational expense since you would need more servers to handle a similar load. (Correct me if this has changed with Ruby 3)

Not sure I agree on the operational aspect in the large scheme of things. Servers are cheap, people are expensive.

Thinking out loud here, say you can only serve 200rqs with Rails but 2000rqs in some other framework (yes not fair comparison, endpoints matter etc etc). That means you need 10x the servers but take a step back a sec. 200rqs is 720k a hour or 17,280,00 a day or 518,400,000 requests a month. (The scale for that is pretty high already). I'm pretty sure the 10x increase you need in servers will cost less than 1 extra employee at say $70k a year.

This has always been the argument of people optimising for development speed. Fair argument when you're actually getting dev speed in return. But it's mostly consulting companies making this argument, who don't have any skin in the game for ops cost.

If this were true, startups wouldn't be paying a third of the money they raised to AWS.. considerably more than people cost.

Companies grow and this 1/10th efficiency will quickly multiply.

If ops cost are so important why are we all developing micro services now? That's 50 containers instead of one big one, extremely inefficient. Today I learned our 15 devs development environments cost as much as the whole production setup (!) because we each get a whole kubernetes cluster with all the containers. That's quite bonkers. So do we care about ops cost or do we not? I think we don't really.

> startups wouldn't be paying a third of the money they raised to AWS

They're paying that because they and their investors want to. If you look beyond that it's absolutely possible to get that infrastructure at a tenth of the AWS cost by going with old-school bare-metal providers such as OVH or Hetzner, but then it means you no longer get to brag about how you wrangle (self-inflicted) complexity with Terraform and tons of YAML files at the next AWS conference.

I've been writing ruby since 2008. It's been the core language in my career since. I think that languages/frameworks are more or less popular based on your location. For example, Utah was an early adopter of Ruby/Rails and has become prevalent in many large companies here (Silicon Slopes). There were (probably not anymore) 4+ ruby groups that were within driving distance to me that ran each week.

Companies who choose Ruby/Rails I believe do so because they want fast iterations, agile development, and small dev teams. I think this also applies to Python/Django and PHP/Laravel as well.

> Will Ruby Get a Comeback?

Performance will become less of an issue with all the work Shopify+Github are doing (the new JIT etc). So the "Ruby is slow" argument will become weaker; I expect the gap between JS and Ruby performance wise to narrow in the coming 5 years.

But we need to be realistic - Ruby was THE tech for startups for around 10 years (from 2005 - 2015). That's a very priviledged spot to be in. It's not likely to ever happen again. But it can definitely (and it actually is I think) be in the top 10 web technologies.

> As a startup you're start to think if you made a big mistake choosing Ruby , even if it's easier to build something, being so hard to find affordable developers offsets every advantage you had.

I think many Ruby shops go out of their way to be clever. Many apps can "color within the lines". By doing so, you can hire mid-level devs in any language and tool them up on Ruby. Way too many apps have been built in a manner where the employer has no choice to hire senior Ruby devs.

This has been my personal experience. I came from a non-RoR background but I have done plenty of programming. The amount of clever solutions advanced ruby-ists come up with can be hard to comprehend and add to that the dynamic module resolution that rails provides it makes for a high amount of mental overhead when reasoning about what something should do when running. I get the whole this is slick and it eliminates boilerplate but that is only if you know what is going on, a new comer or non-ruby programmer is going to be sunk until they figure that out.

I have yet to find a decent book that isn't beginner (here's how to create a rails controller or let's define a class) or super advanced (so you wanna meta-program, hold my beer) on the topic of Ruby. So definitely getting devs up to speed on a Rails project that got clever is an uphill battle unless they are senior.

I think the boat has sailed, particularly on RoR.

1. On the ease to test front, most new languages have built-in easy testing tools. `go test` is so darn easy. These new languages offer less ceremonial type system as well.

2. Most of the new languages are an order of magnitude faster.

3. Newer frameworks have more interesting things to offer. For example, Phoenix on Elixir.

2. faster as speed or development? Gem ecosystem in Ruby makes it super fast to develop stuff, I'm not sure is there any ecosystem that rich with up to date libraries.

> Gem ecosystem in Ruby makes it super fast to develop stuff, I'm not sure is there any ecosystem that rich with up to date libraries.

Pretty much every ecosystem has a package manager and ecosystem, I don't think Ruby is anything unique here.

The upthread comment isn't commenting on the existence of the package manager by the coverage of the ecosystem; every language has an ecosystem, but they aren't all equivalent.

I doubt the Ruby ecosystem is the largest out here. In terms of packages, npm more than 1 million, Maven Central (Java) 438k, PyPi (Python) 336k, Packagist (PHP) 323k, NuGet (C#) 260k, CPAN (Perl) 202k, Ruby has 170k gems, Rust 70k, Elixir 16k, Haskell 16k OCaml 3445. I couldn't find information for Go, and nothing specific for Scala and Clojure. Out of those the most comparable are Java, Python, PHP and C# due to the existance of Spring, Python, Laravel and ASP.NET competing against Rails. All of them have a bigger ecosystem compared to Ruby. In terms of scripting languages, Perl, Python and JS all have bigger ecosystems.

Of course you could reply about the quality of packages, but first, that's moving the goalposts, and second, why would the Ruby ecosystem be any better?

Package number is not enough. For example, .NET’s BCL is probably the largest of all the languages you shown where the other ecosystems would have to provide what it covers.

Sure, and .NET has a lot of Windows-specific stuff that's hard to find elsewhere. Is the same true for Ruby though? I don't think it is.

I don't think what you are saying holds. For instance, 32k [0] is just where intersection of both .NET frameworkd (Win only) and .NET Core (cross plat). If you want to see in total, this is a rough estimation, 634k APIs [1]. I don't know how much of that is .NET core only.

[0] https://devblogs.microsoft.com/dotnet/announcing-net-standar...

[1] https://apisof.net/

> I doubt the Ruby ecosystem is the largest out here

“Largest” and “most likely to have what going_to_800 needs in practice” are not the same thing.

Come on, I already talked about that moving the goalposts things. Ruby is mostly used for monolithic web developement, and then scripts. This is covered by bigger ecosystems.

I don't think Go will be huge 10 years from now but maybe I'm wrong. We'll see.

>I know that many of you will say Ruby is doing fine...

You have described what I have been crying about since 2016.

Rails is definitely in a negative feedback loop. And I am not even sure if Shopify and Github are enough to pull it out.

And there are lots of reddit threads about Junior Ruby Developers unable to find a job. As nearly all jobs are looking for Senior Dev.

The only way to solve a problem is to accept it is a problem. And right now as you said, most still think the ecosystem is doing fine.

> And there are lots of reddit threads about Junior Ruby Developers unable to find a job. As nearly all jobs are looking for Senior Dev.

This is true for basically every tech stack though. The pandemic gave a lot of people a chance to change careers, so there's a lot of fresh blood looking for work right now across the board, and not enough space to hire and then mentor them.

This. Juniors will have a hard time in any tech. It's not like employers are gonna be impressed with a junior node dev - wow how special a junior that want's a node job, never met one before. There are millions of javascript developers, maybe tens of millions, it couldn't be any harder to distinguish yourself by learning javascript nowadays.

> My main concern is jobs availability, as an employer I find it harder and harder to find good RoR developers and they become super expensive

Compared to what? Good devs are expensive. You think A-level Python devs will be cheap?

If OPs concern is only availability of cheap talent, there are only two choices: nodeJS and python. Which is what most code academies, the main source of cheap ready-to-grind talent comes from.

Ruby used to dominate this space; in fact, I think the whole online code academy surge was lead by rails, although someone more in the know might point out I'm wrong. But market forces have changed the situation and favour nodeJS and python. For some reasons. Both are easy to setup, easy to learn, interpreted, with an integrated REPL setup, integrated packaged management. Just like Ruby. Where they differ? They dominate a valuable niche.

* JS owns browsers, and that strength creates other potential value points, starting from "what if I can use the same code in server and client" all the way to "what if I can use the same code for web and native". * python owns ML, probably the most on-demand niche in the market now. It has the most complete ecosystem of ML libraries even your mother can use (R was competing until 3 years ago, I don't think it's close at this point). This opens up a lot of possibilities, such as "what if I can deploy my ML model along with my web service", or "what if I can use the ORM layer that I use for the web directly to feed data directly to my data analytics toolchain".

These questions make CTOs and Eng Managers everywhere very excited, as the thing they hate the most is "technology drift", i.e. betting on tech which eventually loses community mindshare and inevitably rots to the point it gets rewritten in PHP.

I love Ruby, but it doesn't own a niche. It's particularly strong in the web application space, mostly due to Rails, but so is PHP, so is Java, .Net, and probably even VisualBasic. It's not backed by any megacorp, so it can't even claim that fake sense of validation entitlement Google's go has.

Developers love it, and it has a lot of value and success stories going for it, specially considering how 80% of Y-Combinator most valuable companies are built on it. So it'll never disappear, and someone's always going to bet on it. But it'll never be 2011 again, so expectations of cheap labour have to be aligned with that.

Choose ruby because you like ruby. Choose ruby because you feel a creative release with it. Choose ruby because it's not just about delivering customer value, but having fun cranking out features that look fun, and your users might think so too. Github wasn't the first CVS server with a UI, but it became Open Source's social network because they used ruby.

And goddamn it, make more ruby libraries. Eat some of those niches. Make some ruby ML. Compile ruby to webassembly. Add value to ruby. If you add it, they will come.

if nobody uses ruby then why are the devs super expensive? you would think that there is no demand?

ColdFusion devs aren't cheap either, and that's definitely not a popular language these days.

It's not that devs are necessary expensive, it's that senior devs are. The problem being that "easy" languages can often lead to complex balls of mud if care is not taken, and the only way forward is to hire senior devs.

My Linkedin shows 37444 Ruby jobs in the U.S to 488 ColdFusion jobs. I don't think this comparison makes sense at all...

The point was whether popularity correlates with pay. Popularity on a given job site neither proves nor disproves that point.

weird. i’ve seen situations where there are very few developers in the world with a specific skill. yet, because there are few companies that need that skill relatively, these developers cannot demand rates higher than rates for developers dealing in vanilla shit like javascript.

The rates might not be higher, but more to the point, their rates aren't lower either. Thus the idea that popularity correlates with pay isn't necessarily true.

right. you would think that the number of open jobs would be an indication of the rates you can command as the reasoning is that they are not filled because there is no supply.

FORTRAN devs are also pretty expensive. There are fewer people who can write FORTRAN and there is a lack of allure to a job that involves maintaining legacy code.

Sadly a lot of Ruby code written in 2010ish is also considered "Legacy" code and even people who previously did Ruby don't want to do it, not because of any destestment of the language. One company even specifically asked me if I would be "okay" with writing Ruby code from time to time.

People who need to write FORTRAN are also very specialized in other technical capacities. FORTRAN is used a lot in high performance scientific & engineering computing. So companies are paying for the ability of a person to grok the high level mathematics necessary to justify using FORTRAN.

i guess COBOL is similar.

i hope so. is really nice language.

Has someone created rubyscript or typed ruby yet? I need a good lol.

Check out Crystal


I hope not.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact