チラウラヤーン3号

その辺のプログラマーのチラ裏です。

そういえばプログラム開発で誰か言ってたんだけど、

「速く動くけど読みにくいコードより、遅くても綺麗なコードの方がいい」

って言葉があって、その理由は「綺麗なコードはいくらでも最適化/チューニングできるから。汚いコードは拡張もしづらいし、速く見えて無駄な処理が内包されてた場合、それ以上速くなるポテンシャルはあるのに手出しできない」というものだった気がする。

それにこういうのもある。 「拙速は巧遅に勝る」――孫子はそんなこと書いてない―― すぐ「巧遅より拙速」とか言ってしまう人たちへ - フジイユウジ::ドットネット

ザッカーバーグの "Done is better than perfect." にしても、彼らなりの線引きをした上でのリリースがあるわけで。だってfacebookのエンジニアって採用ハードルがすごい高くて基本的に優秀な人しかいない訳で、その優秀さの上での妥協と、凡夫による「あー、なんかうまくいかんけど、時間もないしとりあえず出そう」みたいな妥協では自ずとレベルが違ってくる。だってさあ、その辺の木端エンジニアには作れないじゃん、reactとかhackとか。

その、つまり、バランスというか「長期的なものに関しては、ある程度はちゃんと取り組まないと後が大変、または崩壊する」という風に思ってるんだけど、どうなんでしょ。ほら、基準や目的、運用設計を定めず、兵站の計画もしないまま期限だけ先に切るヤーツーとか、どうなんでしょ。なんとか宣言とかなんとかプロジェクトとか。

いや、そんな政治批判めいたものじゃなくても、楽器の練習だってそうでしょ。ワチャワチャ焦って弾きまくってもすぐ成長が頭打ちになるから、ゆっくりでも一つ一つできるようになるまで練習するじゃん、上手い人って。ちゃんとした練習しなくて弾けないまま何千回ライブに出たってうまくならないでしょ。英語だって、ちゃんと勉強しないから現地で何年いても新聞読んだりニュースを聞き取れない人もいるんでしょ。

「いや、御託はいいから行動しろよ」って意見もあるかも知れないけど、それはその人の頭の中で問題を抽象化してるポイントがズレてて、某弁護士の感染症専門医に対する「いや論文じゃなくて現実を見ましょうよ」って発言のようなもので、物事が複雑化した現代では現実的な解決行動のためには余念のない準備が重んじられる場面はとても多く、場当たり的な行動は情報不足・観察不足・判断不足・戦略不足で勝ち筋が見えない戦いに陥るんじゃないんでしょうか。

もちろん、敵上視察をして相手の手強さを肌身で感じるために一歩を踏み出すことはとても大事なことだけど。

なんか、もうTwitterでは長いこと言われてる話だけど、綺麗なコードが書ける人は開発速度も速かったりするのよね。逆に、汚いコードしかかけない人は、いくら雑に端折っても開発速度はあんまり上がらないという。武道の達人ムーブと同じ。無駄のない動きは速さにつながる的な。

そんなことを、久々にコードを書いた今日、思ったり思い出したりした。焦りは禁物だ。油断は大敵だ。

苦役列車

苦役列車

追記 2021/05/08

読み返してみると言いたいことの焦点がブレブレでわかりづらい。何を言いたいかを定めないまま書くから…。