Tweet

コマンドラインの豊穣

昔いた会社でのこと.

M 嬢がプログラミングに興味を持ち,K&R 本をせっせと読んでいる. そして,一言.

摂氏と華氏の変換ができたからといって何が面白いんだ.私がやりたいのはこんなことじゃない!

また,昨晩,チャットで

文字端末に * を三角形状に出力する C のプログラムが,実際に何の役に立つんだ

と尋ねる I 氏.

おそらく I 氏の場合は,いまどきのコンピュータから入った人なのだろう. おそらく脳内には,「プログラム=ウィジェットを駆使したウィンドウベースのアプリケーション」という図式があるに違いない. 「文字端末はデバッグ出力」ぐらいにしか思っていないのかもしれない. が,M 嬢の場合,それまでに FreeBSD をいじってきていて,文字端末に対する偏見は特に無いようであった.

両者とも「自分のやりたいこと」と「自分のできること」の間のギャップに悩んでいるわけである. I 氏の場合,C のお勉強の次にはきっとアルゴリズムのお勉強に入るのだろうけど,クイックソートをマスターしたところで脳内にあるギャップは埋まらないだろう.

そこで GTK+ などのツールキットを使ったウィンドウプログラミングに進む,という解もあるのだろう. が,私としては

UNIX コマンドライン環境をマスターする

というあたりが良いのではないか,と思う. 具体的にはシェルスクリプト・パイプライン・リダイレクトといったあたり.

ある日,M 嬢がデジカメから取り込んだ画像を整理してたときのこと. 手作業でごちょごちょやっているので,横から私が数行の「.jpg ファイルに対し,djpeg + pnmscale + cjpeg でサムネイルを一括生成するシェルスクリプト」 を書いてやったところ,エラく感動していたことがあった. ウィンドウベースのアプリケーションならば,アプリケーションを起動して

  1. 画像を開く
  2. メニューからリサイズを実行
  3. 画像を別名で保存

を延々と手作業で繰り返さなければならない. コマンドライン環境はウィンドウ環境に劣るものではなく,ウィンドウ環境よりもパワフルなことも多いのである.

あと,プログラミングの課題に毛が生えたようなプログラムでも,他の UNIX ツールと組み合わせることにより一人前の働きをする. つまり,コマンドライン環境により「やりたいこと」を「できること」のほうに引きずり降ろすことができるわけである.

COMMANDLINE 2.0 とでも名乗りますか?


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2007-01-02 (火) 19:27:21 (3999d)