こんにちは。パーク社員の千代です。
先日、プログラミング言語Rubyの25周年記念イベント「Ruby25」に参加してきました!!
パークは本イベントのSilverスポンサーとして応援していたので、今回はスポンサー枠での参加でした。
この記事では各セッションの内容・感想をざっくりとご紹介したいと思います。
特別講演 「Rubyの1/4世紀」
高橋征義さんから、Rubyのこれまでの歴史について。
Rubyの25年間を5年毎に「誕生→認知→転換→発展→普及」のフェーズに分けて解説。
特に「転換」にあたる2003年~2007年の間にRuby on RailsがリリースされたことはRubyにとって重要で、Railsの普及、発展とともにRubyのエコシステムも大きく発展したのでした。
例えば2005年頃のRubyにはパッケージ管理ツールとして標準のモノが無かった所、RailsがRubyGemsを採用したため、結果としてRubyGemsが公式パッケージ的な立場を獲得した事などが挙げられてました。
基調講演 「Ruby after 25 years」
まつもと ゆきひろさんの基調講演。Rubyのこれまでと未来について。
2020年リリースを目標にしているRuby3は「高速・分散・解析」を大きな機能として開発中です。
それぞれMJit(Jitコンパイラ)、Guild(マルチコア処理)、Steep(静的型推論)で実現する予定。
Ruby3は過去のRuby1.8からRuby1.9へ移行した時のような巨大な変更・ギャップを避け、現在のRubyからの「連続した変化」としてのリリースになるとのことでした。
Rubyの今後25年については予測が難しいと前置きしたうえで、
・よりインタラクティブなプログラミング環境の実現(アイデアとして、AIペアプロ、対話的なコンパイラなど)
・非均質な計算環境(例として、GPGPU、FPGAなど)への対応
といった変化の可能性があるとお話しされてました。
しかしながら今後も「人間(プログラマ)のためのRuby」というRubyの本質は変えずに開発されるそうです。
ちなみにこの日の午後、講演内で言及されたMJitを実装したRuby2.6.0-preview1がリリースされました。コミッターの皆さんありがとうございます!
ここからは「Rubyの今」というテーマで4つのセッションがありました。
「Ruby on Ruby on Rails」
松田明さんから、Ruby on Railsについて。
Ruby on Railsの登場によってRubyが大きく発展したことはもちろん、Rails以降のRuby以外の言語で作られたWebフレームワークはRailsライクなものが多数あることから、RailsがWebに対しても新しい価値を提供してきたことがわかります。
Railsは常に継続して開発され、前進しているので、松田さん曰く「Webそのものが廃れない限りRailsも使われ続けると予想できる」とのことでした。
Railsは現在Rails6を開発中だそうなので、楽しみにしたいと思います。
「RubyとInfrastructure as Code、そして大規模インフラ」
近藤宇智朗さんから、Infrastructure as CodeにおけるRubyについて。
「Infrastructure as Code(サーバインフラ管理のコード化)」の分野におけるRubyの強みはDSL(ドメイン固有言語 : 特定のタスク向けに作られた言語)を書くのに向いていることで、サーバの構成管理をDSLで記述できることで、インフラエンジニアの生産性に貢献しているとのこと(Chef、Vagrantなど)。
近年におけるWebサービス運用の大きな潮流として「マイクロサービス、コンテナ化、サーバレス」があり、現状これらの分野ではRubyで書かれたプロダクトが少ない。
しかしながらmod_ruby(Webサーバ)やHaconiwa(コンテナランタイム)などミドルウェアにmrubyを組み込んだものが登場してきており、将来的にmrubyを使用して新しいマイクロサービス/コンテナオーケストレーションを実現できる可能性について言及されてました。
「mruby、今IoT、組込界隈でこう使われています、最新事例紹介!」
石井宏昌さんから、mrubyの今について。
mrubyとはRubyと同じように記述できる軽量言語で、200KBのRAMの環境があれば動作します。
またRubyと同様VM上で動作し、組み込み用の大抵のOSのに対応しているそう。
近年はIoTプロダクトに多数採用されていて、いくつか例が紹介されていましたが、その中では「車載アルコール検知器」が個人的に気になりました。
mrubyの今後の計画として、Web上のmrubyに関する情報不足の解消、Ruby2.0にキャッチアップ、グローバルカンファレンスの企画などに取り組んでいくとのことでした。
「Data Processing and Ruby in the World」
田籠聡さんから、データ処理とRubyについて。
データ処理には「COLLECT(収集)→SUMMARIZE(集計)→ANALYZE(解析)→VISUALIZE(表示)」の4フェーズがあり、その内COLLECT(収集)の分野ではRubyで作られた強力なツールがあります(fluentd→Ruby、Logstash→JRuby)。
またAI・機械学習用のソフトウェアをRubyで実装する、現在進行中のプロジェクトもいくつか紹介されました(sonets/cumoなど)。
この分野でRubyを使うためのエコシステムが構築されつつあり、より多くの人がこの動きに参加して発展していくことが大事という話もあり、
僕も注目していきたいと思いました。
「Matz&Miyagawa 未来を語る特別対談」
最後にまつもとさんと宮川達彦さんの「Rubyの未来」についての対談。
現在のRubyは成熟した言語になっており、互換性のないバージョンアップによるコミュニティの分断を避けるため、原則として非互換な変更はしない方針だそうです。
先のまつもとさんの講演で言及されたRuby3、Mjit、Guild、Steepについての話もありました。
この日リリースされた最新プレビュー版に実装されているMjitは高速化に寄与する反面、立ち上げのパフォーマンスが悪くなる懸念があるため、デフォルトでONにするかしないかを今後も検討していくとのことでした。
まつもとさんの後継者問題にも触れ、機械学習でまつもとさんの言動を学習したbotを作るというアイデアがあるそうです(笑)。
25年も開発が続くと色々な課題があるんですね。
【感想】
今回初めてRubyコミュニティのカンファレンスに参加しましたが、非常に充実した内容でとても楽しかったです。
Anniversaryイベントのためなのか、スポンサー企業ブースの展示も皆さんのRuby愛が感じられるものになっていました(今までに出版されたRuby本の本棚とか笑)。
僕がRubyでプログラムを書き始めたのはここ数年のことで、勉強を始めたころ(当時Ver 2.1だったと思います)から既に成熟したRubyの恩恵を受けてきた身としては、これまでのRubyの発展に携わってこられたコミッター・エンジニアの方々に感謝の気持ちしかありません。
今後自分もスキルアップして、Rubyの発展に貢献できるよう頑張りたいと思うようになった一日でした。
Ruby 25周年、おめでとうございます!