この記事は日経 xTECH有料会員限定ですが、2018年3月4日5時まではどなたでもご覧いただけます。
では、未来のRubyには何が求められるのか。それは生産性の向上だ。
1954年に最初のプログラミング言語であるFORTRANが誕生して以来、様々な言語が生まれたり、次の世代の言語に取って代わられたりした。その間のプログラミング言語の進化の方向は、基本的には生産性を向上させるという点だという。
プログラム言語は、コンピュータにとっては不要なものだ。マシン語さえあればコンピュータは動作する。プログラミング言語が存在するのは、人間の理解度に限界があるからだとまつもと氏は説明する。同氏によると、プログラミング言語の生産性の向上とは「より早く、より安く、より速いソフトウエアを開発できるようになること」だという。
「より早く」というのは、短い時間で開発したり、抽象度が高い端的な表現ができるということだ。頭の中にあるソフトウエアのイメージを直接伝えられるような表記である。ただし、端的に表現しすぎて、後で見たときに意味がわからなくなると困るので、保守性も重要だ。
同じソフトウエアを短い期間で開発できれば、かかるコストも安くなる。あるいはより小さいチームで開発できるようになる。米アマゾンの創業者であるジェフ・ベゾス氏は「プロジェクトはピザ2枚で満足できる人数のチームがいい」と述べているという。だいたい6~7人だ。
ソフトウエア開発には「人数をかけるほどプロジェクトが遅れる」というブルックスの法則がある。このため、小さいチームをより広い範囲に適用できることが重要だとまつもと氏は指摘する。より高速な開発サイクルを回せることが、ソフトウエアをより早く、より安く開発するためには重要だという。
こうしたあるべき開発の姿を宣言したものが「アジャイルソフトウエア開発宣言」だ。ソフトウエア開発における17人のオピニオンリーダーが2001年に集まって宣言した。その中に、最初のRubyの本である「Programming Ruby」を執筆したデイブ・トーマス氏とアンディ・ハント氏がいた。その後、17人のオピニオンリーダー達の半数以上がRubyを使うようになったという。
まつもと氏は、「ソフトウエア開発をもっと楽に、もっと楽しくできるように」と考えてRubyを作った。そうした気持ちは「アジャイルという開発手法を素晴らしいと考えている人たちの共感を得ることができたという点で間違ってなかったのではないか」と同氏は振り返る。
Ruby3で3倍の高速化
現在、Rubyの開発チームは次期Rubyとして「Ruby3」を開発している。目標は、高速で、分散に対応し、静的解析ができることだという。高速は「より速いRuby」、分散は「スケーラブルなRuby」、解析は「より賢いRuby」を意味する。高速化のために「MJIT」、分散に関しては「Guild」、Rubyのプログラムの型解析は「Steep」というプロジェクトがそれぞれ動いている。
MJITはJIT(Just-In-Time)コンパイラだ。JITコンパイラはJavaの高速化に寄与していることで有名な技術である。