BuriKaigi2021 で Ruby 2.0 〜 Ruby 3.0 までの話をしてきた

はい、ということで開催されてからだいぶ時間が経っちゃったんですが先月末に開催された BuriKaigi2021Ruby 2.0 〜 Ruby 3.0 の話をしてきました。

Ruby 2.0 から Ruby 3.0 を駆け足で振り返る

と、ここでならいつも雑に振り返りを行うのですが以下のブログに影響されてもう少し掘り下げてまとめてみようかと思います。

登壇するきっかけ

元々はわたしがよく参加している勉強会に BuriKaigi の関係者の方が参加していることが多くて『今年はコロナで大変だけど BuriKaigi をやりたいよねー』っていう話を前からしてはいたんですよね。
わたし自身は BuriKaigi 自体参加したことがなかったんですが『どうせなら登壇してみたいなー』みたいには前々からちょっと思っていました。
で、12月の頭ぐらいに『来年 BuriKaigi やりますー』って話を聞いて『○○○みたいな話をしてみたいんですが登壇者の募集とかってどうなっています?』みたいな感じで前から温めていたネタで打診してみました。
その時はまだ確定ではなかったんですが 12月下旬ぐらいに GO サインがでて登壇することが確定しました。
まあ完全に勢いとコネですね。人生にだいじだいじ。

テーマ選定

わたしは主に LT の場で話すことが多いのですが、その時のテーマ選定はだいたい

  • わたしが話したい内容か
  • 参加者に刺さる内容か
  • 時間内で話せそうか

あたりを基準として決めることが多いです。
具体的に『何を話すのか』は直前まで悩んでいることが多くて LT を申し込む時点ではキマってないことの方がおおいです。
本当の意味で『その時に話したいこと』を話しています。そっちのほうがモチベーションが上がりますしねー。
ただし、今回の BuriKaigi2021 の場合は『最初にこういう内容で登壇したい』という形で打診をしたので『最初に話す内容を決めた』っていう点でいつもとはちょっと違っていました。珍しい。

具体的なテーマ選定

今回の BuriKaigi2021 では最初から以下のような基準で話したいなーと思っていました。

  • キャッチーな話をしたい
  • あんまり Ruby のコアな話はしない
    • BuriKaigi の参加者層的な意味で
  • けど Ruby をもっと知ってもらいたい!
  • せっかくなので Ruby 3.0 の話をしたいなあ…

特に『せっかくRuby 3.0 がリリースされる(された)のでその話もしつつ普段は Ruby を知らない人にも興味がある内容を話したいなー』という点を重点的に考えていましたね。
そんなことを考えている時に『そういやわたしって Ruby 2.5 から本格的に Ruby をはじめたけどそれ以前のバージョンはよくしらんなーなんか Ruby の軌跡みたいなの話せると面白いのかなー』と思って『あーー『Ruby 2.0 〜 Ruby 3.0 で Ruby がどう変わってきたのか』みたいなのを話すと面白そうかなーー』っていう感じでテーマが漠然と決まった感じですね。
とりあえず『Ruby 2.0 〜 Ruby 3.0 のリリースノートをまとめて話そ〜〜』みたいに雑に決めました。

テーマの深堀り

ざっくりと話すことを決めたのでここでは具体的にどんな内容を話すのか考えていきます。
わたしの場合は実際にスライドを書くまでにある程度話したい内容を箇条書きにして書き溜めて行くことが多いです。
なので今回も決定してから登壇の 1週間前まで手元で話したいことを以下のような感じで書き溜めておきました。

こんな感じですね。
登壇時間は 30分だったので各 Ruby のバージョンを 2分で話すと 2 x 9 で 18分になります。
残り 12分を穴埋めするために Ruby とはRuby 2.0 以前の歴史 みたいな話も追加して話すことにしました。
更にどうせなら Ruby 3.0 のことも少し話したいなーと思い以下のように追加しました。

うーん、ちょっと 30分だと心もとなくなってきました。
で、ここからは裏話なんですが最初は登壇時間が 30分だったんですがわたしの後の枠が空いていたので +15分してもらって合計45分の時間に延長してもらいました。 いえーい。
なので、更に話すことを追加して最終的には以下のようなアウトラインが完成しました。

  • 自己紹介
  • Ruby とは
  • Ruby 2.0 以前の歴史
  • Ruby 2.0 ~ 3.0 までを振り返る
  • 最近のモダンな機能紹介・デモ
    • パターンマッチ
    • 1行 in
    • 右代入
    • Ractor
    • 型周りの話
    • irb
  • まとめ

ポイントとしては irb のデモを最後に入れたことですね。
時間が余れば irb のデモを長くすればいいですし、時間が足りなければそこを短くすることで時間を調整することができると思っていました。
まあ実際はガバガバだったんですけどね…。
これを元にしてスライドを書いていきます。

スライドを作る

上記のアウトラインを元にしてスライドを書いていきます。
実際にスライド作成に取り掛かったのは登壇の1週間ぐらい前になります。

スライド作成ツール

スライド作成はいつも reveal.js で作っています。
markdown でシュッとスライドを書くことができて、なおかつミニマムな構成で完結しているのが気に入っています。
レイアウトとかも css などをいじれば調整できますしね。

スライド作成と練習

今回のスライドはちょっと量が多かったのでまずはかける項目から書いていきました。
Ruby 2.0 ~ 3.0 までを振り返る はひたすら当時のリリースノートを参考にして Ruby を知らない人でもわかるような機能をピックアップしてスライドに書いていきました。
逆にいえば Ruby を使っている人しかわからないような細かい変更はあんまり書かないように心がけていましたね。
だいたい各バージョンが 1〜2分ぐらいで収まるような量にしつつ、わかりやすいようになるべくサンプルコードも記述していきました。
書くのに一番苦労したのはやっぱり Ruby 2.0 あたりの話ですね。
最近の Ruby の動向はリアルタイムで追っているので経緯とか把握していることが多いのですが Ruby 2.0 の時代は全く知らないので調べるのに苦労しました。
あと単純に当時の資料とかを読んでると面白くてスライド書かないでずーっと資料を読み漁っていましたね…。
Ruby 2.0 以前の歴史 あたりの話も同様に昔話を聞いてるような感じで調べつつまとめていました。
最近のモダンな機能紹介・デモ に関しては最近いろんなところで話をしているので既存のスライドから拝借して書いたのでそこまで時間はかかりませんでした。
そんな感じで内容はひたすら書いていく感じで構成とか内容自体はそんなに変更せずに書いていきました。
スライド自体が完成したのは確か前日の夜ぐらいでわたしにしては早めに完成していましたね。
練習に関しては『喋り慣れてるからまあそこまで練習しなくても大丈夫やろガハハ』って感じでそこまでやっていませんね。
それを元にして以下のように 残り時間 経過時間 を書き留めて置きます。

  • 開始 (残り時間 45分) (経過時間 0分)
  • 自己紹介
  • Ruby とは
  • Ruby 2.0 以前の歴史 (37分) (8分)
  • Ruby 2.0 ~ 3.0 までを振り返る
  • 最近のモダンな機能紹介・デモ (20分) (25分)
    • パターンマッチ
    • 1行 in (15分) (30分)
    • 右代入
    • Ractor
    • 型周りの話
    • irb (5分) (40分)
  • まとめ

登壇中はこれを見ながら残り時間を確認していました。

発表前にやること

うちの環境は2画面なんですが登壇中に見る画面には、

  • スライド
  • タイマー
  • (必要であれば)エディタ

みたいに最低限必要な情報のみ見えるようにしています。
で、もう一方の画面には Twitter や Zoom のチャットなど聞いてる人の声がわかるような形にしています。
あとは水を用意したりとかですかねえ。
あ、あと見づらい人用にスライドは発表前に公開するようにしています。

発表中にやること

スライドを見ながら話しつつタイマーで残り時間を確認しつつ余裕があれば Twitter で意見をみつつって感じで登壇しています。
流石に最近はスライドを見ながらタイマーを見るのは慣れてきましたねえ。
喋り始めは緊張するんですが喋ってる最中はもう殆ど緊張する事はなくなっています。

発表後にやること

ひたすら Twitter を見て気になる発言には個別に反応するようにしています。
なんかそっちのほうが盛り上がっている感があるのとやっぱり何かしらのフィードバックがもらえると嬉しいのでそこはちゃんとこっちもフィードバックするようにしています。

発表を終えてみて

機会があれば BuriKaigi で話してみたいなーと思っていたのでそれが達成できて個人的にはかなり満足度が高かったです。
特にこの手の大きなカンファレンスはオフラインだとなかなか参加しづらいのでオンラインで登壇できる環境っていうのは個人的にはめちゃくちゃありがたいんですよねー。
また機会があれば参加してみたいです。
運営の方々、参加者の方々、ありがとうございましたー!!!