That's good.
That's powerful. Contrast that with the JavaScript framework du jour: React today, React with new shiny hooks tomorrow; Svelte a week ago and a week from now; while the boss just told you in an email that the meeting an hour from now regards porting everything to Vue. That's the kind of cognitive load that we're thankfully spared by long-lasting technology.
Now consider PowerShell. It is not an open standard. It is not an open technology. Its steward is Microsoft, of "Embrace, Extend, Extinguish" fame. It bucks against the long-established norm, so that all the established idioms are useless, while its semantics are just as tedious.
Why, therefore, should I bother putting pilot time into this proprietary flying rug whose engine is more-likely-than-not a cracked bottle of Microsoft semen?
As to whether PowerShell has anything to teach us about shell engineering: meh. It's not as good as Bash at doing Bash-like things and it's not as good as scripting languages at doing scripting things.
EDIT: I figured I'd look to see whether PowerShell is open. Surprisingly, it is! With an MIT license to boot. However, as expected with any Microscum code, it includes telemetry out-of-the-box.
As a matter of principle: I don't like it, I don't trust it, I don't want it. The semantics are ugly and it stinks of Microsoft.
Old vanilla js works the same today, as it did in the beginning.
And react would be your systemD/wayland, whatever.
Environments change, thats allright. And I think it is not smart to not look out for good ideas, even if they come from microsoft.
What changed are the surroundings (and enhancements).
No, they don't. Because even if a Unix from 30 years ago still does exist (Solaris and Aix) it and the programs used with it changed that much that almost all scripts are unusable by now. And the used shells (Korn shell anyone?) and the shells themselves changed too.
Same with Linux, it changed that much during the last 10 years, that almost any script had to be rewritten.
With 30 years old bugs because bash can’t be written correctly. I really don’t understand why are we putting up with that — anything longer than #! line and one command invocation in bash should be a python script instead.