ENECHANGE Developer Blog

ENECHANGE開発者ブログ

RubyKaigi 2022 参加レポート : Day 2 前半

ENECHANGEで働いているokamotoです。

前回のDay1に引き続きDay2についても書いていきます。

ENECHANGEのishibashiと一緒にRubyKaigi2022にオフラインで参加してきました!

今回も「私がRubyKaigi 2022に参加して感じたこと」、「私が参加したセッションで話されたことの要約と感想」を主に書きます。

RubyKaigi 2022 ENECHANGE
RubyKaigi 2022

Day1の記事をまだご覧になっていない方はこちらも是非御覧ください。

tech.enechange.co.jp

Matz Keynote

要約

※okamotoの意訳が含まれます

Rubyの価値について

Rubyは価値を発揮できているのか考えてみよう

「Rubyは死んだ」と毎年言われている

例:

  • Rubyは遅い
  • AI/ML/Web3が主流となるのでWebが本職のRubyに居場所はない

いろいろなことを言われているが、その意見は本質を突いているだろうか、Rubyは価値がないのか

価値とは以下のようなものがある

  • Productivity
    • 生産性が高いこと
  • Community
    • Rubyの価値の中で最も重要なもの
    • 何万ものGemがあるということもすごいこと
  • Joy
    • 喜び
      • Matzさん個人的には、感謝されること
  • Money
    • Rubyを使ったサービスがお金を生み出すようになったからこそ、会社も儲かっている
    • RubyKaigi初期カンファレンスは30人くらいしかいなかった
    • 会社のお金でRubyKaigiにも参加してくれる人が増えている
    • RbuKaigiのスポンサーになってくれている会社もたくさんいる

これらを見ると、Rubyはしっかりと価値を発揮していると思える

価値を生み出す限りは周りのノイズを気にする必要はない!

rubyは前進し続ける!

前進し続ける

前進していくにはどういうことが必要か

  • Publicity
    • 広報、ブログ、Twitter
      • 正しい情報をしっかり発信してほしい
      • 今日参加されたみなさんへの宿題です!
        • Tech blogなりTwitterでRubyKaigiの感想、体験談を発信してください!
        • プロダクト自慢いっぱいしてください
  • Reporting Bugs/Feature Requests
    • 新機能の多くはコミュニティからの提案
    • 8-9割はrejectされるのはご容赦
  • Fixing/Implementetion
  • Documentation Update
  • Gems
  • Conferences/Meetups
    • インスピレーション得られるのが大きい
  • Triage
    • Developer Meeting
    • issueが多すぎる
    • Bookkeeping
    • PMの役割できる方が必要

Rubyをどうしていきたいか

プログラミング言語人気ランキング1位になりたい、年収ランキング1位になりたい、というのは思わない

楽しい言語であり、コミュニティであり、価値を発揮できる言語でありたい

Ruby3.2で追加予定の機能!

  • パフォーマンス改善
  • RUby on WASM
  • YJIT on Rust
  • YJIT on ARM64
  • Memory Allocation
  • MaNy(N:M threading)間に合わないかも
  • Data objects
  • syntax_suggest
  • error_highlight
  • ツール改善

感想

周りの声を気にして悲観的になるわけではなく、現状の課題はしっかりと受け止めた上で前へ進んでいこう!という強いメッセージを受け取りました。

また、今回初めてRubyKaigiに参加させていただいて、あらためて素晴らしいコミュニティがあることを実感しました。

恩恵を受けるだけでなく、私自身もしっかりと貢献していきたいと強く感じました。

補足:

MatzさんのMoneyの部分のお話にもあった企業からのスポンサー

ENECHANGEはRubyKaigiゴールドスポンサーとして応援させていただいています。

RubyKaigi 2022 ENECHANGE
RubyKaigi 2022

Make RuboCop super fast

要約

first commitは2012年、今年で10周年!

高速化の話

Rubocob 2x2(Ruby3x3をリスペクト)を掲げて速度改善を続けてきた

  • Caching
  • Mluti-core
  • Reduce unused requires
    • オプション指定の場合で一部実行の場合もすべて実行されていた
  • Daemonize(server-mode)
    • 850倍早い!!
  • rubocop-deamon gem
    • 既存は毎回pid違うプロセス起動
    • TCPsocket
    • 起動中pidを使うようにした

別コマンド?オプション?

サーバーモードのコマンドは

$ rubocop --server

rubocop-serverのような別コマンドという案もあったが、おそらくrubocopコマンドとしてそのまま使いたいけど早くしてほしいという思いがあると考え、--serverオプションを足す方針にした

現時点では、デフォルト(オプションなし)でサーバーモードにはなっていないが、設定ファイルで定義することでデフォルトでサーバーモードとできるようなPRを出している

+server

  • 以下のようにrubocop -v で+serverを表示
    • +YJITのマネ(ruby)
    • バグ報告などを出してもらうときにバージョンを載せてもらう。その際にserverモードどれくらい使っているかを判定できる
% rubocop -V
1.36.0 (using Parser 3.1.2.1, rubocop-ast 1.21.0, running on ruby 3.2.0) +server [x86_64-darwin19]

感想

日頃お世話になっているrubocopの高速化はとてもうれしい!

オプションに対する話や、-vに情報を付与することでバグ修正などの際にも役立てるというようなGem開発裏話のような話はとても興味深かったです。

場外戦

自作キーボード展 RubyKaigi2022 1自作キーボード展 RubyKaigi2022 2
自作キーボード展

RubyKaigiオフラインでの盛り上がりはメインセッションのみではない。

ブースやお弁当、廊下での雑談など至るところで活気が溢れている。

その中のひとつに、廊下でゲリラ的に開催されていたのが、「自作キーボード展」

それぞれが好きなことを語り合う、こういうのいいよね。