morrita氏がMessage Passingで、xi editor retrospectiveが面白いと言っていたので、 ほうほう?となって読んでみたら、なかなか面白かった。xi-editor retrospective

全体的な感想

まず全体的な話から。 この文書の面白さってなんなんだろうね。 素人でもわかりそうな結論なのに、最初は夢見た感じで進んで、やっぱ現実は厳しかったです、が繰り返される所が面白い。 まず素人でもわかりそうな事を自分は最初から分かってた、というフリをしない所がいい。 むしろわざと分かってなかった側のフリをしているんじゃないか、という気すらしてしまう。 すごく当たり前に見える結論について「やってみたらXXXだった」と言う。 この当たり前に見える結論は読者としては凄く納得出来る所なので、読んでいて凄く共感が湧くのだろうな。 自虐というのとはちょっと違うかもしれないが、ボケというか、「ですよね〜…」みたいな面白さがある。

こういう一見誰でもわかりそうな事を、自分は分からなかったという前提で書いていくのはなかなか勇気がいる事だよなぁ。 いくつかは本当に最初からわかりそうな事もあるが、実際にはやってみないと分からない事も多く含まれていて、 その辺は良い教訓にもなっているはず。 変に分かっているフリをせずに、全部自分は分からなかった、という態度で書く方が読んでいて面白いし、 余計なノイズ無しで教訓を引き出せる。 そしてここまであけすけにやれば、かえって著者の実力を疑う事も無い気がする。 結局デメリットって自尊心というか能力が低く見られるのが嫌だ、という感情的な反発に過ぎない気がする。

変に成功だったってフリをしない所もいいね。 失敗だった時はこういう態度の方が学び取れる事は多いよなぁ。 会社が仕事としてやって失敗した時にこういう態度をとるのはなかなか難しいけれど、 本当は会社だってこういう態度の方がいい気もする。出来ないもんかね。

個別の話題

CRDTの方、いろいろな非同期のケースについて全部CRDTでええやん、というのは不要に複雑にしてしまっている、 というの。凄くありそうだけど実際に試してそうだった、というのはうんうん、という感じだ。 AndroidのEditText周りの問題を解決する実験的試み、的な話だけれど、 これを「Androidの正しいEditTextはこれだ!(ばーん)」ってやらなくてよかったなぁ…という印象。 もちろんそんな事はやらないだろうけれど、突然同僚がこんな事言い始めて巻き込まれたらたまったもんじゃないよなぁ。 この文書が面白く読める所として、あまり自分には関係ないって所がある気がする。対岸の火事というか。

JSONが思ったより遅かった、は笑ってしまった。いやぁ、実際こういう事あるよねぇ。 そのくらいあるだろ、と思っていたが意外と無かった、みたいなの。 こういうのはやってみないと分からない事なので意義のある教訓という気がする。

asyncのword wrapやばい、みたいなの。さすがにそれは試す前から分かるでしょ…と思ってしまうけれど、 本当に試してやばかったというのは「乙…」って感じだ。 実際やばそう。

CRDTはインデントみたいなのと相性悪い、ってのは面白い話だね。CRDTの話はセールスポイントばかりで苦手な事とかあんまり出てこないから、 こういう良く使う事で意外と苦手な事、みたいなのが浮き彫りになるのは意義のある実験だったという気がする。 research questionというか、今後の長い道のりが必要そうだね、という気がした。 これもCRDTに入れ込んでいろいろ苦労したあとにぶっちゃけられたらダメージでかいだろうなぁ、と思うが、他人事だと楽しく読めるね。

native GUI周りの話は面白いね。いい感じのnative GUIを使えばいいと思ったがWindowsでいいのが無かった、というの。 すごい分かるんだが、こういうのを最初に試さずに「エンジンは非依存ですから(キリッ」みたいなのを言ってしまうのはヤバいね。 出来るもんならやってみろって感じだよなぁ。 GUIライブラリ作りはじめるのもいかにも完成しなさそうだなぁ、とか思う。Windows版ちゃんと作るの大変だよねぇ…

moduleに分けてプロセス分けてmicroservice的にすれば個々の開発は簡単ですよ! と作ってみたが、うまく行かなかったという話は、さすがにそれは当たり前だろ…と思ってしまう。 これまで大きなアプリを作った事が無かったのか?と思ってしまうが、さすがにそれは無いよなぁ。