にふうち回避

日々のプログラミング勉強の記録

*自分自身の勉強の備忘録としての記事がほとんどです.内容の正確性などは担保されません.

RubyKaigi~最終日感想~

最終日

error_highlight

感想

  • 何気なく使っていたerror_higlightだが仕組みについて恥ずかしながら考えたこともなかった。かなり泥臭く地道な実装なんだな…
  • エラーメッセージの改修で立ちはだかる壁が脅威対応のためのescape処理になるとは。発表を聞いていなかったら何も考えずに3.2で使っていたと思うが、これからは「このエラーメッセージの裏にも大変な努力が…」と思いながら見れる。
  • 正規表現結構好きだし、しょっちゅうケアレスミスでエラー出しまくるのでなのでエラーメッセージの表示改良と実装に関するコントリビューションとか将来挑戦してみたい

RBS自動生成

感想

  • happy hackingを目指そう
  • 実験的なgemであるからこそか、シンプルで拡張性に富んだ実装ができるように意識されている。実際多くの人に使われて、さまざまなmiddleware実装例が出てきそう

     (黒曜さんの実況ツイートめちゃくちゃ自分のメモで引用させてもらっています……ありがとうございました。)

  • と思っていたが、実はとんでもなく規模がデカく野心的で既に形を成している存在であると後半で気づいた。とにかく触って動かしてみないとイメージは湧かないな

Fiber Scheduler

感想

  • スケーラブルなDNSサーバー作れないというフラストレーションからFiber、Asyncを作り、ストリーミングにも対応しかれた変遷を聞きながら、こういう方々が次の技術を作っていくんだなと改めて実感。Async一つでも、non-blockingにするために細かないところまで対応していて、情熱とモチベーション、余念のなさがすごい。
  • Railsサーバーもかなり高速化できる点、大量のコネクションに対応できるAsync::websocketについて特に興味が湧いた。
  • Fiberに対する予習をしっかりしてから読み直したい
  • 講演後に質問をしたら気さくに答えてくれて、Tシャツももらった。Rubyコミッターはみんな人柄がいい
  • いただいたTシャツ。Rubyが「A Sink(async)」を使っている。  

なんでRubyビルドはこんなに大変なのか?

感想

  • とりあえず次期MacOS13に上げてはいけない。Rubyが動かなくなる。
  • M1Mac+DockerでRails環境構築を最近したのでわかるーと思い続けていた。「何もしていないから壊れた」のは当然で、常に変化に対応するために何かし続けること、そして「なんか壊れました!」という報告をあげることも立派なコミットであることは胸に刻みたい。
  • 初学者がより入りやすい未来(この辺りはWASMでもかなり良くなりそう)を提供できる一助になれるように頑張る

BetterRubocopWold

感想

  • 「Rubyの与えてくれる自由はRubocop越しだと初心者に届いているのか?という疑問」などについては初心者として首を縦に振り続けながら聞いていた。なぜこのルールが必要なのかを考えることも大事だし、所属組織では「コードの本質以外で、かつ人の関わ流部分もあるところで議論したりぶつかったりするのは勿体無いから基本的にはRubocopがOKしていたらよしとしましょう」という文化であると教わってはいるが、おっしゃっているジレンマはとてもうなづけるものだった。
  • その上で「強制レベル.yml」「参考レベル.yml」二本立てにするというアイデアは、ジレンマを解消できる魅力があると感じた。「どれをどっちに?」などの議論が起きるという新たなコストは生じると思うが実験としても楽しそう。
  • Rubocopコミッターitocさんのチャットコメント  

  • 万葉社の新人チュートリアルは勉強する際にとてもとてもお世話になったので、その感謝を直接お伝えできたのも個人的には収穫

おまけ

Ruby Ethereum

感想

  • プロフィール画像はなんで骨折しているんだろう……
  • Ethereumの基本要素をRubyで実装してみたというお話し。
  • 非常に面白そうでワクワクするが、自分のブロックチェーンに対する知識が貧弱すぎて理解ほとんどできていない。
  • Rubyがブロックチェーンサービスも支え始めたら楽しいだろうなと思った

String meets Encoding

感想

  • メソッドの実行内容や測定方法などを丁寧に紐解きながら話してくださっていて、非常にわかりやすかった。サラッと流されてしまうことも多いが、一つ一つ検証再現するように話を進めてくださっていたので入り込めたと思う。
  • Rubyの行っている不要なエンコーディングチェックを部分的に無効化することで速度改善を実現できました、と一言で言われてしまうと良くわからんになっていたと思う。
  • Charactor(文字コード)愛を感じられる内容
  • 部分的にRubyらしさを抑えて高速化する点は二日目のJuliaを使ったJITコンパイラのお話しにも通じる部分を覚えた。このような速度改善の取り組みが各所で進んでいくとRubyの処理速度は改善されていくと思うが、果たしてそれはRubyである必要は…?となりかねない?(今回の話はやや違うが)
  • この実験的改善はGitで確認できる  github.com

Steepはいいぞ(Steep開発者)

Ruby programming with types in action - RubyKaigi 2022

感想

  • 3日間、5sessionとおして聞いてきたRBSトークの締め。Steep開発者によるもの。
  • TSを書いていた自分からするとRubyは自由すぎて、ドメイン知識やRuby経験が少ないとどう書けばいいのかわからない(ここの引数は?何を扱っているmethodなの? など)、と思うところが多々あったのでRBSが広がっていってほしいなという気持ちは強い。Sessionの中で紹介された「union使っておくとcase内で網羅検査して型絞り込みできる」点はめちゃくちゃ魅力的
  • RBS+Steepで提供される、IDEでのエラー表示や補完などはめちゃくちゃいい。YARDで一定カバーできるが、「そこまでするなら型定義ファイルかこう」とも思ってしまうため。
  • とは言え既存コードを全て型チェクしてーとやるのは辛いので、述べられていた通り「自分がフォーカスしたいところから」やっていこう。

Key-note(YJITができるまで)

Stories from developing YJIT - RubyKaigi 2022

感想

  • のっけからわからず、有識者のツイートやチャットをひたすらみ続けることしかできなかった。
  • 途中でそれもなくなり完全にわからなくなってしまった。ただ、言語を開発するということはこういうローレベルなと向き合う事である、という当たり前の事実を再認識させられた

終幕

感想

  • 登壇者、運営のみなさんはじめRubyコミュニティー全体に本当に感謝している。参加して本当によかった。

全体通しての感想はまた後で