RubyKaigi 2023: Matz Keynote
yuiseki.iconのまとめ
プログラミング言語Rubyは、今年で誕生30周年である
Matzはキーノートにおいて、Rubyの生い立ちから現在までを語った
初期のRubyはMatzがほとんど一人で開発していた
しかし、この頃に考案された言語仕様が、30年間一貫している
長く通用する原則を考えることが重要である
その後にRubyを他の人に紹介して意見を貰った
自分とは違った視点の良い意見は積極的に取り入れた
また、この初期にRubyに関わりはじめた人は、いまでも強く貢献してくれている人がいる
Ruby 1.0の時期
ほとんどの開発者は、プログラミング言語に「便利さ」や「利便性」あるいは「利益」「便益」を求める
成長過程のプログラミング言語には、こうした利便性がない
しかし、開発者がいなければ、プログラミング言語が成長して利便性が高まることもない
数少ない開発者が、便益ではなく、ただ楽しみのために新しいことに挑戦する
こうした同志を探し出して、結束することが重要である
そのためには、情熱や動機を表現して伝える必要がある
Ruby on Railsが登場した時期
Rubyが成長していき、圧倒的な便益を提供できるキラーアプリケーションが登場した
ただ楽しみのために続けていくことが、いずれ便益を生み出す
また、圧倒的な便益があることを、広く・上手く伝えることも非常に重要である
そのためにはプレゼンテーションやマーケティングが重要である
Ruby 3.xへの道のり
自分でも実現できるかどうかわからないような、無理めな目標を掲げる
ただし、この目標は達成することに戦略的に大きな価値のあるものでなければならない
どう実現するかはみんなで考えよう!
そうすると思わぬアイデアを試行錯誤し、実践してみせてくれる人が現れる
また、リーダーは時に、自分のダメなところもさらけ出すことが、重要である
周りが思わず助けたくなる・手伝いたくなるようなウッカリさ
「まったくしょうがないなあ、じゃあそこは私がやりますから」みたいに思ってもらう
30 Years of Ruby
1993年2月
名前が先に決まった
Lesson: 良い名前を決める
1993年2月~1994年12月
一人で開発
v0.49
Rubyの基礎、原則が完成
ずっと安定
1994年12月~1995年12月
Alpha Release
@ニュースネット
ブロックの{}ではないdo...end記法などはこの時代に生まれた
1995年12月~1997年8月
First Public Release
v0.95
メーリングリストを作った
1997年8月~1999年11月
v1.0
Chicken and Egg Problem
99% Benefit Seekers
1% Just for Fun
Seek Comrades
Share your Motivation
1999年11月~2004年11月
Books and Conference
First Ruby Book
オブジェクト指向スクリプト言語Ruby
First English Ruby Book
ピッケル本
怒涛のメール
半年ちょっとくらいで書かれた
JAOO
カンファレンス
9.11
DHHがカンファレンスの手伝いをしていた
First RubyConf
炭疽菌騒ぎ
40名以下
人と人とのつながり
2004年11月~2009年1月
Killer Application
Ruby Association
DHHのデモ動画がすごかった
15分でToDoアプリを作る
2009年1月~2013年2月
v1.9.1
v1.9でYARVを導入してv1.8と互換性が失われた v1.9.1で互換性が取り戻された
2013年2月~2015年11月
v2.0
New Features
Path to Perfection
The End of Rails Illution
2015年11月~2020年2月
ジョン・エフ・ケネディ
アポロ計画
2020年2月~いま
Ruby v3.0
DHH
vs TypeScript
@dhh: TypeScript sucked out much of the joy I had writing JavaScript. I’m forever grateful that @yukihiro_matz didn’t succumb to the pressure of adding similar type hints to Ruby. May we forever enjoy this beloved language without 🙏 https://t.co/KqttpLzo8B Matz:
静的型付けを書かなくても型解析できるはずだ!!
Alt Ruby impls
ISO
30170:2012
Concise
Readable
Extensible
Rubyは30年生き残った
次の30年生き残れるか?
改善点
Performance
Concurrency
Tools
Types
TypePrefみたいなことができそう
人間が型を書かなくても十分に推論してくれるんじゃないか
型に書ける以上のことを推論できる日が来るかもしれない