I, for one, am quite glad that my shell does not pipe objects. Text-based transports have the wonderful property that they are suspend-able (i.e. save output to a file, transfer them to another machine load them from the file; something you can't do with objects without serialization) and consistently represented on the console and for the receiving process.
Processes on my machine send and receive arbitrary byte streams. I have specialized tools for communicating with servers with specialized protocols. If you really want a shell AND a scripting language all at once, use something like IPython: http://ipython.scipy.org/moin/
1. Syntax that doesn't suck
2. Higher-than-text-level abstraction
Or, in short
ps OUTLOOK | kill
Ie, no grepping. Yes, that's an actual posh command, as there's aliases for common unix commands.