RubberDuckEng

Eric Seidel と Adam Barth が YouTube で Fuchsia の解説をしていると向井さんが教えてくれた。

Eric と Adam はもともと Chrome の WebKit チームを率いていた二人で、ある時から Flutter や Fuchsia に移っていった。自分もこの二人がなんか新しいことをやるというのでヒョコヒョコついていったはいいが、まさかの Dart Runtime と OS 再発明だったので逃げ出したのが 5-6 年前。自分がしょぼしょぼ Android のコードを書いている間に彼らは OS を出荷したのだった。

・・・という回想はいいとして、このビデオは RubberDuckEng という YouTube Channel がホストしている。RubberDuckEng は Eric Seidel と Adam Barth がペアプロで live coding するという番組で、いまみたらもう 50 回以上やっている。そして各話の再生回数は 100 回前後、というかもっと少ない。Karino2 のプログラム雑談と変わらん。無職ならともかく会社員がそんな再生回数で YouTube とかやっている場合なのか・・・

と疑問を抱きかけるが、見ると続いている理由がわかる: 楽しいからに違いない。

楽しそうなのだよね。Eric と Adam のこの噛み合っているようないないような感じ、よく覚えている。自分が転勤してきた最初の席はこの二人の机のそばで、この人たちはいつもペアプロしていた。HTML Parser を off thread にしたり、Polymer のスクロールを速くしたり。自分の中では Jeff + Sanjay に通じる部分がある。すごいプログラマが成果を出すとき、そこにはしばしば別のすごいプログラマがいるのである。

二人ともえらくなって守備範囲も微妙に違うっぽいから、たぶん二人とももうそんなにコードは書いてない・・・というか Adam Barth は書いているだろうけれど、すくなくとも昔のようにペアプロはしてない。Jeff + Sanjay はそれでも月曜の朝にペアプロをしていた。Eric と Adam はそれを YouTube でやることにしたんだな・・・と勝手に解釈している。

書いているのは仕事のコードではなく、小さなトイプログラムがほとんど。Live coding も (リンクした Fuchsia 紹介ビデオは別にすると)特に前準備もしておらず、毎回一時間くらいモタモタやってる。仕事ってかんじじゃない。目立ちたいとかでもない。ただ週に一回、ペアプロすることにした。そして様子を YouTube で流すことにした。それだけ。それがいい。その友情がいい。


こういうの、なんかできないかなあと考える。

Misreading Chat も Message Passing も、特に後者は友達づきあいの vehicle という面があるけれど、production に重きをおきすぎているせいで継続性や頻度が犠牲になっている。一方で Rebuild.fm 派生 podcast みたいなピュア雑談は自分がやるとエゴによって俗悪化するのが目に見えている。やっぱりなんか作業が伴うのが健全で良いよなあ。Live coding は個人的には気が向かないが、もうちょっとコード的なものが中心にあるのが良い、気がする。たとえば・・・なんだろうね。

コードレビュー Podcast. 相手の書いたコードをターン制でレビューする。ただコードレビューだとあまり楽しさがないので、何らかのひねりは必要な気はする。たとえば相手のコードを勝手に添削するとか、あるいは全然知らない言語でコードを書いてみたり。RubberDuckEng でも (Dart な Flutter の founder である Eric が) Rust を書いてみたりしている

Weekly Standup Podcast. 先週の進捗を報告する Stand-up meeting を番組にする。なんとなく良い良いと思っている。参加者が同じ共同プロジェクトをやっていたりすると楽しいだろうけれど、趣味プログラムだとなかなか難しい気がするね。一方で互いにまったく関係のないプロジェクトの進捗を話し合っても、会話が成り立つのかよくわからない。

Today I Learned Podcast. なんか調べたことについて相手に説明する。これは (pragmatic programmer 的な意味での意味での) rubber duck に近い。論文縛りを外した Misreading Chat といえなくもない。


こう考えるにつけ、Podcast にしろ Blog にしろ説教やら時事ネタへの感想やら書くよりは何らの action や motion が伴う方が健全で好きなのだろうね。自分は。Message Passing はその点がやや残念。そういう残念さを通じた venting もたまには良いものだけれど、それだけだと不健康に感じてしまう。