こんにちは、サーバーサイドエンジニアのtommyです。
昨日に引き続き、RubyKaigi2日目の様子をレポートします!
一日目
二日目のkeynoteはMatzさんということで朝からクライマックスでした。
Miyagawaさんもいらっしゃってたみたいです。
国産の言語ということが大きいと思いますが、Rubyのカンファレンスの中ではRubyKaigiが一番大きなカンファレンスなんですね。
日本にいながらその言語の最大のカンファレンスに参加できるのは、Rubyistの特権なんだなーということを強く感じました。
内容に目を移しますと、Simulaという世界初のオブジェクト指向言語の話であったり、多重継承の話であったり、
Rubyの歴史の話であったりという話が繰り広げられる中で、Moduleについての説明がありました。
個人的には、Moduleの役割の一つであるNamespaceを一機能として切り出せたら便利だなーと思いつつ発表を聞いていました。
(module使うとネストが一つ深くなるのがやだなーというお気持ち)
後のpaypalのafter partyにてMatzさんいらっしゃったので上記質問してみたところ、将来考えている機能との兼ね合いでそのシンタックスは取ってあるとの回答をいただきました。
lunch
二日目のランチの様子です。speeeブレンドおいしい。
What visually impaired programmers are thinking about Ruby?
視覚障害を持った人にとってのRubyについてのお話。
普段我々が視覚から得ている情報を音で表現したらどうなるか、という非日常体験がとても興味深いセッションでした。
コードを一字一句読み上げたりインデントを音程の違うビープ音を駆使して、ソースコードを表現するそうです。
発表を聞きながら、視覚から手に入る情報よりも、全体像とやりたいことを想像し、プログラミングをすることが難しいであろうことは想像に難くありませんでした。
発表者の@nishimotzさんの、「我々もいつどんなことがあってハンディキャップを持つかわからない」という言葉も印象的なセッションでした。
Automated Type Contracts Generation for Ruby
RubyMineの中の人による静的解析のお話。
やはりRubyでは実行するまで型を予想するのは難しいのでテストを実行することによって型情報を得るとのこと。
発表後には、Vimmerとの間で情報交換が行われるようです。
Bending The Curve: Putting Rust in Ruby with Helix
Rustという単語に反応して視聴。
Cのように速いが安全である点がRustを使うモチベーションとのこと。
同じものをRubyとRustで書くと、Rustのほうがコード量が多くなると思われがちですが、
String#blank? などの実装であれば、Rustのほうが圧倒的にコード量が少なくなるとのこと。(かつ速い)
個人的には、コードのメンテナンス性について気になりました。
というのも、Rustはまだまだ発展途上の言語であり、開発がとても活発なので、容易に壊れることが想像できたからです。
拙い英語で聞いてみると、確かにその問題はあって、こうやって解決していく。
といったことを回答いただいた気がしますが、私の英語力では完全に理解することが難しかったです。
英語を勉強しようと改めて痛感しました。がんばろう。
とりあえず会場にも意図は伝わっていたようでその点は一安心でした。
他にもGoby(Go ⇔ Ruby) などの発表もありましたが、新しい言語のいい部分を取り入れようとする場合、変更に追従するにはどうすればいいか
という点は気になるトピックだなと思いました。
LT
実はLT応募して落選したのですが、聞いていると思わず「採択されなくてよかった〜」と思う発表の連続でした。
中でも、弊社の @ujm のLTは、贔屓目なしに1,2を争う盛り上がりを見せていました。
テーマはもちろんVim
ちなみに、11月にはVimConfが行われます。そちらもよろしくお願いします。
After Party
二日目の夜は、各スポンサー企業さん主催で飲み会が行われていました。
みなさん楽しそうですね。
個人的にはPaypalさんのパーティーに参加するとMatzさんがいたので、moduleのNamespaceについての質問をしたついでに、
最近RubyのスクリプトをRustで書き直してみるということをやって、Rubyのいい部分(最も得意なことの一つである文字列操作)って
ほんとに最高ですねというお気持ちをあまり上手く伝えることができなくて残念でした。
さて、RubyKaigi2017も明日でラスト。最後まで楽しんでスタッフしたいと思います!
参考記事
この記事は私の主観によって構成されているので、RubyKaigi全体を把握されたい方は下記記事もどうぞ!