Any language that becomes a popular replacement will eventually suffer the same fate. It's the popularity and rapid "improvements" that cause this.
Ruby has managed to be incredibly self-compatible while adding new features for many many years now. Its main weakness compared to Python is its performance but that’s been steadily improving every year with each new (backwards compatible) Ruby release. And for 99% of apps it’s fast enough.
I always found Ruby super picky about specific versions, hence having shitloads of configs for rvm to use a specific version for each project.
Bash and Perl?
Unironically yes - with a good shellcheck setup and a good local wiki of documented utility functions I’ve found bash to be an absolute powerhouse for writing portable code.
I’ve not used Perl as much in the last decade as I used to, but I’m always pleasantly surprised when I dig up some older stuff and it just works.
That's my main jam lately - shellcheck + shfmt + bash-lsp is a fantastic toolbox.