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