この記事は日経 xTECH有料会員限定ですが、2018年3月4日5時まではどなたでもご覧いただけます。
同氏の開発環境も25年前からUNIXだった。初期の開発環境はソニーのNEWS-OSであり、その後、まだSolarisとは呼ばれていなかったSunOSに移行した。どちらもUNIX系のBSDがベースになったOSである。
CPUは、パソコンはほぼx86系、モバイルはARMになっている。「CPUの根本的なアーキテクチャはそんなに変わっていない。同じソースコードをコンパイルすればx86でもARMでも動く」(同氏)。
まつもと氏は「Rubyの発展の一部はこの安定性に救われたところがある」と語る。過去のOSと互換性がないOSが世界を席巻していたら、Rubyはその大きな変化についていけず絶滅していた可能性がかなり高いという。
一方、25年間で変化したところもたくさんあるという。性能、容量、価格、台数だ。システムアーキテクチャとしてはWeb、モバイル、クラウド、マルチコアが出てきた。また、データサイエンス、AI、IoTといったキーワードが人気を呼ぶようになってきた。
性能の向上によりプログラミングが楽になった。ただ、クラウドの登場でサーバーサイドアーキテクチャの見直しが必要になった。一つのコアの性能向上が頭打ちになったのでマルチコアが登場し、分散・並列実行環境が注目されるようになってきた。
過去25年間の変化の傾向を見ると、「スケーラブル」というキーワードが重要になってきているという。昔は1Mバイトのデータが巨大データだった。フロッピーディスクに入らないのが問題になっていた。今はペタやエクサといった単位のデータを見るようになっている。プログラムの規模が大きくなり、その開発のためのチームの規模も大きくなっている。
分散という観点でいうと、マルチコア=複数のCPU、マルチノード=複数のコンピュータ、マルチDC=複数のデータセンターが協調するシステムが登場するようになった。
未来のRubyに求められるのは生産性の向上
未来のRubyを考えると、まつもと氏は「言語のコアの部分はそんなに変わらないのではないか」と思っているという。
プログラミング言語には「チューリング完全性」という概念がある。チューリング完全の言語があれば、現在、まだ知られていないアルゴリズムを含め、すべて記述することが原理的には可能だ。
この性質は、知識のない人に「プログラミング言語とは何か」を説明する際にはやっかいだという。まつもと氏が島根に引っ越したばかりの頃、地元の新聞の取材を受けた。ITやプログラミングをあまり知らない記者だったという。「あなたが作っているRubyというソフトは一体何ができるんですか」と質問されてとても困った。「やれば何でもできます」では答えにならない。
25年後に要求されるアルゴリズムでも、現在のRubyで書こうと思えば書ける。それを考えると、「劇的な変化はそんなに必要ではない」(同氏)。また、使える記号があまり余っていないため、これ以上、あまり文法を変えられないという限界もある。「今動いているプログラムが動かなくなることを考えると、RubyがRubyである以上、今と全く異なった言語にはならない。異なった言語になったら、それはRubyではない」(同氏)。