プログラミング言語の変化は遅い
では,ここまで進化してきたプログラミング言語は,未来においてどのようになるのでしょう。正直なところ,分かりません。しかし,未来が過去の延長にあるのなら漠然とした予測はできるかもしれません。もともと未来を予測することは大変難しいことですから,私がプログラミング言語の未来について語ったことが本当にならないからといって責める人もいないでしょう。
遠い未来には,現代の我々が考えるようなプログラミングは不要になるでしょう。コンピュータは人間が解決したい問題を理解できる十分な知性を持つようになり,自然言語,図,ジェスチャーなどからの指示により,必要な情報をデータベース(または未来のインターネット)から取り出したり,加工したりできるでしょう。また,指示があいまいであれば,それを明確にするためにコンピュータが逆に人間に質問したりすることでしょう。その時代にはコンピュータは問題解決のための相談相手であり,もはや計算する機械でもなければプログラミングの対象でもないでしょう。それまでに人類が絶滅しなければ。
しかし,そこに至るにはまだまだ時間がかかりそうです。それまでは我々は引き続きプログラミングを続けるでしょう。では,どんな言語で?
プログラミング言語の歴史を振り返ってみて分かることは,プログラミング言語がゆっくりとしか変化しないことです。日進月歩どころか「秒進分歩」と呼ばれる進歩の速いコンピュータ業界にあって,10年,20年という単位で変化するプログラミング言語は異常です。もっとも外の世界からみれば,コンピュータ業界の変化の速さの方が異常ですが。
人的な要素が大きい
プログラミング言語の変化がゆっくりなのは,プログラミング言語の性質を決める要素が機械ではなく人間であり,人間はあまり変化しないことによります。コンピュータの進歩はより人間に合わせる方向でプログラミング言語を進化させてきましたが,人間の方が急速に変化しない以上,どこかで安定し,変化の速度が遅くなります。プログラミング言語に関して言えば,急速に変化したのは70年代までで,80年代以降はときどき新しいアイデアが導入され,少しずつ変化するという段階に到達しているように思えます。そういう意味では,プログラミング言語というのはコンピュータ・サイエンスの中で最も成熟した領域であると言えるかもしれません。
ですから,20年先の言語は今ある言語とそれほど変わっていないのではないかと予測できます。また,今ある言語のうちのいくつかはまだ生き残っていることでしょう。Lispとか。いくつかの新しい概念が,今のオブジェクト指向のように流行になっているかもしれません。しかし,オブジェクト指向が60年代末には概念としてほぼ完成していたにもかかわらず,広く使われるようになったのは80年代後半から90年代にかけてであったことを考えると,その概念はもしかしたらすでに一部では知られているかもしれません。現代を見回すとそのような概念になりそうなのは「アスペクト指向」です。20年後には大流行しているかもしれません。
50年後になると予想はかなり難しくなります。私が考えつくのは二つの可能性です。一つは先にあげたようにコンピュータが進歩してプログラミングのない世界が実現すること,もう一つは,コンピュータが成熟してしまい,ある程度で進歩が停滞してしまうことです。もちろん停滞していると言っても現代よりははるかに進んでいるでしょうが,それでもやはりプログラミング言語は今とそれほどは変わっていないかもしれません。
プログラミングとプログラミング言語を愛している私としては,プログラミングがない世界は来てほしくないような気もします。もっとも私は生きてそんな時代を見ることはないかもしれません。まあ,たとえそのような時代に生き残ったとしても,未来の超コンピュータに「コンピュータ,Linux 20.5をエミュレートせよ」と命令して,古めかしいプログラミングを楽しむという手は残されていることでしょう。
最後に
『まつもとゆきひろのプログラミング言語論』,後半ではプログラミング言語の系統図から始めて,プログラミング言語の設計者の立場から,プログラミング言語の現在と未来を概観してみました。
読者の皆さんのほとんどは自分の言語をデザインすることはないかもしれません。しかし,言語開発者(の一人)から見ると言語のこんなところが重要なんだな,ということを感じていただけたら幸いです。