体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

まつもとゆきひろ氏がRuby25周年イベントで語ったこと―近い未来に向け、Ruby3の開発を進める

Perlの次の言語を目標にRubyを開発

日本Rubyの会代表理事の高橋征義氏による特別講演に続き、まつもとゆきひろ氏の基調講演が始まった。

昨年来、まつもと氏は講演で「Rubyのこれまで」を振り返ることが多かったという。しかし高橋氏が過去を振り返る話をしたこともあり、「今日は未来の話をしたい」と語り、講演をスタートさせた。

ウィキペディアによると、ソフトウェアの誕生は公開された日となることが多い。Ruby 0.95が公開されたのは、1995年12月25日。「作っている本人としては、それより前から作り続けているので、誕生という気がしない」とまつもと氏は語る。

では、RubyはいつからRubyなのか。

「哲学的な問いだが、Rubyという概念が誕生した日。つまりRubyという名前を付けたとき誕生日にした。それが1993年2月24日である」(まつもと氏)

名前を付けるときに相談したのが「オブジェクト指向スクリプト言語Ruby」の共著者である石塚圭樹氏だ。

Perlにならい「宝石の名前をつけよう」と思ったものの、最終的にはRubyとCoralで迷ったまつもと氏は、「Rubyの方が短くて、高級感がある」ということでRubyに決めた。

そのほかにも偶然的な産物として、6月の誕生石はPerlで、7月がRubyと並んでおり、フォントサイズも5ptなので、5.5ptのPerlと並んでいる。「つまりPerlの次の言語としてふさわしい名前だ」と自己満足したという。

「Perlの次」の言語を目標に開発されたRuby。しかし「正直やりすぎた。現状のRubyはPerlの次ではなく、Pythonの隣や斜め後ろとかそういう感じ」と、まつもと氏は会場の笑いを誘った。

25年間の技術の変化は驚くほど小さかった

では、Rubyの今後はどうなるのか。

「すごく悩んだが、当たるも八卦、当たらぬも八卦なので、無責任なことを言っても許されるだろうと思い、私が考える今後25年の話をしたい。

過去25年の変化は驚くほど小さかった。例えばOSはUNIX系に収斂しつつある。MacOSはUNIXそのもの、WindowsもWSLとUNIXっぽくなっている。クラウドのサーバサイドOS、スーパーコンピュータのOSはLinuxが席巻している。

つまり、プラットフォームのOSはほぼUNIXになったということ。CPUもx86系となるなど、この25年間プラットフォームはまったく新しいことは起きなかった上に、多様性も減った」

さらに、Rubyの初期の開発環境も劇的には変わらず、「Rubyの安定性の一部はこの安定性に救われた」とまつもと氏は述懐する。

もちろん、変化したこともある。例えば性能や容量は向上したことで、プログラマは開発が楽になった。価格が安くなり、台数が増えたことで、コンピュータを入手しやすくなった。

Webという横にも縦にもスケールしやすいアーキテクチャの採用、モバイルがデバイスとして普及したことで、Beyond Server sideの時代は終わりつつある。

さらにマルチコアにより、分散・並列実行環境が実現。データサイエンス分野では機械学習、AI、IoT、IoTなどのキーワードが注目されるようになっている。

「変化の傾向はスケーラブルになっているということだ」と、まつもと氏は言う。データ規模やコード規模、チーム規模はどんどん大きくなっている。それを分散するため、マルチコアやマルチノード、マルチDC(データセンター)が登場した。

言語の開発方向性は「より早く」「より安く」「より速く」

まつもと氏は「これらの状況を踏まえて未来のRubyを考えたい」と続ける。

言語(文法)はあまり変わらない。プログラミング言語にはチューリング完全性があるからだ。

「たとえ25年後のプログラミング環境で要求されるアルゴリズムでも、現在のRubyでも書こうと思えば書ける。それを考えると、Rubyのコアに関しては劇的な変化は必要ない。

文法的な限界は近づいており、これ以上文法は変えられない。したがって、まったく異なった言語にはならない。

RubyがRubyであり続けるには、まったく異なった言語になることはない。もしそういう言語ができたら、それはRubyではない」

1954年に最初のプログラミング言語「FORTRAN」が誕生して以来、様々な言語が生まれてはそれに取って変わってきた。

プログラミング言語の進化は、「生産性の向上」を目的としていた。つまり「より早く」「より安く」「より速く」を目指してきた。

より早くとは、より短時間で開発できることである。簡潔な表現で、高い抽象性があり、直接的な表現でイメージに近い表記ができること。

つまり、優れた抽象モデルを提供するかどうかだ。しかしそれだけではなく、保守性もある程度必要となる。

「現状のRubyの良さは完結で直接的で優れたモデル」(まつもと氏)

次の「より安く」は、より短い開発期間、小さなチーム、より小さなチームで開発できればより安くなる。Amazonの創設者ジェフ・ベゾス氏のピザ2枚の法則に通じる。

ソフトウェアは小さなチームでより広い範囲を解決し、そして最後の「より速く」というように、開発サイクルを高速に回すことが重要になる。

2004年にアジャイル開発宣言が出された。その宣言を書いた人の中に、「プログラミングRuby」を書いたデイブ・トーマスがおり、またアジャイル宣言のサインをしたオピニオンリーダーの内、過半数がRubyを使っていた。

「Rubyを作ったとき、ソフトウェア開発を楽しくしたいと思って作った。アジャイルという開発手段が素晴らしいと思っている人たちの共感を得ることができたという点、間違ってなかったという思いがあった」(まつもと氏)

より早く、より安く、より速く。これを未来の言語に当てはめると、高度な分散、高度な抽象、高度な支援が求められるようになる。

近い未来に向け、Ruby3の開発を進める

近い未来に向け、今開発を進めているのがRuby3である。「Ruby3に向け、高速(速いRuby)、分散(スケーラブルRuby)、解析(賢いRuby)という3つのプロジェクトが動いている」とまつもと氏は話を続ける。

1 2次のページ
CodeIQ MAGAZINEの記事一覧をみる
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。