まさかの未発表

IT系ライター高橋正和が商業媒体向けに書いたものの掲載に至らなかった記事の置き場です。

Ruby誕生25周年を祝うカンファレンス「Ruby25」開催(2018年2月24日取材)

 プログラミング言語Ruby」の誕生25周年を祝うカンファレンスイベント「Ruby25」が、2月24日に東京で開催された。Rubyの生みの親である“まつもとゆきひろ”(Matz)氏を中心とする講演のほか、Rubyに関する企業や団体などの展示もなされ、参加申し込みが三百数十人集まる、大規模で祝賀ムードにあふれるイベントとなった。

f:id:emasaka:20180903154313p:plain

Rubyのロゴ(Copyright © 2006, Yukihiro Matsumoto. Creative Commons Attribution-ShareAlike 2.5 Licenseの条項のもと配布される)

 まつもと氏が基調講演で語ったことによると、新しいプログラム言語を作るプロジェクトを始めるにあたって「Ruby」という名前を付けた1993年2月24日をもって誕生日としたとのことだ。Rubyに関するカンファレンスは世界中で開催されているが、まつもと氏から開こうと言ったことはこれまでなかったという。「今回は、私が軽い気持ちで『お祝いしよう』と言ったら、スタッフやスポンサーの尽力で、こんな大きなカンファレンスになった」とまつもと氏は笑顔で語った。

 以下、カンファレンスの模様を順にレポートする。

皆が仕事でRubyを使う時代に

 開会にあたって、Ruby25副実行委員長であり、まつもと氏の勤務先の株式会社ネットワーク応用通信研究所(NaCl)の代表取締役社長である井上浩氏が開会挨拶をした。また、経産省 商務情報政策局 情報産業課 課長の成田達治氏(企画官 和泉憲明氏による代読)と、筑波大学大学院システム情報工学研究科コンピュータサイエンス専攻長 教授の加藤和彦氏が祝辞を述べた。

 NaClの井上氏は、1997年にNaClが事業を開始した年に、まつもと氏が主任研究員(現在はフェロー)として参加したことを紹介。思い出として、1999年にIPAの助成事業としてApacheのmod_rubyを開発したときのエピソードを語った。

 また、会場に「仕事で少しでもRubyに関わっている人は」と質問し、多くが挙手するのを見て、「かつて、最初のRubyKaigiで同じ質問をしたときは、パラパラ程度だった。そのときに『この先、みなさんが主役になるでしょう』と言ったが、まさにその時が来た」と感慨深く述べた。

 経産省の成田氏(代読和泉氏)は、ソフトウェア業界の人材不足やサービス型への転換などの課題に対して人材育成の必要性を挙げ、Rubyはこれまで人材を育成してきて、これからも育成していくだろうと述べた。そして、ビジネスアイデアをスピーディに実現するのはRubyの得意などころだと思うので、これからも魅力的なサービスを作っていってほしいと語った。

 筑波大学の加藤氏は、筑波大学でまつもと氏の2〜3年上の先輩にあたり、在学中の接点はなかったが交流のある研究室にいたことを紹介。さらに、プログラミング言語マニアとして、すべてがオブジェクトのSmalltalk 80や、折衷型のC++Javaを経て、すべてオブジェクト指向でありながら汎用的に使えるRubyをすごいと思ったと語った。そのうえで、「Ruby以後の言語は何らかの形でRubyの影響を受けていると思う」として、「その性質は継承されるようで、Ruby上のRuby on RailsSinatraは以後のWebフレームワークに影響を与えた」と論じた。

 Rubyに関わりの深い地域の首長からの祝電も読まれた。福岡県知事の⼩川洋氏は、フクオカRuby⼤賞やmrubyの取り組みを紹介して25周年を祝った。松江市⻑の松浦正敬氏は、Ruby PrizeなどのRubyコミュニティへの支援や、Rubyを学ぶ環境作りなどの取り組みを紹介して25周年を祝った。島根県知事の溝⼝善兵衛氏は、mruby/cやSciRuby、Rubyアソシエーションなどの支援を紹介して25周年を祝った。

Railsの開発とともにRubyのエコシステムが構築された

 特別講演には、「Rubyの1/4世紀」と題して、一般社団法人 日本Rubyの会 会長の高橋征義氏が登壇。25年の歴史を、5年ごとに区切って振り返った。ちなみに高橋氏は冒頭で、Rubyを世界的にメジャーにしたRuby on Railsの1.0正式版リリースが2005年で、「ちょうど真ん中ぐらいになることに気づいた」と紹介した。

f:id:emasaka:20180903122116j:plain

Ruby 25年の真ん中の2005年に

f:id:emasaka:20180903122551j:plain

Rails 1.0が正式リリース

 高橋氏はRuby年表GitHubリポジトリで公開している。氏はこの歴史を5年ごとに分け、それぞれ「誕生」「認知」「転換」「発展」「普及」と名付けて解説した。

f:id:emasaka:20180903131651j:plain

Ruby年表

f:id:emasaka:20180903131854j:plain

25年を5年ごとに分けた

 誕生期としては、まずRuby誕生の1993年。この年は、芸能界ではtrf小沢健二Judy and Maryがデビューし、映画「ジュラシックパーク」が公開された年だ。1994年には非公開MLとFTPで活動し、1995年12月21日にNetNewsのfj.sourcesに公開された。

f:id:emasaka:20180903132023j:plain

NetNewsで公開したときの投稿

 NetNewsという限られた人の世界から一般公開されるメディアに取り上げられたのは、1997年9月22日の「INTERNET Watch」(インプレス)の記事だったという。その後、同年10月に「TRY!PC」誌(CQ出版)11月号には、「ちょーわかりやすい!Perl & ruby入門」も掲載。同年に「オンラインソフトウェア大賞97」に入賞し、この頃ぐらいにプログラミング言語に興味ある人にリーチしたようだと高橋氏は語った。

f:id:emasaka:20180903133439j:plain

1997年に「INTERNET Watch」で紹介

f:id:emasaka:20180903133538j:plain

「オンラインソフトウェア大賞97」授賞式の模様

 続く1998年〜2002年が認知期だ。1999年にはruby-lang.orgドメインを取得。そして、Rubyに関する最初の書籍「オブジェクト指向スクリプト言語Ruby」が刊行されて、広く知られるようになった。

f:id:emasaka:20180903133642j:plain

ruby-lang.org移行前のRuby公式サイト

f:id:emasaka:20180903133744j:plain

Rubyに関する最初の書籍「オブジェクト指向スクリプト言語Ruby

 さらに2000には米国でDave ThomasとAndy Huntによる書籍「Programming Ruby」が刊行されて海外で存在が知られるようになり、2001年には米国でイベント「RubyConf」が開催された。

f:id:emasaka:20180903135106j:plain

米国で書籍「Programming Ruby」刊行

 続く転換期(2003〜2007年)は、Ruby on Rails(略してRails)の影響が大きく、「RailsがいかにRubyのエコシステムを変えたか」を高橋氏は語った。

 この時代は、Webマガジン「Rubyist Magazine」で「現在のRubyのパッケージ管理には標準はありません」と書かれていたという。そこに、多数のライブラリを必要とするRailsが登場し、RubyGemsを採用したことで、RubyGemsが公式的な位置づけになっていった。

f:id:emasaka:20180903135232j:plain

Rubyist Magazine」より「現在のRubyのパッケージ管理には標準はありません」

 また、2010年には、目的のソフトウェアが必要とするライブラリのインストールを管理するBundlerがリリースされて、Rails 3.0でサポートされた。この2つの例などを例として挙げて、「Railsの開発と同時にRubyのエコシステムが構築されてきた」と高橋氏は論じた。

f:id:emasaka:20180903140418j:plain

Bundlerの登場

 最後に25年のまとめとして、高橋氏は書籍「エラスティックリーダーシップ」日本語版にまつもとゆきひろ氏が書いた文章から「専門家はいない。私たちしかいないんだ」というフレーズを引用。そして、「草の根で始まった言語であり、個人の集まりがが手探りで始めて、ここまで来た」と語った。

f:id:emasaka:20180903141527j:plain

「専門家はいない。私たちしかいないんだ」

 また、組織の貢献として、その個人やインフラを支えるさまざまな活動を紹介。「Rubyを個人が支えて、その個人を組織が支えている」とRubyの開発の姿について高橋氏はまとめた。

f:id:emasaka:20180903141626j:plain

Rubyを個人が支えて、その個人を組織が支えている

Ruby 3では大きなギャップを作らない

 まつもとゆきひろ氏の基調講演は、「Ruby after 25 years」という題で、これまでの25年の変化を元にこれからの25年を語るものだった。

 氏はまず、これまでの25年について「ラッキーだったことに、Ruby関連の変化は驚くほど小さい」とまとめた。OSはUNIX系に収斂し、CPUはほぼx86系(一部ARM)となった。Rubyを開発しているマシンやOSは少しずつ変わったが、劇的には変わらず、「一部はこの安定性に救われた」という。

f:id:emasaka:20180903142020j:plain

この25年でOSはUNIX系に収斂

f:id:emasaka:20180903142143j:plain

CPUはほぼx86系に

 一方で変化したところとして、性能、容量、価格、台数をまつもと氏は挙げて、プログラマーが楽になる変化だとした。応用分野の変化については、Web、モバイル、クラウド、マルチコアを挙げ、そのポイントとしてスケールや分散が語られた。

f:id:emasaka:20180903142942j:plain

変化したところ:性能、容量、価格、台数

 これをふまえて、未来のRubyについてまつもと氏は考察した。まず、「言語の文法といったコア部分については、それほど変わらないのではないかと思う」と語る。そして「進化の方向は、基本的に生産性を向上させるもの」という仮説を掲げる。そして、求められるのは「より早く、より安く、より速く」だという。それに必要なものとして、「高度な分散」「高度な抽象」「高度な支援」の3点を挙げた。

f:id:emasaka:20180903145806j:plain

「より早く、より安く、より速く」

f:id:emasaka:20180903145905j:plain

必要なのは「高度な分散」「高度な抽象」「高度な支援」

 ここから、来たるべき「Ruby 3」について話が進んだ。目標は、高速、分散、(静的)解析だという。そして、それぞれのためのプロジェクトとして「MJIT」「Guild」「Steep」の3つをまつもと氏は紹介した。

f:id:emasaka:20180903150030j:plain

Ruby 3の高速、分散、解析

f:id:emasaka:20180903150127j:plain

Ruby 3で採用される「MJIT」「Guild」「Steep」

 MJITは、RubyJIT(Just-In-Time)コンパイルを組み込むものだ。まつもと氏は、2015年に、Ruby 3では3倍高速化する「Ruby 3x3」というキャッチフレーズを掲げたことに触れ、「Rubyが生き残るには、わくわくするテーマ、できるかもしれないけど難しいゴールが必要だと思った」と語った。そして、「言ってみるもので、JITによるスピード改善を作った人や、それをブラッシュアップして取り込んでくれる人がいた」と報告した。

 Guildは、分散処理の枠組みだ。これにより、マルチコアやマルチノード、マルチデータセンターにつながる可能性が出てきたと、まつもと氏は説明した。

 Steepは、Rubyの静的型推論の仕組みだ。Ruby型推論としてはそのほか、統合開発環境IntelliJ IDEAやプログラミング言語Kotlinで知られるJetbrains社の人が、実行時の情報をもとに型解析する技術を開発しているという。

 そのRuby 3のリリース時期について、まつもと氏は「2020年に出せるといいなと。約束しませんが」と語った。

f:id:emasaka:20180903150223j:plain

Ruby 3は「2002年に出せるといいなと」

 Ruby 3のリリースにおいては「連続的な変化をしようと思っている」ことが明らかにされた。いわく「Ruby 3はラベル」。前述したような技術をRuby 2.xに入れていき、目標を達成したバージョンに「Ruby 3」とバージョンを付けるというものだ。

 直近のバージョンでは、Ruby 2.6にはMJITのプロトタイプが入る。そのために、いつもなら正式リリースに近くならないと出さないプレビュー版を「もうすぐ出す」という。実際、まつもと氏の講演のあと、Ruby25開催中に、Ruby 2.6.0-preview1がリリースされた。

f:id:emasaka:20180903150332j:plain

MJITが入ったRuby 2.6.0-preview1がRuby25開催中にリリース

 この方式を取る理由は「巨大なギャップを避ける」ためだという。Rubyでは、1.8から1.9の間で非互換な変化があった。それによって「Rubyコミュニティが5年ぐらい分断した。非常に不幸なことだった」という。同じ問題を防ぐために「予見できる未来で、不連続な変化は起こさない」ことをまつもと氏は宣言した。

f:id:emasaka:20180903150439j:plain

Ruby 3では巨大なギャップを避ける

 さらに遠い未来として、これから25年の変化が予想された。まず挙げられたのは、開発効率と保守性の向上だ。その一つとして、IDEのための静的解析の技術が語られた。さらに、ソフトウェアの開発は、タイプミスしたら指摘されたり、AIがプログラミングしたりと、インタラクティブなものになるのではという仮説が立てられた。そのうえで、問題に悩んだときに熊のぬいぐるみに話すと考えが整理されて解決にう向かうという「テディベア・プログラミング」について触れ、「未来のIDEにはテディベアが入ったり」という冗談も出た。ちなみにまつもと氏によると、Rubyのブロック機構は、子守をしているときに生まれたのだとか。

 次に挙げられたのは、大規模分散環境対応だ。CPU 1コアでの性能向上が限界になるについれて、マルチコア化が進んだ。さらにマルチノードやマルチデータセンターに発展したときに、ばらまかれたシステムが協調して動くものが必要になる。「Guildのその先」とまつもと氏は説明した。

 その次に挙げられたのは、非均質計算環境対応だ。モバイル向けの一部のCPUでは、パフォーマンス重視のコアと省電力重視のコアを組み合わせた「big.LITTLE」構成が使われているものがある。あるいは、GPGPUFPGAを使ったコンピューティングも、異質なコンピューティング資源の組み合わせだ。「これをプログラミング言語でどう抽象化するか。まだ考えはないが」とまつもと氏は語った。

f:id:emasaka:20180903150546j:plain

未来の変化:開発効率と保守性の向上、大規模分散環境対応、非均質計算環境対応

 そのうえで、コンピューターが楽しいものであるためには、コンピューターはもっと賢くなる必要があり、またコンピュータと対話するに思考を明確化することが必要になるとして、「その思考のためのツールとしてRubyがなるとうれしい。Rubyの価値は、人間のための言語としてのRubyだ」と語った。

f:id:emasaka:20180903150649j:plain

人間のためのRuby

 最後にまつもと氏は、Ruby25にたくさんのメッセージが集まったことに感謝し、「形のないソフトウェアへの『愛』って不思議だが、本当に愛されていると思う」と語った。

 そして、Rubyの25才を「大人だがまだ若い。未来がある」として、「私たちが、Rubyを作る未来であり、Rubyで作る未来だ」と会場に呼び掛けた。

 さらに冗談めかして「私の最大の目標は『サバイバルすること』」と言い、「変化を止めて、一部の人しか使わなくなった言語はいろいろあるが、それは嫌」として、たのしいプログラミング、たのしいRubyという価値を提供しつづけると語った。

 なお、「もし私が死んだら?」というテーマについては、「合議制になってつまらなくなって落ち込んでいく」「私の発言を機械学習でボットにする」といった可能性を冗談まじりで語りつつ、「適切な後継者が現れるのではないかと思っている」とまとめた。

f:id:emasaka:20180903150843j:plain

「たのしいプログラミング」

 講演後にはサプライズ演出で、まつもと氏の娘さん2人により花束贈呈が行なわれた。まつもと氏には本当に事前に知らされていたかったようで、非常に驚いて感激していた。
 イベントに参加したRuby関係者たちが知らない家庭でのまつもと氏の印象については、2人とも、優しい父親であることをエピソードを交じえて紹介した。さらに、日常でも「人にかわいがられるのがうまい」という素顔や、「話をするのは好きなので、ここでコアな技術のジョークに反応してもらえているのは、いい人たちの中にいるのだなと思った」といった感想も語られた。

RailsRubyの楽しさをWebの世界に広げた

 「Rubyの今」と名付けられたパートでは、Web系、インフラ系、組み込み系、データ処理系の4分野でのRubyについて解説された。

 Webの分野については、「Ruby on Ruby on Rails」と題して、RubyRailsの両方のコミッターである松田明氏が講演。主にRailsについて解説した。

 松田氏はRailsを「いま世界で一番使われているWebアプリケーションフレームワークだと思う」として、「RailsRubyをメジャー言語に押し上げた原動力」と説明した。そして、高橋氏の講演でも取り上げられたようにRubyの半生にあたる歴史を持ち、Rubyにとってもはや切っても切れない関係にあると語った。

f:id:emasaka:20180903151012j:plain

Railsとは

 続いてRailsの特徴を松田氏は解説した。まず、「現場のリアルな問題を解決する道具」であること。プロジェクト管理サービス「Basecamp」という現実のプロダクトから切り出して作られたフレームワークであり、あくまでプロダクトありきで作られた。

 次に、「常に変化し続ける」こと。5,000人のコントリビューターで開発していて、ずっと変わり続けて古びない。そして、そこからDRYやCoC、REST、Bundlerなど、Rubyや世の中に影響を与えてきた。

 次は「たのしい」こと。Rubyの特徴として、書いていて楽しい、気持ちいいということがしばしば言われるが、RailsRubyの楽しさをWebの世界に広げてくれるという。

 最後に「儲かる」こと。TwitterGitHubAirbnbUberクックパッド食べログ、Moneyforwardなど、大きなサイトで実際にビジネスを回してお金を回している。特に、生産性が高くプログラマー1〜2人ぐらいから始められるため、特にスタートアップで重宝されるという。そのため、「スマホを毎日使っていて、Rubyで作られた何かに一度もふれずに生活するのは難しい」と松田氏は言う。

 これらを氏は「Rubyのくせに仕事になる。昼間からRubyをキメてお金までもらえる」とユーモラスにまとめた。なお、「Ruby on Rails」の名前について、「Rails on Ruby」が正しいんじゃないかとよく言われることについて、松田氏の解釈は「Rubyの楽しさを運んでくれるインフラ」という意味だという。

f:id:emasaka:20180903151205j:plain

Railsは「現場のリアルな問題を解決するツール」「常に変化し続ける」「たのしい」「儲かる」

 Railsの現在とこれからについては、「先週ぐらいから6.0開発中」として、常に新しいものであり続けるので、5〜10年たっても最新じゃないかと思うと語り、「今のところ、Railsにとってかわるものは現れないんじゃないかと思っている」とまとめた。

f:id:emasaka:20180903151306j:plain

Railsのこの先

インフラエンニアにもRubyの生産性を

 インフラの分野では、GMOペパボ株式会社の近藤宇智朗氏が「RubyとInfrastructure as Code、そして大規模インフラ」と題して講演した。

 まず「Infrastructure as Code」という言葉について解説。サーバーインフラについて、構成管理、サーバーの初期化、オーケストレーションといった内容を宣言的なコードで書くプラクティスであり、バージョン管理やレビューテストなどをインフラに適用できるものだという。

f:id:emasaka:20180903151420j:plain

「Infrastructure as Code」とは

 この分野でのRubyの強みとして、エンジニアがやりたいことを助けてくれること、特にDSLを作るのに向いていることを近藤氏は挙げた。そして、実際にRubyDSLを採用したものとして、Chef、Itamae、Vagrant、ridgepole、Serverspecを、実際の定義例を交じえて紹介。これらは、Rubyによって、本格的にプログラミングしているわけではないインフラエンニアの生産性を上げるものだとして、「“Enjoy Programming” for Ops」(運用エンジニアの「たのしいプログラミング」)という言葉を掲げた。

f:id:emasaka:20180903151518j:plain

Rubyの強みとインフラ

f:id:emasaka:20180903151605j:plain

RubyDSLによる定義の例

 さらに、機器組み込み用に開発されたmrubyをミドルウェアに組み込むことで、クラウドインフラで活用できるのではとして、Webサーバーに組み込むmod_mrubyやngx_mruby、h2oの例を紹介。さらに、近藤氏が開発したコンテナランタイムHaconiwaを紹介した。

 ミドルウェアにmrubyを組み込むメリットとしては「コードで圧倒的な自動化」を実現すると説明。負荷をすばやく検知してスケールアウトする制御や、柔軟なロードバランスなどのサービスメッシュなどの可能性を挙げ、すでにngx_mrubyやHaconiwaによる事例が出始めていると近藤氏は語った。

f:id:emasaka:20180903151701j:plain

mrubyのミドルウェアへの組み込み

f:id:emasaka:20180903151756j:plain

ミドルウェアにmrubyを組み込むメリット

 最後に近藤氏は「Infrastructure as CodeでインフラエンニアにもRubyの生産性を」「マイクロサービスやコンテナにRubyで新しい風を」という言葉を掲げた。

mrubyでWeb系の人も組み込み開発に

 組み込みの分野では、軽量Rubyフォーラムの石井宏昌氏が「mrubyって今、こんな風に使われています」と題して講演した。

 mrubyを開発した目的は「Web系の人も組み込み開発をできたらよくないか」というものだった。2010年に開発を開始し、2012年にオープンソースとして公開。ライセンスは組み込みでも使いやすいようMITライセンスにした。

 mrubyのメリットは、Rubyの書きやすさを生かしながら軽量化し、200KB(さらに軽量化したmruby/cでは64KB)のRAMで動作すること。さらに、VMで動作するため、同じプログラムをほかのボードに使い回せることだ。プラットフォームとしては、たいていのOSやCPUに対応するとのこと。拡張ライブラリーはmrbgemsで配布される。

f:id:emasaka:20180903151853j:plain

mrubyの特徴

 組み込み業界では出荷してしまったら直せないため、当初はなかなか採用されなかったという。それが、IoTによって採用され始めた。

 実際の採用事例としては、IIJルーターや、しまねソフト研究センターでの水田管理実証実験、データテクノロジー社のIoTゲートウェイ、社内設置型アルコール検査機、リハビリ支援ソリューション、小型人工衛星マインドストームEV3などが紹介された。

f:id:emasaka:20180903151946j:plain

IIJルーターの事例

f:id:emasaka:20180903152044j:plain

IoTゲートウェイの事例

f:id:emasaka:20180903152134j:plain

小型人工衛星マインドストームEV3などの事例

 さらに、ソフトウェアに組み込む例では、三次元幾何モデリングシステム「siren」や、SQUARE ENIXのゲーム「NieR:Automata」、仮想デバイス作成サービス「mockmock」、近藤氏の講演でも紹介された「mod_mruby」「ngx_mruby」などが紹介された。

f:id:emasaka:20180903152229j:plain

ソフトウェアにmrubyを組み込んだ事例

 軽量Rubyフォーラムの活動としては、mrbgems評価リストやmruby技術情報の公開などを石井氏は紹介した。mrubyの現状としては、2018年1月に安定版1.4.0がリリース。これからとしては、Ruby 2.0へのキャッチアップや、BLE5.0+LoRaWANでのmruby適用(夏を予定)、mrubyグローバル会議を開く準備が語られた。

データ処理にRubyのエコシステムを

 データ処理の分野では、トレジャーデータ株式会社の田籠聡氏が「Data Processing and Ruby in the World」と題して講演した。

 田籠氏はデータ処理を、データ収集(COLLECT)、集計(SUMMARIZE)、データ解析(ANALYZE)、視覚化(VISUALIZE)の4段階に分類して解説した。

f:id:emasaka:20180903152337j:plain

データ処理の4段階とRuby

 まず、視覚化ではプロプライエタリなソフトやサービスが中心で、有力なOSSほとんどないと語られた。

 そして、集計やデータ解析の分野では「“よく本屋に並んでいる言語”が支配的」という状況を説明しつつ、Rubyで作られたものとして、Red Data ToolsやRuby/Numo、BioRuby、SciRubyなどを紹介。「Rubyはこの分野で強いとはいえないが、がんばっている」とコメントした。

f:id:emasaka:20180903152445j:plain

Rubyによる例:Red Data Tools

f:id:emasaka:20180903152537j:plain

Rubyによる例:Ruby/Numo、BioRuby、SciRuby

 収集の分野では、トレジャーデータのFluentdや、ElasticのLogstashなどが活躍しており、Rubyが強い分野となっている。田籠氏は特にFluentdについて、MicrosoftGoogleクラウドサービスでも採用されていることを紹介。さらに、CNCFのプロジェクトであり、Kubernetesと相性がいいことから、KubernetesをホストするGoogleMicrosoftAWSのいずれでもFluentdが、つまりRubyが動いていると説明した。

f:id:emasaka:20180903152537j:plain

Rubyによるデータ収集ツール:FluentdとLogstash

 収集以外でのRubyによるプロジェクトについては、GPUの命令セットをRubyから呼ぶ「Cumo」、深層学習フレームワークMXNetのRubyバインディング「mxnet.rb」、Red Data Toolsの一つでChainerをRubyに移植した「Red Chainer」、機械学習の評価器XgboostのRubyバインディング「xgboost-ruby」が紹介された。

 最後に、データ処理でRubyが使われるようにするには、Rubyによるエコシステム全体を不自由なく揃えておくことが重要だと田籠氏は述べ、Railsが強いのはそれを用意しているからだと語った。

開発モデルやRuby 3など、まつもと氏と宮川氏が対談

 カンファレンス最後のセッションは、「Matz & Miyagawa 未来を語る特別対談」として、まつもとゆきひろ氏と、Fastlyの宮川達彦氏の対談だった。宮川氏が対談ホストとなって、まつもと氏から話を聞き出す形態がとられた。

 基調講演で少し触れられた後継者問題について、機械学習によるボットという冗談(?)から、「優しい終身の独裁者(BDFL)」モデルの話になった。まつもと氏は、意思決定はプロダクトオーナーやプロダクトマネージャーのような立場で、それは1人のほうがいいと答えた。また、Linuxカーネル開発もBDFLモデルだがサブシステムごとに権限委譲されていることについては、Linuxと違ってRubyは単体で分けづらいこと、言語としてどういうメソッドを追加してどういう名前を付けるかは優しい独裁者が決める必要があると語られた。

 Ruby 3が連続的な変化となることも改めて語られた。新しい機能は、例外はあるかもしれないがメインライン開発に入れ、ある閾値を超えたときに3にするという。Ruby 1.9のときの教訓として「ギャップがあるとコミュニティの分断が起きる。(従来版を選んだ人は)新しい機能や改善が目に入らず、取り残される。起こしやすい失敗だと思う」ことから、今回はラベルモデルがいいかと思っているという

 ギャップを避ける方針では、よくも悪くも非互換なものは入れない原則となる。これについてまつもと氏は「25年間やってると、直したいことがないといえば嘘になる。しかし、過去に後方互換性を壊した経緯からすると、しかたないなと」と答えた。

 Ruby 3の機能のうち、JITコンパイラーのMJITについては、どういう形で入れるかという課題も語られた。Rubyスクリプトとして起動してすぐ終了する用途で使うには、JITは向かない。一方、サーバーのように長い間動かす場合にはJITが効果的となる。「どのタイミングでJITにするかとか、デフォルトにするかとか、明示的にするかとか、これからRuby 2.6プレビュー版の挙動を見て検討する」とまつもと氏は語った。

 静的型付けについては、まつもと氏は、絶対にコードに型を書きたくない立場だという。Ruby 3で予定されているSteepでは、TypeScriptのように型定義に記述できるようになっており、まつもと氏としては「妥協点」とのこと。氏としても、型がわかることによりIDEでコードを書くことや読むことの支援のメリットは認めており、Steepである程度そのメリットを提供できるのではないかと考えているという。

 そのほか、文法を変更する可能性については、そのためには現在は文法エラーになるものでなければならないが、Rubyではけっこう通ってしまうという話題になり、RSpecのテストケースについてはまつもと氏でも「これ通るの?」と驚くという。

 プラグマを記述して挙動を変えるということも考えられるが、「今のところそのつもりはない」という。近いのはマジックコメントによる「frozen_string_literal」(リテラルで表された文字列オブジェクトを変更不能にする)で、この挙動をデフォルトにするかどうかに賛否があってまつもと氏も決めかねていると語られた。

 Ruby 3について、決まっていないが検討していることとしては、ネームスペースの問題が挙げられた。PythonJavaではファイル単位のネームスペースとなっており、それをインポートする形をとる。この問題については「真剣に検討しないとなと思っている。ただ、検討した結果、元のままにすることもありうる」とまつもと氏はコメントした。

 基調講演で語られた、人間のためのRubyという考えについては、プログラミング言語はコンピュータと人間の間の妥協点であり、言語ごとにその濃淡が違うとして、「Rubyは人間を助ける方向にある。無駄遣いできるコンピュータリソースを人間が使いやすいほうに、というのがRuby」とまつもと氏は語った。

 未来の話としては、コンピュータが自分でデータから学習するようになればプログラミングはいらなくなるのでは、「スタートレック」の世界ではプログラミングはなく口頭で指示するだけでいい、という話になり、「そういう時代にはプログラミングは楽しみのためのものになるかもしれない」という空想が語られた。

 Rubyがどちらかというと進化に保守的なのに対して、松田氏の講演で語られたようにRailsが劇的に変化しているという違いもある。これについては、まつもと氏は言語は枯れた分野であり、その上でWebというホットな分野が進化するという関係を説明した。

 ただし、RailsではRubyの書き方をモンキーパッチ(既存のクラスの拡張)によって強化するActive Supportを含んで多用している。これについては、モンキーパッチはRubyのいいところだが、皆が勝手にやると困るという話になり、「RSpecの英語っぽく見せることへの情熱は不思議」というコメントも出た。また、RaisからRubyに入る人がActive Supportでの書き方が普通だと思ってRubyにバグレポートが来るという笑い話も語られた。

 Pythonが最近注目され、機械学習コンピュータサイエンスなどでよく使われている問題も話題に出た。まつもと氏は、Railsが流行している間にPythonでは教育分野などで努力していてそれが実を結んだと考えており、コンピュータサイエンスではRubyも同じような努力をしていなかければと思うと語った。

 また、RubyPythonは見た目がなまじ似ているため、両方を書いていると混乱するという話では、「コロンを見たらPython」という言葉も出た。いずれにしても、RubyPythonもその地位は安泰ではなく、1つのゲームチェンジャーみたいなもので変わるのではとまつもと氏はコメントした。

 今後25年については、まつもと氏は「とりあえずサバイブ」という言葉を繰り返し、「Rubyは生きている限り面倒をみたい。そのあとも継続して続くようにしたいとは思っている」と答えた。

 そのほか、サイドプロジェクトとしてアイデアだけ考えていたことがRedisに近かったという話や、バッククォート記法をコマンド実行から明け渡したいが反発が大きいので諦めるかと思っているという話、もしRuby処理系のソースコードがこの世から突然消えたら作り直すかといった話などが語られた。

Rubyistは海外への切符を持っている

 最後に、 笹田耕一氏による閉会挨拶が行なわれた。

 まずは「まつもとさん、おめでとうございます」。Ruby 25周年ということでお祝いメッセージを募集したところ、たくさんのメッセージが集まったという。特に、国内より国外からのメッセージが多かったとのことで。これは日本語の堪能な著名RubyistのAaron Patterson氏の呼び掛けによるものだという。笹田氏は、「Rubyistは海外への切符を持っている」との言葉で締めくくった。