魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

なぜ Prolog は死んだのか

1992年の第五世代コンピュータプロジェクトの終結により Prolog への注目も終焉した。わが国はコンピューター産業にとって最も重要といえる基本ソフトウェアの開発に遅れ、苦しい立場に追いやられていた。そこで一発逆転の策として、IBM に支配されていた第四世代を飛び越えた次の世界へ逃れようとしたのだ。そして人々は第五世代では人工知能が実現され主役となるに違いないと考えた。

その第五世代コンピュータプロジェクトの基盤言語として Prolog の採用を掲げたため Prolog は大きな注目を浴び、プログラミング言語のスター街道まっしぐらとなった。 そして入門書が数多く出版され、誰もが Prolog の学習に向かった。このプロジェクトは国策として数百億円が投入されたが、10年ほどで頓挫することとなった。

Prolog といえば「人工知能」のための言語というレッテルが貼られたままこの言語は休眠してしまったのだ。2014年の現在になっても Prolog といえば人工知能開発用の言語であり、人工知能を開発するなら Prolog が役に立つかも知れないが Lisp があるじゃないか、Lisp のほうが実用的なのであるという認識なのではないか。

どちらにせよ、人工知能を開発でもしない限り Prolog をもちだす必要などないだろうというのが一般的認識なのではないだろうか。すると、そもそも人工知能を作らなければならないニーズなど実務世界にはそんなにあるもんじゃない。もちろん、ごく一部には Prolog を本格的に利用している人たちはいるだろう。しかし、大衆にとっての Prolog は死んだといってもよいほど注目の外にあるのではないだろうか。

 Lisp だって人工知能開発専用言語だと定義してしまったら、そんなに人気者などにならなかっただろう。実際は Lisp は汎用言語であり、ポールグレアムなどによる仕事によって EC 向けウェブアプリケーション開発言語としてのアドバンテージに注目が集まったのは記憶に新しい。そこでは Lisp という言語の選択ということだけで競争力が得られることが証明されたのだった。

 では Prolog はどうなのであろう。人工知能に拘らない実務的応用分野に Prolog を使用することのアドバンテージは何かあるだろうか。ポールグレアムLisp 採用以前には Lisp を業務アプリケーション開発向けに使うことの優位性について気づいていた人たちはいなかったのと同じように、ひょっとしたら Prolog を使うことが成功に繋がると気づいている人たちがいないだけなのではないだろうか。その可能性はあるだろう。

Prolog の処理系開発者の意識にも問題があるかもしれない。処理系開発者が Prolog人工知能研究ための言語であり、そのための処理系を提供するのだという使命感一色であるとしたら商用的な業務アプリケーション向けに適した機能が実装されにくいという環境にあるのかもしれない。

Prolog が生き返るためには Prolog 版のポールグレアムが求められるのかも知れない。きっとそうだろう。ぼくは Prolog には業務アプリケーションへの可能性が隠れているのではないかと思っている。もちろん、ただ Prolog でも可能だというのでは意味がない。Lisp のときと同じように明確なアドバンテージがなければ、わざわざ Prolog を業務アプリのために使おうとする人は現れることはないだろう。

ぼくは、小さなアプリケーションだけど、文字列処理(記号処理)に使う予定だ。また、FX 向けのロボット開発にも使えないかと検討している。Alice(Artificial Lovely Intelligence)が Prolog でできるのなら最高に楽しいことだが今のところぼくにはその自信がない。