mishimaの日記: ざれごと
昨日、「でぶ姦(Debian Conference)」の最中、
ずっと考えていたことをメモしてみる。
ここらへんに関しての話なんだが、UNIXでのツールの連携と
perl などのスクリプト言語の親和性が宜しくないことは以前指摘された。
では、親和性の良いスクリプト言語とは一体どんな仕様であるべきか?
こういうスクリプト言語はどうだろう:
HOGE.xxx というファイルは次のような実行スクリプトだ。
#! /usr/local/bin/xxx
function HOGE( int index, string host, bool test ){
...
}
このとき、/usr/local/bin/xxx というインタプリタ内で
HOGE( 0, "localhost", true );
という呼び出しを行うのと、コマンドラインから
% HOGE.xxx --index=0 --host=localhost --test
という呼び出しをするのは等価である(同一の処理をする)。
もちろん、xxx 内部で、コマンドを関数にすることもできる。
つまり、コマンドと関数が同一の形になるわけだ。
コマンドが xxx の実行スクリプトだった場合、
それはコマンドとして実行されず、関数として呼んでしまうことにすれば、
いちいちプロセスが生成されないので処理はもっと軽くなる。
オブジェクトの受け渡しは、オブジェクト操作用のプロトコルを用意し、パイプで行えばよい。
むう。現状の問題点は、
コマンド:コマンドライン引数、環境変数、標準入出力、エラーコード、シグナル
関数: 関数引数、帰り値
このうち、コマンドライン引数=関数引数、を満足させたに過ぎないんだよな。
残りをどう対応付けるかを考えなければ。