this post was submitted on 08 Dec 2025
1 points (51.1% liked)

Programming

23856 readers
260 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

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/

you are viewing a single comment's thread
view the rest of the comments
[–] xxce2AAb@feddit.dk 16 points 5 days ago* (last edited 5 days ago) (2 children)

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.

[–] FizzyOrange@programming.dev 2 points 3 days ago (1 children)

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!

[–] xxce2AAb@feddit.dk 1 points 1 day ago (1 children)

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.

[–] FizzyOrange@programming.dev 2 points 23 hours ago (1 children)

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 script is 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:

  1. 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.
  2. 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.
[–] xxce2AAb@feddit.dk 1 points 22 hours ago* (last edited 22 hours ago) (1 children)

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.

[–] FizzyOrange@programming.dev 1 points 8 hours ago

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.

I can assure you it is 100x more convenient. One command to install it that has worked every single time I've done it, vs the hell that is Python installation. It's meme-level bad..

Granted that was written before uv existed, and UV makes things a lot better in general. One thing it still isn't great at though is installing Python. E.g. the binary Python distributions it can install never look for SSL certificates in the right (read: different on every Linux distro) places, so HTTPS doesn't work.

If you actually want to install the latest version of Python on Linux (so you can't use distro packages), the official solution is to build it from source. Which mercifully is easy (very surprising given the rest of Python), but still!

Is Typescript a better language than Python?

Not uniformly (e.g. arbitrary precision integers are the right choice for ad-hoc scripting, and Python's support for lists, dictionaries, and filter/map is arguably nicer). Overall though, absolutely.

I definitely wouldn’t use Rust - or any other compiled language - for scripting.

Why not? It's really good for shell scripting type stuff (executing commands, manipulating files, etc.).

[–] PokerChips@programming.dev 6 points 4 days ago

You actually get stupider using rails. This is a fact.