RubyKaigi 2018 に行きました

開発のoieioiです。

RubyKaigiの前日に「うちの会社から誰もRubyKaigi行かなくていいの!?」って話が持ち上がり、行くことになりました。だいぶ日が経っちゃいましたがそのレポートです。自身の復習も兼ねての、登壇者の方のスライド・ブログ記事・gitリポジトリなどのリンク集と感想になっています。小並感。

1日目

Keynote by まつもとゆきひろ

  • ことわざと、それに関するプログラミングいい話。
    • 名は体を表す
      • プログラミングにおいてネーミングは超大事。
      • ネーミングには二種類あり、振る舞いに対しての名付けと、プロジェクトに対しての名付けだ。
      • yield_self は悪い。
      • 「Ruby」は良い名前をつけたと思うが、今ならこの名前はつけない。なぜならググラビリティが低いから。
      • Go とか Swift はググラビリティ低いけど、バックに大きな資本があると悪い名前はあんまり問題にならない。
  • Q: 型に関して今後のrubyはどうなるか?
    • Rubyに型宣言が入ることは決してない。
    • 静的な型があるかどうかでは、あったほうが便利なケースが多い。
    • しかし、人間が十分賢ければ型は判断できる。同様にコンピュータが賢くなれば人間と同様に型の判断ができるようになるだろう。
    • プログラミング言語の今後としては、静的な型チェックはコンパイラがすべてやってくれる可能性は高いと思う。
    • なので、型アノテーションがある言語は古くなるだろう。Ruby はダックタイピング+強力な型推論がある言語になってほしい。

bancor: Token economy made with Ruby

Hijacking Ruby Syntax in Ruby

All About RuboCop

  • スライド
  • RuboCop の制作者によるRuboCopの歩み
  • 感想
    • いつもお世話になっておりますという気持ちになった

RubyGems 3 & 4

A parser based syntax highlighter

  • スライド
  • RubyKaigi 2018 Proposal: A parser based syntax highlighter – pockestrap
  • テキストエディタのシンタックスハイライターは、言語のパーサーを正規表現で再実装していて、不正確なことがある。
  • パースは言語にやらせて、エディタはそいつをつかうだけの形にしたい. バックとフロントを分離したい
    • バック: pocke/iro
      • Ripper をベースにしたパーサ。言語自体のパーサとほぼ同じなので、正確なシンタックスハイライトができる。
    • フロント(for vim) pocke/iro.vim
  • 感想
    • 魅力的なコンセプトだと思った

LT大会. 発表順に

リンクはスライド

  1. From String#undump to String#unescape
  2. Create libcsv based ruby/csv compatible CSV library
  3. Rib – Yet another interactive Ruby shell
  4. Improve JSON performance
  5. Improve Red Chainer and Numo::NArray performance
  6. Using Tamashii Connect Real World with Chatbot
  7. Find out potential dead codes from diff
  8. Test asynchronous functions with RSpec
  9. To refine or not to refine
  10. 5-Minute Recipe of Todo-app
  11. Symbolic Execution of Ruby Programs
  12. Schrödinger’s branch

2日目

My Way with Ruby

  • スライド
  • RubyKaigi 2018 – My way with Ruby #rubykaigi – 株式会社クリアコード ブログ
  • Rubyでどんなことを可能にしてきたか?
    • 1つやりたいことがあるたびに、周辺にたくさんのライブラリを作っていった。
    • たとえば、Web Feed が取得したい -> RSS/Atomパーサ, REXML
    • たとえば、プレゼンがしたい -> Rabbit -> Ruby/GTK(GUIツールキット) -> Ruby/GI -> …
    • etc
  • 感想
    • 自分が使いたいものを作り、その過程で多くのツールが生まれていくのはプログラマらしくてかっこいい。
    • Rabbit 使ってる登壇者が多く、使ってみようと思った。 rabbit-shocker/rabbit

Controlling Droids™ with mruby & Go

Improve Ruby coding stye rules and Lint

extend your own programming language

Firmware programming with mruby/c

RNode with code positions

  • スライド
  • Code Location, その処理がコードのどこに書かれているかを突き止める話。
    – 行情報だけでなく、列情報もとりたい。

    • ブランチカバレッジ、コードカバレッジを算出するために必要になってきた。
    • Rubyのコードはどう実行されるか

Type Profiler: An analysis to guess type signatures

Ruby Committers vs the World

  • Ruby コアコミッターが普段どんな会議をしているのか見せる会
  • Google ドキュメントを見ながら話していた
  • 感想
    • わいわいしてた。
    • コアコミッタはRailsをあんまり使わないらしい。

3日目

Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby

Ruby code from the stratosphere – SIAF, Sonic Pi, Petal

The Method JIT Compiler for Ruby 2.6

Build your own tools

How to get the dark power from ISeq

Three Ruby performance projects

  • Rubyのパフォーマンス向上の話。
    • float が遅かったので早くした
    • RTL(レジスタ転送レベル)
    • MJIT
  • 感想
    • 低レイヤーの話全然わからなかった…

TRICK 2018 (FINAL)

まとめ

  • こんなプログラマーたちが日々 Ruby をつかいやすくしてくれてるんだな〜と思った
    • 感謝の気持ちでいっぱいになった
    • 半分はC言語の話だった
    • 低レイヤーな話はレベルが高すぎてほぼ理解できず。
  • 型, Ripper, S式, JIT, RuboCop の話が多かった
    • 言語のカンファレンスだと言語構造に迫ったここら辺の話が多くなるのか
    • とりあえず『メタプログラミングRuby』を読み始めた

綺麗なバッヂをいただきました