Bash is a good shell with a fairly unimpressive pipeline. Powershell is bad shell with a good pipeline.
For me, as a programmer, the shell part of a shell is more important, as I can do the rest in a more powerful language. Powershell is too verbose for shell usage (see New-Item), brings nothing new to the table in terms of scripting and is ultimately not worth using just for the better pipeline.
(another commenter pointed me to Nushell, which seems to be a very good middle ground, and I've heard of a few more similar efforts, so we hopefully won't be stuck with just bash for too long)
Oh, here we go again with verbosity like aliases are non existent. For realz, New-Item is ni for example or mkdir or whatever...
> as I can do the rest in a more powerful language
Powershell is like repl for dotNet. You can't really get more powerfull.
> brings nothing new to the table in terms of scripting
Are you serious ? I guess somebody has a lot of learning to do.
> (another commenter pointed me to Nushell, which seems to be a very good middle ground, and I've heard of a few more similar efforts, so we hopefully won't be stuck with just bash for too long)
> Oh, here we go again with verbosity like aliases are non existent
Aliases would have to be standardised (and I don't mean the crap they pulled with aliasing wget) and regardless, only provide an illusion of simplicity that breaks down the moment you try to do anything more advanced.
> Powershell is like repl for dotNet.
The only place dotNet actually matters on Windows. Everywhere else it's just unnecessary bloat.
> You can't really get more powerfull.
I mean, yeah, technically anything Turing-complete is as powerful as it gets. But things like generators, coroutines, easy multi{thread,process}ing, good support for object-oriented and functional patterns... are what I'm looking for in a powerful language.
> Are you serious ? I guess somebody has a lot of learning to do.
Besides structured data, which was the entire point of this discussion, I don't know of anything Powershell can do that other scripting languages can't. I am, of course, not counting the many system and application hooks, as those are usually 1) not part of Powershell itself, 2) Windows-only and 3) were already possible on Linux (unlike on Windows, basically everything has CLI support here).
In all of this, btw, I was not considering Python a scripting language, which I easily could have (there are even a few neat shells for it). Once you have Python, it's barely even a contest.
> Aliases would have to be standardised (and I don't mean the crap they pulled with aliasing wget) and regardless, only provide an illusion of simplicity that breaks down the moment you try to do anything more advanced.
OK, wget/curl was bad idea, but lets not overreact here about one bad judgement. Illusion of simplicity ? That breaks ? Cmon... never had a single problem with aliases until pwsh, and I am using Powershell 24x7 almost exclusivelly in aliased form. Also, powershell does standardize aliases, once they are in, they never change (except when it went x-plat, but everything changed, so that is moot point).
> The only place dotNet actually matters on Windows. Everywhere else it's just unnecessary bloat.
Let me just say here that entire sentence is crap :) I do not work for MS but life became good when it was x-platformed. MS reputation was bad in linux world but its a social construct that now starts to fade away. I am into technology, not into that social mumbo jubmo bs.
> I mean, yeah, technically anything Turing-complete is as powerful as it gets.
You cant really compare PowerShell with mainstream langauges, since its made for shell context. Regardless, you can do all those fancy stuff in C# and compile it inline. Native powershell has all the things you mention tho, seems you need to take a good look into it (except coroutines but who cares for that in shell ?)
> I don't know of anything Powershell can do that other scripting languages can't.
Let me cite another well known person to you - I mean, yeah, technically anything Turing-complete is as powerful as it gets. The point is to do it in easy to understand and concise manner, without reinventing the entire universe in the process.
> In all of this, btw, I was not considering Python a scripting language, which I easily could have (there are even a few neat shells for it). Once you have Python, it's barely even a contest.
I was waiting for this: lets get python (or ruby or <insert-non-shell-language-here>. Lets be serious about this.
Aliases only hide verbosity in base commands. If the parameters and switches are overly verbose too, they can't help you there.
> dotNet
I'm not saying it's not good and certainly not just because it's from Microsoft. I've done Windows and Linux development and while it's the way to go on Windows, I've never missed it on Linux.
> You cant really compare PowerShell with mainstream langauges
I never intended to, but you called it as powerful as it gets, which really isn't true. I was just giving you examples of why it isn't.
> reinventing the universe
See, to me, the reason I can't switch to powershell is because it seems to reinvent too much - both from a shell and a scripting perspective.
> Python
The whole reason why I brought it up was to continue my original point of "unimpressive for scripting". While I appreciate the convenience of using the same language for shell and scripting, I have no problem using a non-shell language to do more complex things.
Either way, you have successfully convinced me to give Powershell a try one more time once I get some free time to experiment.
Yeah, lets get back to bash forever :S