I'm a firm believer of "the less shell scripts the better".
Shell is awful, obfuscated, and should stay a scripting language
No amount of scripting is a replacement for code portability and shell script wrappers make software unpleasant to use, especially when they don't have completions. Why do we need to generate completions? Why can't we have good things in 2026 and have self-documenting software? Ironically I think the only use case that I don't mind is BusyBox
"But it solves this problem just fine"
Okay but can anyone read it once it's written. The only thing it has going for it is that it's not Batch.
And I mean, Fish and similar are fiine, but don't make script files coherent enough to actually replace shell scripts for me
I like the term "Load-bearing shell scripts." If it starts getting past 20 lines and you're using it for CI/deployment/tests/etc. you should replace bash/sh/zsh with something else.
Why the Python hate? Python3 is pretty stable, and even has type hinting. Virtual environments and uv are your friends. Although at that point it's no longer a simple shell script, but if you really don't want to use a venv, almost every linux distro has the major libraries you need (requests and such) in the package manager.
Shellscripts should be avoided outside of constrained environments.
While commonly one would recommend Perl or Python, I'd say that some manner of standard-compliant Scheme or Common Lisp should be used if at all possible.
Perl is somewhat stable and readable (but it also is implementation-defined), but Python is not stable and does a bad job of pretending it is (that script I wrote a decade ago should not have needed any modification to keep working, it had no non-stdlib dependencies).
huh ... I've only seen really huge breakage between like 3.12 and 3.13 .. that was one of the annoying one for package maintainers. Maybe I just got lucky.
I use uv as my Python build too. It handles venvs and publishing. Very kino. But I can always run against the system after I get all my packaging done.
@natty@lispi314@djsumdog Now, I like python, quite a bit. It's a very easy language, good for when I want to achieve some goal without having to think. And I DON'T USE VENVS. If I did, I would probably hate python.