RubyKaigi 2019 Day1レポート
RubyKaigi 2019
株式会社ねこじゃらし エンジニアの中山です。 2019年4月18日から3日間、RubyKaigi 2019が開催されます。 その1日目に参加してきましたので、その感想などを簡単にまとめようと思います。
まつもとゆきひろさんのKeynote
Ruby の生みの親である Matz こと、まつもとゆきひろさんの講演から始まりました。 Ruby 3 についてがメインで、パフォーマンス改善・静的型付け・その他新機能など盛りだくさんでした! 個人的にはRubyが静的型付け可能となるためにどうするかがなかなか興味深かったです(ガチガチに型宣言するというよりは、型プロファイラや型チェッカによって型付けをおこなう)。まつもとさんの話から、Ruby 本来の設計思想である Enjoy Programming が根底にあるんだなぁと改めて感じました。
印象に残った講演
午後は各ホールに別れての講演がありました。 その中でも特に印象的だったお話を少しご紹介します。
Write a Ruby interpreter in Ruby for Ruby 3
クックパッドの笹田さん(Ruby のフルタイムコミッタとして有名!)による講演。 題の通り、Ruby のインタプリタを Ruby (+C) で書くための定義やその性能評価について。 英語の講演ということで少し緊張しましたが、とても聞き取りやすい英語で、しかも日本語で書かれた発表内容の事前資料 までご用意されていて、大変わかりやすかったです。ここで色々書くよりもご覧になった方がわかりやすいと思いますので、ぜひご覧ください。私もあとでまた読み返します......!
RMagick, migrate to ImageMagick 7
弊社のサービスでも RMagick 使わせていただいていた(はず)と思い、会場へ。
決して他の会場が全て In English だったから... とかではないです。
登壇者は Shizuo Fujita さん (@watson1978)
RMagick の主要なメンテナー3名のうちのお一人。Fujita さんがプロジェクトに参加された当時、RMagick には主に「セットアップの不具合」「メモリリーク」「SEGV」という問題があり、それをコツコツと解決されていたそうです。
私が特に印象的だったのは「メモリリーク」に関して。Fujita さんはメモリリークの問題だけで56件もの修正をされているみたいです! Fujita さん曰く「死ぬほど大変だった」とのこと......。
メモリリークの原因も様々で 例外が発生によって、メモリ領域解放のコードまでたどり着かない
単純にメモリ解放のコードがない(忘れている)
間違ったAPIの使い方をしている
など、コーディングあるあるのような身につまされるような、そんなお話でした。
が、第4の原因として挙げられていた そもそも ImageMagick でメモリリークをしていた
という内容には会場のみなさん爆笑でした。そちらもすでに修正依頼を出されて、修正済みだそうです。ご利用の際は最新の ImageMagick にアップデートしましょう。
このようなバグの修正や ImageMagick7 をサポートするためなど色々手を焼かれているようで、「だいぶつからった」と講演中に4, 5回おっしゃっていたような気がします......。Fujita さんのような方のサポートがあって Gem やライブラリが使えていることを、我々エンジニアは忘れてはなりませんね。
まとめ
上記講演以外にも、Ruby 3の話や 2.7で実装されるパターンマッチングについてなど、興味深いお話がたくさん聞けました!一方で、いくつかの講演の中でよく理解できていない部分もあり、自分はまだまだ勉強不足だなぁと感じました。次回参加する機会があれば、Ruby に関してより成長した状態でまた参加したいですね。 それでは、ここまでお読みいただきありがとうございました。 また、登壇者ならびにRubyKaigi運営の皆さま、スポンサーブースでお話していただいた方々、名刺交換していただいた方々などなど、誠にありがとうございました。 とても充実した RubyKaigi 1日目でした。