# ls | grep foo
This involves two programs written in nicer language (C).
# ls | rg foo
This involves two programs written in nicer language (C & Rust).
Feel free to come up with JS program that does something well and/or is usable in pipeline. I think you're missing the point of the shell.
Perl code is often written once and then runs for years without issue. I have on occasion fixed broken Perl scripts despite having practically no experience with the language. It wasn't a problem at all, because your average maintenance job is "something was moved" or "we're switching out X for Y", but not "we need to rewrite this complex system that is a Perl script for some reason".
I would intuitively agree with you as there are hundreds of unnoticeable perl scripts doing their job, but as someone with moderate experience with the language, I can say that when I did maintenance tasks, they were mostly the second kind.
Tcl is horribly, terribly under-appreciated. It is one of the great might-have-beens of modern computing, almost as much as is Lisp.
And I think Lua is more elegant than TCL overall. TCL's stringiness really gets clumsy in certain types of programs, and it's a much larger target than Lua overall.
Not to say that TCL is bad, but I'm glad that dict-based languages prevailed over TCL's string-based-ness
I especially see this being useful in my CI environment which has a handful of functions, some json and yaml parsing (using jq and python respectively), etc. It's a little cumbersome at the minute but not so much to switch from bash and the rest of the project is JS anyway so it would be good to be consistent.
> useful in my CI environment
For sure. I've been meaning to play around with getting a docker image with the shell set as the default. It's definitely a use-case I had in mind.