言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

キリ

Folktale は最初 telnet から接続するあたりまでは調子よくトントン拍子に進んだのだが、さて実用的にこれで ComSwiki で使おうという段になると、あまりのもどかしさにイライラする。Squeak 以外のソフトが全然コマンドラインからでも使えるのだから、これは単に慣れの問題に違いない。恐らく修行すれば快適になるはずと自分に言い聞かせるが、なかなかどうしていつまでもよそよそしい感じは否めない。

大きく分けると補完とエラー処理の問題になると思う。つまり、ある作業をしようと思った場合選択肢を絞るための補完(Sqeuak の alt-q のように余計な選択肢を増やすだけの補完はあまり役に立たない)。そして作業が間違っていた場合のエラー処理。もちろん SqueakGUI では洗練されたブラウザとデバッガがある。でもコマンドラインで使うとなれば、やっぱり bash のような立派な補完がないとなかなか使えない。

Squeak 用のコマンドシェルを作っていると、Read Eval Print Loop のかなりの部分が暗黙の画面を仮定していて、標準 GUI 以外で操作する便利機能を作るには結構トリッキーな手を使う必要がある(例えば file in での文法エラーは有無をも言わさず画面に表示されてしまう)。だからコマンドラインに関わらず新たなインタフェースを追加する事で、こういう暗黙の仮定が浮き彫りになってきれいなシステムになっていくんじゃないだろうか。

ダイアルアップで操作するなんていうマニアックな目的じゃなくても、操作が対話的というのは記録として残すのに便利だし、眼の見えない人に対するインタフェースにもなる。うまく作ればコマンドラインもまだまだ発展の余地はあると思ったりもしています。

Folktale の変なところの一つに、履歴として残るのが入力したコマンドではなく、結果のオブジェクトだという点がある。プロセスリストもその時点でのプロセスそのものを WeakArray に入れたものが返るし、エラーが起きればエラーオブジェクトが残る(これはあとでデバッグする事を予定している)。意識してそうなったわけではなく、Squeak の普通の操作が出来るように考えて自然とこうなってしまったのだが、後で考えると結構変で、割と気に入っている部分だ。

しかし、楽しいけどなかなかキリのない作業だ。