卜部でも、あれも結局、大きいERBだよね。国分まあ、そうなんですけどね。卜部ERB関連のなんかものが、なんだかんだでこれまで人生で関わりが多い感じですかね?国分そうですね。まあChefとかを使っているとテンプレートというか設定ファイルはERBで生成するんで、そういう意味でERBは使いますし、そうですね。ERBを今はメンテしていますし、というところでは関わりはあります。僕も前職でfluentd.confをERBで設定するという。国分まあそうなりますね。卜部なかなかすごいことやってます。村田ちなみにジェネレーター系が多いんですか。国分なんかSQLをERBで生成しているみたいな人もいますよね。いうか、多分古橋さんがうちのアプリでもやっていると思います。今、興味を持っているテーマは何ですか。分散システムですかね。うちの会社がスケールする大規模な分散システムを、データの処理を頑張ってつくっているみたいな感じなんですが、それをうまいことスケールするシステムをデザインする、かつレガシーなシステムを抱えつつ、そこから少ない工数でどうにか実現できる道を探していくみたいなのは、結構難しいと思っていて、それを考えるのは僕にとっては結構楽しいんで。それをずっとやっていて、それが今のところ、まだ自分がすごいできているとは思っていないので、伸ばしたいスケールなんで、そこを伸ばすところが楽しんでいるという感じです。卜部その分散システム特有の面白さというか、難しさみたいなところはあります?国分1つのシステムに比べると障害が起きやすいんです。プログラムのプロセスの中で走っているやつは、メソッドが呼び出せませんみたいなことは、バグじゃない限りはなかなか起きないわけじゃないですか。他のシステムになった瞬間に、RPCは普通にネットワーク障害とかは、突然シャットダウンされましたとかで失敗しやすくなりますし、というところを、設計の仕方が変わってくるというところが、問題が変わるポイントかなと思います。卜部ありがとうございます。振られるなんて考えてなかった。卜部まあまあ、まだまだ時間があるんで。学生の時の研究と今のやっていることは、なんかつながりがあったりするんですか。学生の時の研究は、鈴木将哉さんという人が同じ研究室で先輩にいたんですが、その人が...モデル検査は分かります?卜部うん。国分モデル検査用の言語、モデリング言語と呼ぶんですけれども、モデル検査用のツールとして簡単な言語を設計していて、それをgoでコンパイル、別のモデルチェッカー用のより低レベルな言語にコンパイルするやつを書いていたんですが、そこのそれが何用のツールかというと、分散システム用のモデル検査言語なんです。何かというと、分散システムのプロセスとかシステムとかを抽象化してかけて、こことここがつながっていてみたいな、その挙動を通信の記述とかができるんです。それを書いておくと、その通信が突然シャットダウンされましたとか、そのネットワークが故障しましたとかが、自動でモデル検査できるようになっていて、それの分散システムのアルゴリズムを検証するのに特化した言語なんです。それがもともとの研究なんですが、僕がやっていたのは、自由に障害を挿入できるようにするというのを、言語の拡張としてやっていて、学部の研究なんですけれども、その言語の上にここを故障させるみたいなのを、なんかDSL的に書けるようにして、言語を拡張してより多くの故障を検査できるようにしましたというのが、研究でした。Monkey7みたいな話になっちゃって、本番に突っ込むのかみたいな話だけれども、別にモデルで検査できれば便利だよね。Monkeyみたいな感じなんですかね?国分だからアルゴリズム、モデルチェッキングはそのデザインの検査なんです。実際のシステムでテストをするわけじゃなくて、アルゴリズムそのものを網羅的に検査するという話なんで、ちょっとレイヤーが違うかなと思います。柴田じゃあ、質問を思い付いたんで。今は触っていないプログラミング言語で、なんか勉強しておきたいなとか、興味あんなみたいな言語は何ですか。国分それはRustですかね。国分こないだ言語の速いランキングの、こうTierみたいなツイート8が最近流れていましたけれども。国分RustはCとC++と一緒のところにあって、おお、すごいなと。国分Goの1個上なのか、みたいな。国分そこがなんか本当にそうなのかという感じはしますけれども。そこに本当にできているとしたら、だいぶ使い勝手も良さそうですし、いいんじゃないかと思います。本当にSEGVしないのかというと、アンセーフが囲まれているところによってくると思いますけれども、それをなんかちゃんと使わない文化が根付いているとしたら、うまく機能すると思います。何年か前のRuby会議だっけかなんて、wycatsが来て、Rustで拡張ライブラリ書くぜみたいな話をして。9柴田アーティーチョークだっけ、なんか。国分も、まあRustですね。柴田Rust製で、確かなんかRubyだかgemのなんかやるみたいなやつだよね。卜部あまり真面目に聞いていませんでした。僕も真面目に聞いていませんでした。へえーみたいな、そうか、はい。卜部あとCargo10が良さそうだよね。国分そう、なんかあんまり使っていないんで、なんかあんまり分かっていないんですけれども、どの辺が良かったですか。Trackingとかが、ちゃんとちゃんとしている気がする。国分bundlerがないところですか。Cargoは素晴らしいんです。Cargoはrakeとgemとbundleが全部ちゃんと1個のコマンドで実行できるさんみたいなのなので。国分rakeも一緒なんですね。国分npmとかも、まあそういう。npmはちょっと違うけれども。国分あれは違うかな、ちょっと違うな。testしてみたいなのがすごくよくできていて、賢い人がつくったんだろうな、みたいな、wycatsという人なんですけれども。ツールが統合されていて覚えることが少なくて良い、みたいなことですかね。なんか理想の言語のツールチェイン、なんかコマンダーみたいな感じがします。村田これからはRustだ。(笑)国分まあ、Goとかその辺は後から追加されたような感じですもんね。村田Rustの時代が。卜部まあ、なんかやっぱり新しいプログラミング言語とかを勉強してみると、新しい知見があっていろいろ面白いですよね。他の言語でなんか困っていることが多い部分を、ちゃんとつくり直すというのは、いいことですよ。村田ゼロからやり直す手間が。卜部プログラミングの話はこんな感じですか。卜部じゃあ、次は生い立ちの話の続き辺りなんですけれども、大学に入りましたくらいのところまで聞いたと思うんです。卜部そこからRubyの話に行っちゃったんだけれども、大学はその後、どうなったんですかという話。国分その後どうなったのか。卜部だから、結局分散システムのモデルチェッキングみたいな研究室に進んだと。研究室に入るのは4年生の時なんで、それはもうほぼ卒業間近みたいな感じなんですけれども、僕は院に行っていないので4年で終了なんで、3年間何をしていたかというと、その最初の1年半ぐらいがそのCのアルバイト。APIコールをトラッキングして、なんか不正なことが行われていないかみたいなのをチェックするツールをつくっていて、というところにいて。卜部なんかすごいテクノロジーにとんがっていそうな会社ですね。国分でも、なんかだいぶエンタープライズというかセキュリティーの会社なんで、お堅い感じだったので、何というか、がりがり開発するような感じじゃなかったので、そこは辞めたという感じなんですけれども。2年、その大学2年の半分ぐらいから3年のクックパッドに入る直前ぐらいまでは、そのObjective-Cでアプリをつくっていたんですけれども、それと並行して、なんか僕は音ゲー、音楽ゲームサークルに入っていて、入っていてというか、なかったのでつくって、そこでなんかその会員たちがランキング、スコアランキングで競うみたいなサイトをRailsでつくったりとかしていて、そこが趣味のプログラミングで、なんかいろいろやっていたような場所です。東工大の近くのゲーセンは幾つかあって、武蔵小山か。近くって言うほど近くない。(笑)国分それは、ちょっとまあ、そうですね。電車で行かないといけませんけれども。あとはさらに遠いですが、溝の口とかには割と行きますね。卜部まあ、まあ言うても電車で1本ということか。国分そういうことです。電車で1本のところに遊びに行ってみたいな感じで。なんか溝の口が特に大きくて、なんかいろんな学年を集めて、集まっても、なんか普通に収まるみたいな。いろんなゲームで対抗してみたいなのをやっていました。卜部ちょっと話がずれるけれども、その頃遊んでいたのは何なんですか。IIDXで、なんか鍵盤が7個あってターンテーブルがくっ付いている、よく分かんないやつを一番やっていて。BEATというその頃につくられたやつもやっていて、あとはDDR11とポップン12もちょっとやっているぐらいの感じです。