Ruby survives on affection, not utility. Let’s move on.
Archived version: https://archive.is/20251204034843/https://www.wired.com/story/ruby-is-not-a-serious-programming-language/
Maybe if I could read the article I’d have something to say about that. I guess we’ll never know, and that’s probably for the best.
Thank you.
Disclaimer: I’m not Ruby programmer. I evaluated it once, saw no particular reason to use it instead of Python and promptly forgot about it.
With that said, the specific criticism(s) are:
-
Poor performance. Sure. Ruby does appear to be somewhat slower than Python, but I’m more concerned about the peak memory consumption which is admittedly frequently pretty terrifying. Mind you, if I need high performance, I’m not likely to be using either Ruby or Python. It’s fine for automation scripts, rapid prototyping or experimentation, hypothesis validation, moderate data processing, analysis and visualization, but yes: If you build your (supposedly) hyper-scalable website on Rails or use it for the system software for your embedded device, you’re going to have a bad time. Every tool has its place (except Brainfuck). Don’t use a hammer when you should be using a screwdriver.
-
The above also covers the railing against rails, about which I have no further comment as I’ve never used it. Maybe it’s nice, but if you’re working on something with more concurrent users than your homelab automation UX, there’s undoubtedly better alternatives.
…And that appears to be it. So it boiled to down to “performance”. Does that in and of itself make Ruby “not a serious programming language”. Well, if it does, then the same applies to Python. Does it mean that there’s probably a better alternative for any given application? Probably yes.
You actually get stupider using rails. This is a fact.
You forgot about the lack of static type hints. That’s a serious flaw.
If you ignore the performance and lack of static types, then I don’t think there’s too much wrong with Ruby but apart from Rails there isn’t really a compelling reason to use it over Python either. And that’s not saying much!
Eh. Almost every tool has its place. I use Python for all my automation needs, a niche in which it serves perfectly well. Surely you wouldn’t argue that Rust or C++ would be a more appropriate alternative in that kind of role because they’re statically typed. Then there’s other things - I enjoy having Jupyter Notebook on hand for rapid prototyping, sanity checks or quick testing of ideas, plotting etc. It certainly beats using Octave, at least in terms of ergonomics. Most of my recent C++ projects uses Python generated Ninja scripts as the build system, and so on. It is possible there’s something out there that would serve those needs of mine better than Python? Sure, but if so, I don’t think I know what it is.
Surely you wouldn’t argue that Rust or C++ would be a more appropriate alternative in that kind of role because they’re statically typed.
Not C++. Rust hopefully, when
cargo scriptis stabilised!Until then I strongly prefer Deno (which is also statically typed) for ad-hoc scripting. Python is surprisingly bad for that use case despite it being super popular for it because:
- There’s no way to use third party dependencies reliably from a single-file scripts. You’re limited to the standard library, or setting up a whole pyproject.toml, venv and so on.
- You can’t import files by relative file path like you can in Deno, Zig, and Rust (sort of; it’s slightly hacky). That leads to people doing hacks to PYTHONPATH or importlib which completely breaks all tooling.
I agree that Python’s handling of 3rd-party dependencies is cumbersome, especially for scenarios that would have otherwise been trivial. However… The use-cases I’m referring to in my context have no need for anything outside the standard library. I’m literally talking about using Python as a shell script alternative, more or less.
…Which is admittedly the lowest of bars. It’s hard to be less ergonomic or more arcane than Shell script - unless one resorts to the Dark Arts of Perl or APL.
This is the first time I’ve heard of Deno, but I’m not sure that having to install a 110Mb JS VM + runtime is more convenient in my context than simply using Python which is already guaranteed to available on any system I use and does all I need. Is Typescript a better language than Python? Perhaps. Does that matter for my use-cases? No, not really. I definitely wouldn’t use Rust - or any other compiled language - for scripting. While I haven’t had time to look at Zig as much as I’d like, I do adore the language so far - I can definitely see myself transitioning from C++ to Zig, and likely will to the extent I’m able. Still don’t see it as a Python replacement though (again, for my use-cases - I’m emphatically not arguing that there isn’t plenty of projects implemented in Python that could have benefited from being written in Zig or Rust instead).
If you have any other suggestions for viable alternatives, I’m open to suggestions though.
-
No problem with 3rd-party scripts and frames blocked.
Seriously, this lets me read more articles than with only adblocking.
Huh. The thing is, I do block 3rd party scripts and frames by default (umatrix).
Me too. What happened there? I thought it might be because some of my browser extensions block few scripts and other elements. Enabling some of the stuff didn’t make reveal the article, so I lost interest. Or is it paid?
I honestly didn’t care enough to spend time looking into it as I’m not being paid to make Wired’s website functional. Thankfully, BrikoX was the real MVP and ensured nobody has to actually go there to access the content by posting an archive link.
Hmm, I don’t have too large of a sample size, but I don’t feel like Ruby programs are buggier than Python programs, on average. Not being the language for programming beginners and data scientists, probably aides that impression, though…
Not buggier than Python is a really low bar.
Perhaps, yes. 😅
It was a diplomatic way of saying that I doubt the author’s assessment that Ruby’s tooling is worse than Python’s. Partially, because Python’s tooling has traditionally been terrible (even if it’s been improving in the past two years, from what I hear). But yeah, partially because I do not see Ruby programs being as buggy as they insinuate here…
Not being the language for programming beginners and data scientists, probably aides that impression, though…
I think it was that back when it was relevant (but replace data scientists with web devs)
I never got interested in the ecosystem myself, but I’ve run into it every now and then. I feel like it’s in the same place as PHP today: still used a lot for legacy reasons, but you’ll get weird looks if you start a new project with it and you’re under the age of 40
I think it was that back when it was relevant (but replace data scientists with web devs)
Sure, but if programs from that era are still around, chances are the maintainer is quite experienced by now and has fixed all the funky behaviour. 🙃
I never got interested in the ecosystem myself, but I’ve run into it every now and then. I feel like it’s in the same place as PHP today: still used a lot for legacy reasons, but you’ll get weird looks if you start a new project with it and you’re under the age of 40
Ten years ago, a university buddy of mine discovered Ruby and you might’ve thought a miracle happened from how excited he was for it. But yeah, that was also the last time I met someone in real life who was excited about Ruby. 😅
The article starts with a lie, imprinting for computer users and the importance for UX is discussed for at least 20 years, see: Baby Duck Syndrome(wikipedia).
One can only think of something like this as “their own little theory”, if they are uninformed in both programming and psychology which, after reading this stain of an article, is not far fetched. The correct psychological effect to point out here would be Dunning Kruger (wikipedia).
I don’t use RPGMaker because I didn’t care for Ruby and afaik, they still use it as the scripting language.
I belive in newer versions they have switched to JS and C#
This mirrors my feelings about Ruby. Especially the lack of type hints. It’s a huge problem when trying to work on large Ruby codebases, e.g. Gitlab or Asciidoctor. Easily doubles the time it takes to get anything done. Sometimes I’ve tried to make a change to Gitlab but had to give up entirely simply because it’s impossible to follow the control flow.
That’s very rarely a problem with statically typed languages. (It can happen with excessive use of interfaces that are resolved at runtime but it’s much less common.)
So aside from Rails I can’t really see any reason to use it over even Python, let alone actually good languages like Rust, Go, Typescript, etc.


.jpg)




