
RubyKaigi2023参加レポート(1日目)
概要
日程: 2023/05/11(Thu) ~ 2023/05/13(Sat)
会場: まつもと市民芸術館

スポンサートーク
Matzさん

Rubyの命名をするときに以下の候補があった
Coral
Tish
ソフトウェア、サービスの名前は重要
30年前の時点で「こんな言語が欲しい」という思想は決まっていて、今の方針もその通りになっている
Alpha Release: ソースコードの公開(1995年)
公開まではずっと一人で書いていたが、公開する時に他の方の意見が入ってきてdo endでくくる書き方を取り入れた
違う文化を受け入れることで自分に無い視点を学ぶことができる
First Public Release (0.95)
一般公開した時点で「自分の環境では動かない」みたいな声が上がった
そこで声を上げていただくことでコミュニティが出来上がった
コミュニケーションとコミュニティはとても大切。
Ruby 1.0
よちよち歩きでイマイチ伸びない時期
使う人は使うことで利益が上がると言う方と楽しいから使うという方がある
→99%は利益を求める方: 便利なツールとして求める
生まれたばかりの言語は利益提供するためにも機能が足りない
Rubyは知っているけど、他の言語を使っていますみたいな状況だった。
1%の方は楽しいから作ってくれていた→好きだからRubyを作る
自由ソフトウェアを作ることの喜び、モチベーション
Books and Conference
1999-11に最初の書籍出版: オブジェクト指向言語Ruby
2000-10に最初の英語の本を出版
→2000年問題が発生した年
英語でRubyの本を出版したいとの連絡。
著者から英語でRubyに対する質問のメールが沢山来た
言語とドキュメントが一致しない、どうしてこのように作っているか?など
8ヶ月くらいに書き上げて出版したらしい。
JAOO (2001-09)
Java and オブジェクト指向カンファレンス
この時にRailsの作者と関わる。
Rubyはこう言う言語だよ〜みたいな話をしたらまさか後にRailsの作者に。
First RubyConf (2001-10)
出席者37名くらい
現在ではRubyKaigiで1300名が登録するまでに成長
英語の本を出版してくださったり、Railsを作ってくださったり、そういった繋がりがあってここまで成長できた
Ruby on Railsの登場
Killer Application (Web)
Ruby Association
https://www.ruby.or.jp/ja/
この当時、15分でとりあえず動くWebアプリケーションを作れることは革新的だった
→ちょうどYouTubeが登場した時期だったので動画でUPした
マーケティングの重要性。
Ruby 1.9
Rubyをもっと良くしたい、新しい機能を追加したいと思ってもRuby1.8を使い続けたい方々がいた(後方互換が無かったため)
コミュニティの分断が発生した
Ruby1.8と1.9でかなり性能が違った(1.9がかなり速い)
パフォーマンスが上がるなら修正コストを払っても良いと言う考えで移行してくれる方が一定層あった
Ruby2.0 (20周年記念)
最初から考えていたけど、技術が追いつかなくて作れなかった機能の追加が行われた
Railsが出てきた時に画期的だったが、他の言語・フレームワークも同じような機能ができてきてRailsから離れるユーザーが出てきた
Ruby3x3 (Ruby3に向けて)
John F. Kennedyの言葉
→月に行きましょう。
https://en.wikipedia.org/wiki/We_choose_to_go_to_the_Moon
MJIT, YJITの実現
→ビジョンの提示と旗振りをしたことで実現した
リーダーシップとビジョンの大切さを学んだ
Ruby3.0
Rubyは死んだ、Railsは終わったみたいに言われる
言語ランキングで1位以外の言語には価値が無いのか?→そうではない
https://twitter.com/dhh/status/1655076668787097607?s=20
「動的な言語に対する未来は無い。」と言う思想
→そればかりが未来では無いと思う。
静的型付けはより早くエラーを発見できるが、型宣言を入れることが必ずしも正解か?
Rubyの別実装について
JRuby(2001)
IronRuby(2007)
TruffleRuby(2013)
mruby(2012)
別実装が増えてきたのはそれをやる価値が高まってきた
ISO Standard ISO/IEC 30170:2012
標準規格ができた(が、情報処理試験に導入されたのはPythonだった・・・)
100年後でも使われる言語
100年後の需要を考えることは厳しいが、目指すのは自由
完結・読み易い・拡張性が高い言語が良い
→Rubyは現時点で30年は生きている
パフォーマンス、ツール、型などの課題は残っている
→現時点でかなり改善してきた
ChatGPTでRubyのプログラムの型を推論して貰った
→結構な精度で認識通りの返答が来た
型宣言しなくても良しないやってくれる未来
「型宣言を入れない」思想を貫く
Make Regexp#match much faster
Hiroya Fujinami
@make_now_just
https://rubykaigi.org/2023/presentations/makenowjust.html#day1
Zennの記事発見。
正規表現がいかにパワフルか?
正規表現はすごくパワフルだが、それ故に発生すること
ReDos(正規表現マッチングに対する脆弱性)
参考に探してみた
https://qiita.com/flat-field/items/f5b0c803ba0b7030d97a
数十秒、数分正規表現の解析で時間がかかる。
Cloudflareで実際にダウンした事例がある。
これかな?
https://www.publickey1.jp/blog/19/cloudfrarecdn.html
Ruby gemsでも報告されている(nokogiriなど)
Ruby自身でReDosを防ぐ機能が必要になる。
VMベースの正規表現マッチング、メモ化を使用した事例(難しくて分からなかったので後で資料拝見します)
Power up your REPL life with types
tomoya ishida
@tompng
RubyKaigi Day1で発表した「Power up your REPL life with types」の資料ですhttps://t.co/RTyaM13SRe#rubykaigi
— ぺん! (@tompng) May 11, 2023
IRBの補完について
katakata_irb
".map("と打ち込んだタイミングで"&:to_s"が保管されたりする
メソッドチェーンのサンプル
語彙力がマジで無いですが、補完が凄かったです。
(Rubyでこれを実現するとは驚き)
文章で説明するよりも、実際に動かして見れば補完の凄さが分かると思うので是非触ってみてください。
LT
こちらはメモを取るのが大変なので、見ることに集中しました。
後で資料展開されることを期待します。
やたら松本さんが多い(笑)
スポンサーブース
Findyさん
筋肉CTOまさたんさん主催のランチにご一緒させていただきました!
ブースではアンケートに答えて飴ちゃん頂きました。
Findy Team+についても伺ってきました。
GitHubと連携することで自動で生産性を可視化してくれて、自分で入力するようなことをしなくても良いとのこと。
また、他社でのナレッジを共有するイベントを定期的に開催してくださっているとのことです。

noteさん
今まさに記事を書いていますが、普段からお世話になっているのでご挨拶に伺いました。
書き心地が良く、ちょうど課金を検討中でしたので課金した場合のメリットを伺ってきました。
AIを使った校閲やタイトル自動生成を行う機能があり、こちらは無料版でも使用できますが制限の上限が上がっているとのこと。
また、課金すると予約投稿も行えるようになるのでそれもまた良きです!
(技術課題の資料ですが写真がこれしか無いので添付します)

Fastlyさん
前職でめちゃめちゃお世話になったのでご挨拶に伺いました。
Twitterでお世話になっているShumpeiさんにご挨拶できました!
Fastlyさんのサポートが本当に神なので、心からの気持ちを熱弁してきました。
本当に大好きなサービスなので、また導入するチャンスがあれば(無ければ作る勢いで)またお願いしたいです。
ガラガラ回してトラベルバッグ頂きました!

1日目の感想
飛び入りの初参加で、勇気を出してランチもご一緒させていただきました。
(元々初対面の方と話すことが得意な方では無いので私の中では本当に勇気を出しました)
最近はフルリモートで仕事をしていて、貴族会の方々とは良くお話しするけどそれ以外のエンジニアの方とお話しする機会もめっきり減っていたので本当に良い刺激を受けました。
明日は本日立ち寄らなかったブースに伺いつつ、まずは今夜の交流会(飲み会)で自分の壁を破って色々な方とお話ししてきます!
実際にこちらに参加してたくさん交流してきました!
お話しした皆様、ありがとうございました😆