Preferences

Other than personal preference, are there any features that make Ruby worth considering for new apps? As a user, my experience with gems hasn't been great. I don't know any Ruby, I'm just asking out of curiosity.

Ruby by itself is still a pretty decent scripting language. I still think Rake is highly underrated as a command runner.

Rails is still a good web framework within its limits. If you want to build a small, modest complexity web app with like 1 or 2 developers and under maybe 6 months of active development, modest traffic needs, etc, it's a good way to get everything up and running fast with best-practices for everything.

The lack of types may start to pinch some once you get an order of magnitude more developer-months into the app than that. Lack of overall speed, threading issues, and memory usage may be an issue once you get a few orders of magnitude more traffic. But while you're within those limits, I think you'll get features out on it faster than any other language or framework.

As they say, a lot more startups have died due to not being able to iterate fast enough in the early stages than from their traffic capacity, hosting efficiency, and bug count once they get into serious growth.

> If you want to build a small, modest complexity web app with like 1 or 2 developers and under maybe 6 months of active development, modest traffic needs, etc, it's a good way to get everything up and running fast with best-practices for everything.

Of course lets silently ignore Github, Gitlab, Shopify and others: all small, modest complexity web apps built with Ruby on Rails. Look at Shopify last year black friday numbers and come back and tell us how Ruby is fit only for modest traffic.

I did say that those aspects of Ruby would start to be painful at that scale, not that it was totally unusable. Clearly it's usable, and there's certainly less scale-able things than Ruby on Rails out there serving big production traffic today. But I wouldn't recommend switching an app that big in some other language over to Ruby, and at least as many companies have moved off of Rails monoliths when they outgrew them, like AirBnB for example.
But would they still build with Ruby if they had to rewrite it today? It seems other commenters are saying they wouldn't. I wanted to see if it offered anything more than my python and Go preference.
For what it's worth, the last few years our we've sliced off a few custom client apps in Rails and it's felt like a great tailwind. We've been running a profitable BI app for around 15 years, but it's really hard to maintain. The dev team decided we want to rewrite it from .NET, Python, React into vanilla full-stack Rails. We were planning to rewrite it anyway to fix many old assumptions that turned out to be wrong and made maintenance a lot harder. It should also reduce the required coordination of backend API + frontend being that it's more cohesively developed together. But ultimately, we've enjoyed using an opinionated framework that has all the typical "web app" things batteries included and well-established. It helps discovery.

I think it works well for SaaS type offerings where you have a low number of high-value clients. We don't do high-traffic public sites. Perhaps my opinion would be different then.

Let me ask you a different question:

Would they be where they are today if there weren't been built at that moment with Ruby?

Both these questions are hard to answer without connecting the dots, looking backward.

Github was started in 2007, Shopify in 2006, Gitlab in 2011, Whop in 2021

It takes a long time approximately for a company to get out of the medium zone and go really big. So the only answer for this is we don't really know.

For any programming language you can find similar stories.

I tried to answer this question 6 years ago by analysing company data from YCombinator and TechStars: https://github.com/lucianghinda/programming-languages-in-sta...

Here is some data I found back then in 2019:

- Ruby companies raised 13 Billion dollars

- Python companies raised 11 billion dollars

- Java companies raised 1.5 billion dollars

- PHP companies raised 1.4 billion dollars

- Go companies raised 1.3 billion dollars

- Node.js companies raised 800 million dollars

Of course this data is 6 years old and it was based on the initial programming language and also it is about funding amount and not revenue.

I did not had time these days to update the data there.

I don't know. Do programming languages really make that big of a difference, other than with developer unhappiness and talent scarcity when hiring?

I think how many quality devs you can hire with that language is really the only question that matters 90% of the time (ballparking), so long as the language is designed for that use case, like don't use assembly to write a production webapp.

I don't know many devs that code with Ruby, I know of more devs that code in rust and Go which are newer by at least a decade? so the question of what actual benefits it has is important.

For Go, it makes it hard to mess up error handling and easy to deploy your apps since it's all a static blob, but memory footprint and optimization can be challenging at times. For rust, it takes a long time to do things, so fast shipping timelines might not be a good fit. For Ruby, does it have anything that makes it more secure, faster to code with,resilient to failure, easier to scale,etc...? I don't think anyone answered that here.

What can it do _better_ that the other languages you listed can't or can't as well?

Honestly, if you're even slightly concerned about Go's memory footprint and optimization then you shouldn't bother digging any further into Ruby.

There's a reason that the DevOps world abandoned Ruby wholesale in the late 2010s (mostly replacing it with Go).

In a world where container orchestration allowed servers to be more fully utilised, it became increasingly obvious that the ancillary tooling (think log shipping or metrics collection) often had a larger memory and CPU footprint than the core service itself.

Formerly popular tools in this class like Sensu or fluentd have either been rewritten or replaced with Go equivalents, and Ruby seems to be more or less dead for new projects outside of the Rails niche.

I’ve been writing Ruby profesionally for over a decade and while the writing has been on the wall for almost the entire time, it’s more certain than ever that Ruby is on its last legs.

Big legacy companies who have invested heavily into Ruby cannot switch but every shop I’ve been at often started new services in non-Ruby (mostly Go but have seen plenty of Node/TS as well or Rust for that matter).

If I were to start a new app Ruby would be far from my first choice and the biggest reason are types. After being in the weeds of big Rails apps while also working with Go/Ts/typed Python, Ruby seems very fragile in big codebases. Sorbet is also not enough.

I've used Ruby off and on since the hype train started with DHH's early videos showing how easily you can make a blog in Rails. Oof, that was published 20 years ago! I wouldn't use it for anything beyond simple shell scripts these days. You're better off with Go for back-end work.

This item has no comments currently.

Keyboard Shortcuts

Story Lists

j
Next story
k
Previous story
Shift+j
Last story
Shift+k
First story
o Enter
Go to story URL
c
Go to comments
u
Go to author

Navigation

Shift+t
Go to top stories
Shift+n
Go to new stories
Shift+b
Go to best stories
Shift+a
Go to Ask HN
Shift+s
Go to Show HN

Miscellaneous

?
Show this modal