はじめまして、Avinton ジャパン Ruby エンジニアのI.Yです。
5月31日(木) ~ 6月2日(土)に宮城県仙台市仙台国際センターにて開催された RubyKaigi 2018 に参加してきました。独自の目線でレポートさせていただきます。
簡単に自己紹介します。様々な職業を経た後で、2017年に Ruby エンジニアとして Avinton に入社しました。現在は受託した B2B の EC サイト開発プロジェクトに参画しています。サイト開発は狭義のプログラミングのみにとどまらず、画面設計、HTML と CSS でのレイアウト作成、Linux 環境構築、Git でのヴァージョン管理など、幅広い技術知見やスキルが求められ、大変ではありますが学びの多い毎日を楽しく生きております。今後、時おり本ブログを担当しますので、どうぞよろしくお願いいたします。
それでは本題に入ります。
RubyKaigiとは
Ruby 開発者のまつもとゆきひろ (Matz) 氏を筆頭に、日々 Ruby の発展に貢献されているコミッターの方々の最新の成果発表をするイベントで、世界中から 1,000人を超える Rubyists が集結。日中は講演やワークショップに集中し全力で情報吸収、夜はパーティで他の Rubyists と交流、祝祭感あふれるRubyist にとって最高に幸せな時間を過ごせる 3日間となっています。
基調講演
各日とも、1日の始まりは基調講演でした。
RubyKaigi の幕開けを飾った、まつもとゆきひろ氏 (@yukihiro_matz) 基調講演、テーマは「箴言 (ことわざ) 」でした。
“名は体を表す”
プログラミングにおいて名前付けは重要。クラスでもメソッドでも変数でも、そして言語そのものも。Ruby って名前、やっぱりかっこいいですよね!
“時は金なり”
パワフルで簡潔で柔軟な Ruby は、開発者の生産性を向上し時間を有効活用してくれます。2.6 や 3.0 に向けてのパフォーマンス改善、高速化のお話もありました。
“塞翁が馬”
いいこともあれば悪いこともあるのは物事の常、毎年のように「死んだ」と言われる Ruby も毎年のように蘇っています!
“ゆく河の流れは絶えずして、しかももとの水にあらず”
ヴァージョン間の断絶を回避し互換性を保ちながら、変化や改善を止めず、前に進み続けようという決意とともに開幕講演を締めくくっていただきました。
2日目を担当された Kouhei Sutou 氏 (@ktou) は、フリーソフトウェアを使って Ruby でできることを増やそうと、なんと 130 ものライブラリを日々メンテされています。その中から、日頃開発現場でお世話になっている test-unit や i18n から、コミュニティで愛されているプレゼンツール Rabbit まで、十数個のライブラリをピックアップ、歴史や機能や今後の展望などをお話されました。
最終日の基調講演はオーストリアの博士課程の学生 Benoit Daloze 氏 (@eregontp) で、既存 Ruby コードを改変せずにそのままで、スレッド並列を安全に実行する TruffleRuby を開発中。Ruby 3×3 Project ( ”これまでより 3倍速い Ruby 3.0” ) が目指す 2020年を待たずして Ruby を 3倍以上速くしよう!と、とても野心的でした。
セッション
3会場 (ワークショップ開催時は 4会場) に分かれ、16コマで計 50 のセッションが開催されました。大別すると以下の 3つのトピックが多かったですね。
#1. CRuby の現状と今後
本年 12月にリリース予定の 2.6、そして 2020年のリリースを目標に掲げる 3.0 に向けて、メモリ管理、Guild、JIT Compiler、ISeq 等、多くのコミッターの方々が取り組んでいる課題について発表がありました。
#2. Library/Gem や Application について
もっとも多かったトピックで、他のトピックと重なるものも含めると全セッションのおよそ半数ほどがこの範疇でした。中でも静的コード解析ツールの RuboCop、開発者 Bozhidar Batsov 氏 (@bbatsov) の誕生秘話から、コントリビュータ Koichi ITO 氏 (@koic) の Lint 拡張へと、OSS コミュニティが連綿と受け継ぎ、今や業務でも欠かせないツールへと育て上げた様は胸熱でした。
#3. mruby (組み込み向け簡易 Ruby)
6つのセッションが取り上げていました。
以下、上記以外で個人的に興味深かったトピックです。
#4. 深層学習
こちらに関するセッションが 2つありました。Ruby のライバルとされる某言語が得意とする領域ですが、Ruby も負けていられないというコミッターの意気込みを感じました。
#5. クリエイティヴ系
Live coding (コーディングにより音や映像を即興生成/演奏) について発表した Kenichi Kanai 氏 (@kn1kn1)、アート方面からの孤軍奮闘、応援してます!キーボードから言語、エディタまでなんでも自分で作ってしまう Shugo Maeda 氏 (@shugomaeda) も眩いほどの創造エネルギーを放っていました。
3つの基調講演及びほとんどのセッションは RubyKaigi 公式サイト || YouTube 公式アカウントにて視聴可能ですので、興味ある方はぜひご覧ください。
各日最後の全体セッション
各日の終わりには、1日を締めくくるのにふさわしい全体セッションが開催されました。
初日の最後は、5分経過後に強制終了という過酷な条件の中、12人の登壇者が “Lightning Talks”を実施します。残念ながら時間内に終了できなかった方もいましたが、興味深いトピック満載でした。個人的には、わずかに及ばず時間切れとなりましたが、5分で To-Do アプリのコーディングを試みた Yoh Osaki 氏 (@youchan) の印象が鮮烈でした。
2日目の “Ruby Committers vs the World”、壇上に勢揃いしたコミッターの面々が Matz 氏をいじり出し、なんだか公開開発会議の様相となりました。The World 代表であるはずのオーディエンス側に置いてけぼり感が漂いましたが、まあそんな日もありますよね。
そして RubyKaigi 2018 全体を締めくくったのが “Trick 2018 (FINAL)” でした。“A contest for ‘esoteric’ Ruby programming”、簡単に言えば面白コードのコンテストで、多数の応募の中から 13作品が表彰されました。ヴィジュアル効果を狙ったものが多い中、金賞は @kinaba 氏の、全ての予約語を使用し、かつ予約語のみで書かれたコード。何かをするわけではないのですが、実行時にエラーが発生せずコードとして成立していて、プログラマとしては「やられた!」感半端ないです。これを含め 13 の表彰作品のコードは GitHub にあがっています。
ところで FINAL と銘打たれているということは来年以降は開催されないのでしょうか。エンタメ色強くも知的好奇心を刺激し、RubyKaigi を締めくくるのにこれ以上相応しいものはないと思うので、ぜひ継続して欲しいものです。
お食事とパーティ
会場でのバイキング形式の朝食、お昼のお弁当、夜は会場でのケータリングまたはレストランやバーを借り切ってのパーティがあり、おかげさまで 3日間、食費が一切かからずに済みました。スポンサー各社に感謝です!コミュニティの多様化を象徴するかのように、お弁当やケータリングには、ヴェジタリアン/ヴィーガン/ハラルメニューも用意されていました。2日目夜のカラオケパーティは明け方まで盛り上がりましたが、翌朝には真剣な面持ちで会場に戻ってくるあたり、さすが Rubyists です!
やっぱり「Ruby をキメると気持ちいい」(Matz)
初めて RubyKaigi に参加しましたが、帰りの新幹線でしみじみ感じたのは「この言語が自分のでよかった!」 言語そのものの美しさ、コミッターと Rubyists の言語への愛、そしてコミュニティ全体の前進指向や相互補助指向を実感し、自分もいち Rubyist としてささやかながら寄与し続けたいとの思いを改めて抱きました。来年 4月、福岡にて開催が予定されておりますので、ご興味をお持ちいただけたみなさまも良かったらぜひ会場にてお会いしましょう!
Avintonは仲間を募集しています!
Avintonはエンジニアを積極採用しています。
文理・経験問わず、これまで様々なバックグラウンドを持った社員を採用してきました。
現在いい勢いで成長しているAvinton。社員の数もどんどん増加しています。毎月行っている採用イベント、Meetupもぜひチェックしてください!
ご連絡お待ちしています!!