UCLAのクラス
https://ccle.ucla.edu/course/view/15W-COMSCIC137A-1
というクラスが進んでいます。ページにはToddの名前しかないようですが、実はAlexとAlanも共同で教えるというクラスになっています。主眼は、将来のプログラミング言語デザイナーのために、実際に素早く言語を作ってみるという経験をすることによって、自分のツールを変更、改良することを恐れずにできるようになってもらうというコースで、10週間のコースのうちに関数型、論理型、オブジェクト指向という3種類の言語を作ってみるというものです。どうやら大学側の手違いもあり、100人以上が受講するということになっています。Alexはかなり準備に時間を使っていたのでクラスの進め方は比較的しっかりしている、のですがそれでも私なぞが時々顔を出しているのは、Alanが時折放つ混ぜっ返しや薀蓄があるからではあります。先週私がいない時にはどうやらAlanとToddが静的型と動的型の言語のメリットとデメリットについてかなり熱くやり取りをしたようです。以前似たようなクラスをやっていた時にも、Alanは「静的型と言っても何かがStringであるとかNumberであるとかいうことがわかったところでどうということはない。sin関数を型から探せたりしないものなのか」というようなことを言っていたのですが、Toddは「言うこともわかるけど...」という姿勢ではありました。でも、今回はどうやらToddも本気で反撃するつもりになったようで、Toddも「いやいや、それは静的型というものをまったく理解していない人がいうことだ」と言ったり、そこでAlexがさらにToddにいろいろと言ったりといろいろ楽しくやっていたようです。
学生にとっては、大家に対してもどんどん物をいうものの、フレンドリーなところを決して失わないで議論を戦わせる姿をみせ、かつ言語設計に関しての見方をいろいろ知ることによってドグマに陥らないということで、とても有意義なクラスだと思います。