XMLパイプ
stdinからXMLを受けてstdoutにXMLを吐くプログラムを考えたことがある。GNU Toolsの多くが暗黙の前提としている行単位の処理をXML要素を単位として行えば良いのではないかというものだ。毎回パースするのは無駄なのでパース済みのXMLオブジェクトを標準では一緒に受け渡しした方が良いだろう。もちろん、シェルもXMLを理解して最後に利用者に返すときにpretty printする(XMLのまま吐き出すオプションも必要)。
利点はあらゆる既存のUnix的ソフトウェアに適合させることが出来るところだ。既存のパイプにも、ソケットの上にも載せて送ることが出来る。XMLを解釈出来ない既存のソフトウェアについてはパース・シリアライズするラッパーを通す必要があるが。
さらにはWindows的ソフトウェアへの拡張も考えられる。パイプの代わりにクリップボードを使うというのはどうか。例えば右クリックのメニューに「フィルターとして実行」というものを追加する。「フィルターとして実行」ではクリップボードの内容を標準入力として受け取って、最後に標準出力の内容をクリップボードに書き出すわけだ。Unixではコマンドラインの横方向に一次元で並んでいるコマンドを時間方向に並べたものに相当する。
パイプの拡張としてはid:m-hiyamaさんのJanusというのも読んだことがある。ちょっと申し訳ないがJanusは機動性が低すぎる。少なくとも私は使わないと思う。*1。