- バックエンド / リーダー候補
- PdM
- Webエンジニア(シニア)
- 他19件の職種
- 開発
- ビジネス
RubyKaigi 2023 参加記 #1 - Matz Keynote(Day1 Keynote)
Photo by Zachary Nelson on Unsplash
こんにちは! Wantedly 推薦基盤チームのnasaです。
本記事では1日目の最初のセッションであるMatz Keynoteについて紹介していきます。
去年のKeynoteではYuta SaitoさんによるRuby meets Web AssemblyというRubyのwasm対応に関する技術的なkeynoteとなっていましたが、今年はkeynoteは我らが(?)Matzによる「Ruby 30年間の歴史の振り返り」でした。
このセッションでは、Rubyの30年間の歴史を振り返りつつ過去の失敗や成功で培った教訓、将来の展望について話していました。
軽くセッションの内容、概要には触れますが詳細に説明するというよりは僕の感想がメインとなります。
RubyKaigi会場の雰囲気が少しでも伝わればと思います。
会場の雰囲気
僕自身、オンサイトのカンファレンスに参加するのは数年ぶりだったからか、会場の雰囲気が凄く印象に残っています。それを少しでもお伝えできればと思います!(早く内容を教えろよ!って感じかもしれませんが、僕が最も伝えたいと思ったのは会場の雰囲気だったので最初に持ってきました。)
このセッションは一言でいうと笑いあり、教訓ありといった発表でした。
Matzの軽快なジョークで会場は笑いに包まれていた印象です。30年間もあればいろんな苦労があるようでブラックジョークも交えつつ楽しそうに話されていましたw
Rubyのコンセプトの楽しくプログラミング出来るのように楽しく、面白く聞けるセッションでした
Matz Keynote
概要
本セッションでは30年の歴史を下記のように区切って説明していました。
- 手元だけで開発している時代 1993-02 ~ 1994-12
- Alpha Release 有志に触ってもらう 1994-12 ~ 1005-12
- first public release 0.95 (年代?)
- Ruby 1.0 (年代?)
- Ruby初の技術書 1999-11 ~
- Ruby初の英語技術書 2000-10
- JAOO登壇 (2001-09)
- 初のRubyカンファレンス (2001-10)
- Rails登場 2004-10 ~ 2009-01
- Ruby 1.9.1 互換性を犠牲にしたリリース 2009-2013
- Ruby 2.0 20周年! 2013 ~ 2015
- Ruby 3x3 2015-11 ~ 2020-02
- Ruby 3.0 2022 ~
詳しくはスライドや動画が公開されると思いますのでそちらをお待ち下さい。
教訓
Matzさんが話していた教訓のうちいくつかピックアップして紹介しようと思います。
- コミュニケーションとコミュニティの重要性
- 開発者にもマーケティング能力は必要
- 人々のギャップを埋めることの重要性
コミュニケーションとコミュニティの重要性
Alpha Releaseの際には20人ほどの知人に利用してもらいフィードバックを得たり、Public Releaseの際はメーリングリストで多くのバグ報告をもらったりと初期の頃から多くのフィードバックをもらい改善を続けてきたと話されていました。また、改善だけでなくRubyの普及も活発なコミュニティのおかげだと語っていました。
Ruby 1.8から1.9へのアップデートは互換性がなくコミュニティとの断絶が起きてしまったとも話していたのでそれが合ったからよりコミュニティのことを考えるようになったのかもしれませんね。補足ですが、当時のアップデートはコミュニティを蔑ろにしたのではなく技術的に仕方のないものだったようです。
Rubyの普及と成長は、開発者同士のコミュニケーションや活発なコミュニティに支えられていることを改めて実感しました。
開発者にもマーケティング能力は必要
良いものを作れば広まると思っていたようですが、Ruby on RailsをDHHが広めていく様子を見て、良いものを作るだけでは不十分だと痛感したようです。
僕も推薦基盤チームとしてデータサイエンティスト向けのツールを開発、リリースしているのですが思うように広まらず似たようなことを考えていました。プロダクト開発者がみんな考えることかもしれませんね。
人々のギャップを埋めることの重要性
Rubyは初期の頃から、「楽しくものづくりしたい人」と「利益を求める人」とで考え方のギャップが合ったようです。
初期のRubyはプロダクトで十分に使えない時期では、利益を求める人達は開発リソースを提供してくれないので楽しくものづくりをしたいひとがメインのRuby開発者でした。
その後Ruby on Railsの登場によってRubyがweb開発において多く利用されるようになり利益を求める人が多くRubyコミュニティに加わりました。
双方の開発者は考え方が異なるためRubyを改善し続けていくためにこのギャップを埋める必要があったという話でした。
型システムの話
最後に型システムの展望について説明します。
型による利点としては早期にエラーを発見できる(実行時ではなくコンパイル時エラー)ことや、効率的なコーディング環境があると思います。
これをプログラマーが型を記述することによって実現していますが、他の方法があるのではないか?口で言っても信じてくれないので実現すると語っていました。
余談ですが、ChatGPTでRubyの型が推論できるのだから出来るだろう!という話もしていました。期待!
一言でいうと、静的型付けのメリットを享受する方法としてプログラマーが型を記述する方法が主流だが、他にもっと良い方法があるのではないか?それを提供していきたいという話でした。
終わりに
完全に僕の感想ベースの話だったのですがRubyKaigiの面白さやワクワク感が少しでも伝わればいいなと思います。
技術者としてはRubyの型システムの話、プロダクト開発者としてはRubyユーザー(コミュニティ)との関わり方が学びになったと感じています。
興味深い発表をありがとうございました!
Wantedlyから参加したエンジニアが他の記事をどんどん出していきます。そちらも御覧ください!!