伊藤です、気持ちはおさまってきたがモヤモヤは残ります。

常識の線では
文字列のパラメータ
各アプリ内で行う Argv の解釈処理
(文字列処理を取り上げてもシェルの処理能力は貧弱、Perl 時代なのも
納得)
オブジェクトがそろった後、本体が動く。

ファクトリパターン?
(オブジェクト互換性は人しか解らないのだから書くのはしかたがない)
ディスク→ File>>IO →そのまま、アダプタを被せてもよい
Clipboard→ String>>TextStream →アダプタを被せる
以下同様
、
出来た(偽)IOクラスを使う。

もっと何かできそうなところ
○1 Argv の解釈の層 
文字列→オブジェクトの似たような処理を各アプリでやっている。
アプリの仕事か貧弱なシェルの肩代わりか性格がよくわからない。
○2 アダプタは実装が薄くてスカスカだ。
メソッドの変名が主な仕事

オブジェクトの互換性は使用する側の都合で決まる。
互換オブジェクトを与えると、そのまま動くような方向性は見えるか?

キーボードとディスクファイルを互換にしてしまう stdin の魔術は
クリップボードにはなぜ効かない、世の中不公平。
InputTextStream になり得る候補は他にもある、ソケット、仮想記憶
渡しのファイル、ウィンドウハンドル(DDE)...
元の疑問に戻ってしまった。
オシマイ 13:46 1999/12/22