未来に求められる言語の姿
ITの世界ではときどき、1年後、5年後、10年後といった近い将来を占うことが行われる。そんなときは、これまでの歴史を振り返ってみると、意外と見えてくるものが多い。いわゆる"温故知新"である。まつもと氏はコンピュータの世界においては、歴史の振り子は常に、
・集中vs.分散
・性能vs.生産性
・静的vs.動的
・正確さvs.柔軟さ
のどちらかの側に振れているという。「昔は組織には、大きなホストコンピュータが1台しかなかった。人々はそのまわりに電話回線を巡らせて、周囲に端末を置いた(集中)。でも1台のマシンの性能には限界がある。だからホストコンピュータの性能を上げることよりもその価格を下げるほうにトレンドが傾いた。すると台数が増えて今度は分散するようになり、そのうちにWebが登場した。言うなればブラウザは、昔のホストコンピュータのまわりにあった端末のようなもの。Amazonのクラウドなんてまさに"集中の中の分散"を象徴している」(まつもと氏)。
言語の世界も同様だ。コンピュータの性能を上げるのではなく、言語で生産性を高めていこうとしたからこそJavaやRubyが生まれた。歴史の振り子が次に振れていく先を見つめれば、未来にあるべき言語の姿は自然と現れてくる。
まつもと氏は「新しいぶどう酒は新しい皮袋に、古いぶどう酒は古い皮袋に」という聖書の言葉を引用し、新しい時代はやはり新しい言語が必要になると説く。「大規模分散と高抽象度、これが新しい言語のポイントになる。マルチコアやクラウド、ビッグデータ、ソーシャルゲームといったトレンドが進めば、近い将来必要とされるのはErlang、Node.js、R、SQLの発展形なのでは」(まつもと氏)。
・Erlang :分散とアクターモデル。既存の言語にアクターモデルが付いてカバーされるかも?
・Node.js :大量アクセスと非同期モデル。非同期I/Oによって多重化する発展形が流行るかも?
・R :統計/解析とビッグデータ連携(R-ODM)。非常にニーズが高まっている
・SQL :宣言的データ取得と高抽象度、そしてHive。本質は宣言的データ取得。SELECT文など、具体的にどうすべきとかあまり考えなくていいところがすばらしい
機械の中に自分の宇宙を作る、それがプログラミングの魅力
みずからを"言語オタク"と称するまつもと氏は、講演の終盤、"言語の楽しさ"についてこう語った。 「僕にとって言語の楽しさとプログラミングの楽しさは同義。言語を通さないとプログラミングはできない。はじめて買ったポケットコンピュータ、それも行編集しかできないような代物だったけど、自分が思ったとおりにコンピュータが動くという楽しさを実感した。まるで犬にお手をさせるような感覚に近い。機械の中に自分の宇宙をつくる―それがプログラミングの最大の魅力」。
「処理系を作るのはすごく楽しい。言語実装はプログラミングの総合芸術だと思う」。 「言語設計とは、発想をプログラミングすること。つまりRubyプログラマは、Rubyの発想に染まっているといえる。ということは、Rubyプログラマは僕の発想でプログラムされているんですよ(笑)」。
会場を埋め尽くした300人を超える聴衆に、広くて深い言語の世界を垣間見せてくれたまつもと氏。最後は「新しい言語を作ったり、既存の言語を伸ばしたり、言語を使ってプログラミングしたり…、とにかく楽しんでプログラミングしましょう」と"Enjoy Programming"のメッセージを残してくれた。生みの親が心の底から楽しみながら作った言語、それがRubyだ。世界中で愛される理由のひとつがそこにある。