Nick CraverはStackOverflowのアーキテクチャリード。
The main problem I almost always see with “premature optimization” is someone without context calling it “premature” in the first place. For people working hard on the 3% every day, the saying gets really old, really fast.
— Nick Craver (@Nick_Craver) 2018年7月8日
《早すぎる最適化》に関する一番の問題点といえば、ほぼ毎回、これまでの流れを何もわかってないやつがやってきて二言目には「早すぎる」と口出ししてくることかな。《残りの重要な3%》で日々戦ってる連中は、そんな風に言われるのにもう飽き飽きしてるわけだけど。
“Premature optimization is the root of all evil” is almost always used as a blanket statement. I get frustrated when people treat it that way because it says “I’m repeating this without even bothering to read the quote” loud and clear. It’s also just a terrible quote.
— Nick Craver (@Nick_Craver) 2018年7月8日
《早すぎる最適化は諸悪の根源》って言われるときはいっつも総論でしかないし、そういう言われ方はモヤモヤする。要するに「引用元をちゃんと読んだこともないのに、一つ覚えしてます」ってことでしかないもんなー。そういう引用の仕方はほんと酷いよ。
So let's talk about it, because optimization is one thing, but knowing when to optimize and when not to is something that challenges a lot of developers. When do we optimize? Well, it depends. Everything (EVERYTHING) in life is a tradeoff. Time spent optimizing is no different.
— Nick Craver (@Nick_Craver) 2018年7月8日
最適化はそれはそれでよく話し合う方がいいと思うけど、いつ最適化をやるべきか・やらざるべきか自分にはわかってる、とかいうのはまた別の話で、それは多くの開発者に異議を唱えてるも同然だよ。いつ最適化するか?そんなの場合によるから。人生なんでも(どんなことでも)トレードオフだし。最適化に使った時間だって同じこと。
How often does it run?
— Nick Craver (@Nick_Craver) 2018年7月8日
How important is the time it takes to run?
How important are the resources it uses?
What's the opportunity cost of those occupied resources?
What else would the optimizer be doing?
How often does the thing change?
How much maintainability is on the table?
何回実行する?
実行時間はどのぐらい大事?
リソース使用量はどのぐらい大事?
リソースを占有することからくる機会費用は?
オプティマイザーは他にどんなことをする?
状況が変わる頻度は?
保守性はどのぐらい考慮されている?