"Practical Common Lisp"の読書メモでも書いたが、一口に「プログラミング」と言っても本当に範囲が広くなってしまったなぁと思う。
数学パズルを解くための「プログラミング」、
Webアプリを構築するための「プログラミング」、
高負荷に耐えるTCP/IPサーバーを構築するための「プログラミング」、
SQLを駆使する「プログラミング」、
画像処理のための複雑な数式処理を行う「プログラミング」、
DBやOS内部でのデータ処理に使うアルゴリズムを実装するための「プログラミング」、
OSのGUIウィジェットを活用したGUIアプリ構築のための「プログラミング」、
e.t.c...
なので、「プロのプログラマなら○○くらい出来なくちゃ・・・」という語り口が無効になりつつある。
ただ、いずれも根っこは一緒。
「コンピュータとインタラクションしたい」
これは変わらない。
だからこそ、特に初学者・入門者レベルであれば高尚かつ詳細な解説よりは、「これだけ知ってればコンピュータとインタラクションできるヨ」と最低限度のコマンド・関数・マクロ・機能を教え、非実用的でも良いので、短くてすぐ試せるサンプルを沢山提示すること。そちらが重要ではないだろうか。
本当にプログラミングの楽しさを知ることが出来れば、ごくごく基本的な知識だけでも、後は自分で工夫するなり調べるなりして、自分なりの「コンピュータとのインタラクション」を実現するためのプログラミングを始めるだろう。
Lisperは、それを分かっていないように思える。