The biggest difference between PS and bash is that PS streams are streams of objects, not necessarily text
That's very interesting. It's good to see Microsoft finally bring some modern concepts into their CLI. I have not taken the time to use PowerShell yet because I switched away from Windows some years ago and just haven't seen the need yet, but you give me a compelling reason why I might want to at least play around with it.
Now, based on your example, these "object" streams you speak of are still a certain class of object. They may be more than text but they are still something the shell has to be able to interpret (for property names, etc.), correct? Or will the I/O operators (pipe, redirection, etc.) pass _any_ data between processes (`cat movie.mpg | do_something`, for example) but the `where` command is limited to just scriptable objects?
I am interested in the behaviors of other shells because I am writing a shell of my own, for the web. The idea of a "web" shell is that it works with URIs and HTTP streams instead of simply local resources. It is designed as a webapp so you interact with it with a browser, follows a file hierarchy pattern similar to what you see in most Linux distros, and is modular so that additional transports (ftp, ssh, etc.) could be installed. It's nearing its first beta release so I invite you to have a look at it: IOVAR Web Shell.