Alternative shells or higher languages don't solve _all_ the issues.
I won't install a new shell to generate a file list on my CI server. I won't install a new shell on remote machines. Ever.
These structured shells also require commands to be aware of them, either via some plugin that structures their raw I/O output or some convention. They solve _some_ command output structuring but not _all_ the general problem.
So, the answer is good. It promotes the idea that one should be careful when machine parsing output meant for humans.
> I won't install a new shell to generate a file list on my CI server. I won't install a new shell on remote machines. Ever.
Uh... that's on you? Why do you intentionally hinder yourself?
> These structured shells also require commands to be aware of them, either via some plugin that structures their raw I/O output or some convention. They solve _some_ command output structuring but not _all_ the general problem.
Okay. It doesn't solve literally every single problem, that is true. It's still miles ahead. And when interfacing with non-pwsh commands, you just fall back to text parsing/output.
> Uh... that's on you? Why do you intentionally hinder yourself?
Hinder myself? An ephemeral cloud machine would not keep my custom shell anyway. By having to install it _every single time I connect_ I just loose precious time.
I want to be familiar with tools that are _already_ installed everywhere.
The shell is supposed to be a bottom feeder, lowest common denominator, barely usable tool. That way, it can build soon and get stable real fast. That (unintentional) strategy placed it as a core infrastructural piece... everywhere.
Of course, there's scripting and using it on the terminal. But we're talking about scripting, right? Parsing ls and stuff. I want the fast, lean, simple `dash` to parse my fast, lean simple scripts. pwsh is fine for the terminal leather seats.
I won't install a new shell to generate a file list on my CI server. I won't install a new shell on remote machines. Ever.
These structured shells also require commands to be aware of them, either via some plugin that structures their raw I/O output or some convention. They solve _some_ command output structuring but not _all_ the general problem.
So, the answer is good. It promotes the idea that one should be careful when machine parsing output meant for humans.