sl コマンド

最近、なぜか sl コマンドのことが話題になる。探してみると1997年に社内向けに書いた記事があったので載っけておこう。


懐かしのSL…

f:id:uta46:20191223170432g:plain
sl command

過日、何年ぶりかで fj.unix を覗いてみると、sl コマンドが話題になっている。と言ってもわからない人が多いだろうから説明しよう。Unix に、ls というコマンドがあって、ファイル名のリストを表示するために使われる。MS-DOS の dir に相当するもので、文字端末を主なユーザインタフェースとして使用する Unix では、頻繁に利用される一般的なコマンドである。ところが、急いで入力していると、たまに右手と左手の同期に失敗して、ls と打とうとしたところが sl と打ってしまうことがある。普通の Unix には sl などというコマンドは存在しないので、


sl: Command not found.

というエラーが表示される。このとき sl というコマンドが本当にインストールされているとそれが実行されるのであるが、何が起こるかというと、画面の右から汽車の絵が現れて、それが画面を横切って左から去って行く。当人は、ls コマンドを実行したつもりでいるので、何が起こったのかわからず呆然とその汽車が走り去るのを見送ることになる。

説明するまでもなく、sl とは SL すなわち Steam Locomotive を意味しているのだが、意外な登場の仕方をするために、その関連を理解するのにしばらくの間、ともすると数日間もかかって、理解した時に思わず苦笑してしまう、というのがこのコマンドの狙いである。

さて、この sl コマンド、実は僕が10年ほど前に fj.sources に投稿したものである。JUNET が立上りはじめの時期で、まだ日本語での記事の形式も確立していなかったころだ。fj での話では、今となっては誰が作ったのかわからない謎のプログラムということになっているので、謎のままにしておくのがよかろう。某書で Shift JIS の考案者であることを暴露されてしまった某氏も、余計なことをするもんだと思っているに違いない。

実を言えば sl コマンドの発想はオリジナルではない。それ以前に職場の先輩が、csh の alias 機能を使ってやはり sl というコマンドを作っていた。当時は VT100 というキャラクタ端末 (もちろん日本語など表示できない) が全勢の時代であり、その VT100 の制御文字列を使って、列車に見立てた文字列がコマンド入力行の右端から現れてプロンプトのところに到着するような仕様だったと思う。ログインし忘れて帰る迂闊者は .cshrc にその alias を入れられるという刑にあう。ひどい場合には、プロンプトがその sl の出力に置き換えられ、コマンドを実行する度に列車が帰って来るのを待たねばならない。当時は端末と言っても 9600bps での接続なので、極めてのんびりとした運行である。

思うに、当時こういうくだらないプログラムが周りには溢れていた。別の先輩が社員旅行に行った時に作ったという「グァムの想い出」というプログラムは、起動すると楕円形を崩したような図形が画面一杯に表示され、それがもぞもぞとうごめくというものだ。ナマコなのである。文字端末なのでリアリティには欠けるため、説明を聞かないとわからないが、文字だけの表現が妙に想像力をかきたてる。後日、X ウィンドウが普及したころ、この人がやってきて見せてくれたプログラムは、正方形が不規則な周期で大きくなったり小さくなったりを繰り返すというものだった。
何かと尋ねると、1/f ゆらぎだという。人間の想像力の前には、ビットマップディスプレイというテクノロジーはその程度の意味しか持たない。

最近感じるのは、このような余裕というか、遊び心というか、そんなものが少なくなっているんじゃないかということである。多分いくつか理由があるんだろう。歳をとったために最近の遊びの感性について行けなくなったのだろうか...これはあまり認めたくない。みんな忙しくて遊ぶ暇がないのか。そんなことはない。忙しいからという理由でできない遊びなど、時間ができたところでできるものではない。以前、ある友人が「コーヒー消費量不変の法則」というのを提唱した。計算機が計算しているのを待つ間ユーザはコーヒーを飲むが、処理速度が速くなったからといってコーヒーの消費量が減るかというとそんなことはなく、いつの時代も所詮人間がコーヒーを飲むのに適当なだけ計算機の時間を使うのだ、という法則である。サラリーマンの仕事量も時代によって変化しない。

物事が複雑になりすぎたということはあるのだろう。Version 6 の Unix は、わずか6000行だった。ソースコードがあったところで、今の BSD では読もうという気にならないのもわかる。とは言え、やはりつまるところ気持ちの問題であろう。遊ぶための題材なら今の方が格段にたくさんあるのだ。上で紹介したようなプログラムの話を聞いて、何の役に立つのかという疑問を抱いたら、もう駄目だ。思っても言わないのではなく、思い付きもしないようにならないといけない。役に立たないものも作れないのに、役に立つものが作れるものか。

f:id:uta46:20191223170700g:plain

(この写真は当時4歳くらいの長男が Centoris 650 で遊んでいるところ。マウスを横向きにして使っている。隣には Big NEWS が置いてある。)