RubyKaigi 2016に行ってきました。初rubykaigi。今新幹線の中で本post書いてます。
rubyistというにはおこがましい私が、rubyistist根性で見に行ってきた。そんなreportになります。
kaigiってついてるしどんな雰囲気か想像できませんでしたが、学会のような雰囲気でした。
※ 全session参加しましたが、内容が難しすぎてほとんどついていけなかったという月並みな感想を書きます。 っょぃrubyistの方々は優しくしてください
1日目 Ruby3 Typing / @yukihiro_matz rubyのopinion leaderとしてruby3の展望を3つの柱で語ってくれました。
- typing
- concurrency
- performance
絶対に型を書きたくないmatzは当然typing(型)についてカタった。
ruby3で型推論の導入をかんがえているみたい。
型の有無はいろんな意見をみるけど、僕はそこまで強い思いはないんですが、 多分まだその域まで達せてないんだろうな。
型書きたくない芸人っていうフレーズが頭をよぎった
dRuby in the last century. / @m_seki dRubyというRMI(remote machine interface?)用のframework?の話かな。 Concurrencyに準ずるsessionだと思います。
?が多い時点で察していただけると思いますが、話が難しかった。
2000年あたりに作られたそうな。そしたら僕はまだ生まれてなかったかな。嘘です。
seki-sanってなんか大学のころの先生に似てるなって思いながら見てた。
お昼 いい天気になったので外でぼっち飯した。
bentoは豪華だった。Ruby3x3にちなんで(?)3x3のマスになっていた。
Who reordered my code?! / @pitr_cn multi thread時に実行順序が保証されないという話。 これもConcurrency。
JRubyになじみがなく、途中にでてきたTruffleやGraalとはいったい何だったのかわからず。勉強します・・。
C言語だとvolatile修飾子あるけど、rubyのmulti threadつらいよね、という話だったかな。
あと高速化には並列化と共有メモリがキーだと言っていたきがする(あやふや)
何よりお昼ご飯たべて一発目の英語は眠気を誘われて意識飛びかけてた・・。 眠くならない英語力つけたい。
A proposal of new concurrency model for Ruby3 / @_ko1 YARVを作ったささださんからのドラスティックな変更を伴うconcurrencyの提案ですかね。
- multi threadはつらいので、threadっぽいguildを考えた。
- 全てのobjectは1つのGuildに所属させる。
- guildから別のguildへ移行させることができて、それはdeep copyによって行う。
英語が聞き取りやすく 仕組みはよくわかりましたが、それが優れているのかどうかまでは理解が及ばなかった。。
rebuild.fmに出演されたという情報をtwitterでみたので、そっちを聞いたらよくわかると思います。
Afternoon break スポンサーブースにおやつがdeployされた。ときいていったみましたが、全てなくなっていた。。
ノベルティ?として配られていたアジャイル餅をmgmgしつつ、他にもノベルティをいろいろもらった。 全体的に今時のイケイケweb系企業って感じがしました。うちの会社も見習ってほしい。
面白そうなcapture the flagがあって、5分みたけどサッパリとけなかったb [https://rubykaigi2016pixta.herokuapp.com/]
A Tale of Two String Representation / @nirvdrum ropeというメモリ管理の提案(?)
immutableなstringの演算はcostが高い。
z = “x” + “y” # zをmallocして、xのmemcpy、yのmemcpyする。低速らしい
ここで気づいたけどJrubyの二人ともOracleの方ですね、なるほど。
Jruby + truffle + graal VMというのが三種の神器っぽいというのを感じ取った。
ropeをCRubyに実装するのは、メモリ管理が難しいのかな。
Unifying Fixnum and Bignum into Integer / @tanaka_akr タイトルそのまま、FixnumとBingnumをIntegerに統一した話。 にわかruby書きの私はそもそもBingnumを必要としたことがなかった・・・。
内部実装はパフォーマンスのために残っているそうな。
むしろprogrammer friendlyなrubyが、なぜいままで整数クラスを数値の大きさで2つに分けたままだったのか、 不思議に思った。
Ups and Downs of Ruby Internationalization / @duerst エンコーディングとか国際化の話。 ruby 2.4ではunicode 9.0.0になった?
Greek, Turkic, Lithuanianと文化的に特殊そうなあたりの文字に対する、 upcase, downcase, capitalize, showcaseメソッドの改造について語られた。
sessionの途中でshowcaseって誰が使うんだよ!!!みたいな突っ込みがあって笑った。
たしかに何に使うんだろうなshowcase
普段僕が触れないあたりの話で勉強になる。
その他 rubykaigiで何よりも僕が影響を受けてしまったのは、ダジャレを連発する髭面の外人アーロン。
彼とデカ外人は面白すぎた、 二人で漫談やってくれたら最高だと思う。