Rubyのチカラ

夜中に松江のホテルの部屋で去年の人工知能学会全国大会の招待講演ビデオ配信「Rubyのチカラ」を見ました。

NaClさんがどういうつもりでまつもと氏を雇っておられたか、という話をその日に伺ったので、「NaClさんの業務にどう役立つか」という観点はおそらくRubyの発展過程で強く意識されたであろう、と思いました。

そして言語オタクのまつもと氏が人工知能の講演じゃないことを申し訳なさそうに語りはじめた、昨年6月の人工知能学会での講演。Rubyで導入された機能はすべて過去の言語の二番煎じだ、と謙遜しつつも、「単純さよりも自然さが重要」という言語設計のコンセプトがじっくり語られるのを聞いて、私にはある考えが浮かびました。

プログラミング言語Rubyは、プログラマーに「自然なコーディング」を許容するために設計された「人工知能」なのだ、と。

どこでどういう省略記法を許すか、という規則を実装したパーザーはルールベースで作り込まれているはずなので、言語を作っている側は人工知能だと思わないで作っているのでしょうが、実務の文脈でいかに自然な記述を許容するか、一つ一つ職人芸で仕様を選択した結果は、「高度な手作り人工知能」と言えるのかも。

人工知能としての自然言語処理技術では「人間がやりとりする言語のコーパスを集めて、それをどう処理したらいいか検討する」ということが行われるわけですが、「プログラミング言語が使われるシステム開発の現場のコーパスを集めて、それを効率よく記述できるプログラミング言語を設計する」ということがもしきちんと行われたら、Ruby のような言語はもっと工学的に設計できるのかも知れません。そのときに重要なのは「集めるコーパスにリアリティがあること」ではないでしょうか。

そんな視点を持ちつつ、私もすっかり固くなってしまった頭を柔らかくしながらプログラミングの勉強を続けたいと思ったのでした。