例えば、「あるディレクトリ配下にある、 html という suffix を持つファイル全てを削除する」という仕事があるとしよう。GUI 上でこれをやるとすると、「対象ディレクトリをファイルビューアで開き、 html という suffix を持つファイル全てをマウスで選択。削除を実行。その後に配下のディレクトリがあれば、適宜それを実行する」という作業になるが、 Unix で同様の仕事を行うとすると find target_directory/ -type f | grep \.html$ | xargs rm
という指示をタイプするだけで済む。
"GUI なんてダメで、CLI は素晴らしい"などと言うつもりはない。例えば MS Windows には「各ディレクトリを指定の文字列を探して検索」という機能があるし、それで一括して検索後に削除すれば、 CLI での作業と比べてかかる時間がさほど変わらない。また CLI 上でも、各ディレクトリにいちいち移動し、ファイル一覧を表示して削除ファイルを自分の目で選んでいたら、当然時間はかかる*1。
インターフェースがどうであれ、使う人間によって作業効率は大きく変わる。これだけコンピュータが普及した現在にこそ、我々はこの当たり前の事実をもう一度振り返る必要がある。
コンピュータにも問題はあるかもしれない。しかし、その問題がある(かもしれない)コンピュータを使って、もっと効率的に作業している人がいることを忘れてはならない。
情報化というのは主に効率性を上げるためのものだと思っていたのだが、どうも私の周りにある"コンピュータの使い方"を見ていると、本当にそれは正しいことなのかと疑念を持たざるを得ない。
先程も書いたが、「だから GUI はダメなんだ」とは言わない。CLI でも同じようなことはある。
cd software_dir && cvs -ex -D tomorrow
MySoft && tar -cvzf MySoft.tar.gz MySoft && rm -r MySoft && scp
MySoft.tar.gz server:~/software_directory
という長大なコマンドを叩いている。これはある Unix User*2 の実経験から抜き出した事例だが、多かれ少なかれ、誰にでもこのような経験はあるのではないだろうか。
我々は何のためにコンピュータを使っているのだろう。
キーボードを叩くため ? それならコンピュータを使う必要はない。タイプライターの打鍵感は最高だ。
マウスを滑らしたりクリックするのが好き ? "クリック猿"と呼ばれたいなら止めはしないが、あまり健全な趣味とは言えない。
タブレットの上でペンを滑らすのが病み付き ? イーゼルを買って外でキャンバスに向かってみることを勧める。
コンピュータは文句を言わない。
人間だったらうんざりするような円周率計算を何百万回ループさせても、ただ黙々と計算する。冒頭であげたファイル検索についてもそうだ。数十ディレクトリ以上であれば、それをひとつひとつ覗くのは人間にとっては苦痛でしかないが、コンピュータは例え1000個以上のディレクトリがあっても文句を言わない。
コンピュータは正確だ。
人間は単純な作業を繰り返し繰り返し行っていると必ず飽きる。完璧主義者でミスをひとつも逃さないと評判になっている人間がいるとしよう。その人に「あなたとコンピュータと、どちらが正確だと思いますか」と聞いてみるとしよう。「私の方が正確です」などと言える人がいるだろうか ?
コンピュータは高速だ。
1:1 で対話する限り、現在のコンピュータが人間より遅いことはありえない。「そんなことはない。うちのパソコンは遅いよ」と言う人がいるかもしれない。だが、単純に比較して欲しい。コンピュータがあなたの指示を待っている時間と、あなたがコンピュータの処理終了を待っている時間、どちらの方が多いだろうか。半導体性能が凄まじいインフレーションスパイラルにのってから、ボトルネックになっているのはいつも人間の方だ。
人間が動いてはいけない。人間が働いてはいけない。人間には人間にしかできないもっと大切な仕事があるはずだ。そして、あなたに与えられる時間は限られている。あなたが、自分の時間をあなた自身の本当の仕事に目一杯当てたいと考えているのなら、その作業は誰かにやってもらうしかない。
人は、独りでは何もできない。
あなたの隣には"文句を言わず、正確に、高速に"あなたの作業をサポートする秘書がいる。面倒な作業は可能な限り秘書に任せることだ。指示の仕方さえ間違えなければ、その秘書は文句も言わず、正確かつ高速にそれを処理してくれる。あなたが使える時間の内の半分を費やす作業を秘書に処理させれば、それはあなた自身が 1.5 倍の時間を得たことと同じなのだ。
また、その秘書は労働報酬に対する欲求が極めて低い。月に1000円にも満たない電気をあげるだけで充分だ。こんな秘書をあえて使わない理由があるだろうか ?
最初の 1回はいいかもしれない。だが、次も自分でやるのだろうか。次の次は ? 自分の作業が増えてやりきれなくなったら、睡眠時間を削ってでも ?
何度でも書こう。
人は、独りでは何もできない。
コンピュータとの付き合い方も全く同じだ。コンピュータに任せられる作業を、わざわざ自分でやる必要はない。コンピュータは幾ら作業を投げても文句を言わず、正確に、高速にその作業をこなしてくれる。
私自身に問うたことを、今あなたに問いかけよう。
あなたは何のためにコンピュータを使っている ?
あなたが本当にしたいことは一体何だ ?
今のコンピュータは本当に色々なことができます。その無数とも言える選択肢のなかで"私がやりたいこと"って一体何なんだろう、と考えたのがこの文章の発端です。
元々 wids.net は私自身の殴り書き文章の公開を目的としていましたが、最近は Ruby やら何やら、色々あったせいでまとまった文章の公開はありませんでした。また、文章を書くモチベーションが落ちていたのも自覚していました。色々と書きたいことはあったんですが、いざ書こうと思うと書けないという状況が続いていました。
結局のところ原因は HTML にあったんだと、今ではそう思っています。
現在は環境を整えたせいで、ほとんどプレーンに近い文書からコマンド一発で HTML を生成できるようになっています。状況がそういう風に変わった後に書いたこの文章は、本当に気楽に、のびのびと書けました*3。環境整備のためには勿論時間が必要でしたが、今ではそのために費やした時間を、先行投資と考えることができるようになっています。
私が書きたかったのは文章であり、HTML 文書ではありませんでした。
現在、私は"HTML 文書を書く(生成する)"という作業をコンピュータに丸投げしています。
あなたはどうですか ?