コマンドラインの豊穣 †昔いた会社でのこと. M 嬢がプログラミングに興味を持ち,K&R 本をせっせと読んでいる. そして,一言.
また,昨晩,チャットで
と尋ねる I 氏. おそらく I 氏の場合は,いまどきのコンピュータから入った人なのだろう. おそらく脳内には,「プログラム=ウィジェットを駆使したウィンドウベースのアプリケーション」という図式があるに違いない. 「文字端末はデバッグ出力」ぐらいにしか思っていないのかもしれない. が,M 嬢の場合,それまでに FreeBSD をいじってきていて,文字端末に対する偏見は特に無いようであった. 両者とも「自分のやりたいこと」と「自分のできること」の間のギャップに悩んでいるわけである. I 氏の場合,C のお勉強の次にはきっとアルゴリズムのお勉強に入るのだろうけど,クイックソートをマスターしたところで脳内にあるギャップは埋まらないだろう. そこで GTK+ などのツールキットを使ったウィンドウプログラミングに進む,という解もあるのだろう. が,私としては
というあたりが良いのではないか,と思う. 具体的にはシェルスクリプト・パイプライン・リダイレクトといったあたり. ある日,M 嬢がデジカメから取り込んだ画像を整理してたときのこと. 手作業でごちょごちょやっているので,横から私が数行の「.jpg ファイルに対し,djpeg + pnmscale + cjpeg でサムネイルを一括生成するシェルスクリプト」 を書いてやったところ,エラく感動していたことがあった. ウィンドウベースのアプリケーションならば,アプリケーションを起動して
を延々と手作業で繰り返さなければならない. コマンドライン環境はウィンドウ環境に劣るものではなく,ウィンドウ環境よりもパワフルなことも多いのである. あと,プログラミングの課題に毛が生えたようなプログラムでも,他の UNIX ツールと組み合わせることにより一人前の働きをする. つまり,コマンドライン環境により「やりたいこと」を「できること」のほうに引きずり降ろすことができるわけである. … COMMANDLINE 2.0 とでも名乗りますか? |