| > Not to put too fine a point on it, but that's nonsense. In PowerShell you pass structured data around instead of globs of text, which is much more maintainable. Using Bash on Windows is like going backwards, and it's sad that most developers don't even realize it. > Historically, PowerShell was supposed to be a replacement for cmd.exe and roughly equivalent to bash, yet suitable for the Windows environment. They tried early on to port some of the UNIX & Linux tools to Windows and it didn't fly, so this is what we're left with. Nonsense, Powershell is a fundamental improvement. It's not a "this is what's we're left with" situation. > Although parts of Powershell are open source now, I suspect the mere existence of WSL means that Microsoft understands it has more to gain from compatibility with the rest of the world (Bash is nigh-everywhere) than imposing their particular philosophy on people. Yeah, let's just drag everything down to the lowest common denominator. > (See also, Apple's decision to adopt UNIX underpinnings) Which is sad, since it could have been so much more. The Unix way of doing things, isn't the be all and all. https://www.youtube.com/watch?v=rmsIZUuBoQs https://news.ycombinator.com/item?id=16813796 |
There are advantages to having a pipe based on structured data, but that also means you have to know what structure to expect at ever step of the way and whether or not other tools can work with that structure. There are also tons of little quirks about Powershell; enough so that I eventually just started writing most stuff in C# and then just using the Powershell scripts as glue.
Passing text means that every single one of the thousands and thousands of unix cli tools that accept stdio will work in your pipeline.
I think this industry needs to get away from the terrible/horrible, absolute thinking. Most tools have positive and negative