空想犬猫記

※当日記では、犬も猫も空想も扱っておりません。(旧・エト記)

プログラマの階段

構文木をそのまま記述できる Lisp をいじってたら,プログラミング言語というのは,たんにシンタックス・シュガーを,あれこれ,もてあそんで,味付けしてるだけであって,どれも大差ないんだなーと思えるようになってきた。

Ruby が Matz Lisp と呼ばれたり,JavaScriptLisp disguised as C と呼ばれたりするのも,ようやく「そうだよねぇ」と知ったかぶりせずにうなづけるようになった。このことを理屈で知るのは,それほど難しくないことなのかも知れない。けれど,さいきんそれを「実感」できるようになったことが嬉しい。

プログラマとして「言語の仕様を覚える」ことと「標準ライブラリを上手に使いこなす」ことは,最初に目指すべき到達点のひとつだと思う。もちろん,その知識を使って,現実の問題を解決することが本来の目的であることには違いはないのであるが,そこで言語についての勉強をやめてしまったら,しょせん,その人が書いたコードは,吉野家の牛丼や,マックのハンバーガーレベルに留まってしまう。

実際に書いたコードが,どんな構文木に変換されるのかまで知っておけば,そこからさらに,一歩進めそうな気がする。「プログラム」という作業は,まだまだ奥が深い。きっと,もっと進めば,コードをポエムみたいに読めるようになったり,あるいは,コードを通して,人と分かりあえるようになるかも。理想をいえば,ソースコードで侘び寂びを表現できる域まで達したいものだが…。

現在でもときどき,ある特定の人のコードを見ると,何故か不快な気持ちにさせられることがある。そういう言葉にできない感覚も,いつか理解できるようになることがあるだろうか。

私はさしづめ,サイゼリヤあたりにいるような気がする*1

*1:大きく出すぎたかも…