220.127.116.11 08:33, 8 June 2016 (UTC) Yay! First time starting a page's explanation! (Actually second time, but first time I didn't save it in time.) Also, first comment!
The flow chart has no branches. It has been optimized, by pruning branches which cannot apply. Are you consulting a flow chart cannot be answered no while consulting the flow chart, so the entire branch structure resulting from a no answer has been eliminated. However, there are many other ways in which premature optimization can take place, and there are some optimizations which are not premature, so this is a robust and fruit laden branch. Since it would be handy to keep that branch in mind, its removal is clearly premature. Therefore, this flowchart has been prematurely optimized.18.104.22.168 11:02, 8 June 2016 (UTC)
- I guess that as soon as you are spending time on a flow chart on this question you are not using your time to do things right...--Kynde (talk) 11:11, 8 June 2016 (UTC)
- I agree: It's not "if there is any doubt": It's specifically the flowchart. If you are consulting flowchart, you are either the kind of person who does everything methodically and waste gigantic amount of time by it, especially if trying to optimize, or you lack the experience and common sense needed to distinguish when the optimization is premature, and statistically are more likely to optimize incorrect part of code. But note the that most people, when citing the quote, forgot the "Yet we should not pass up our opportunities in that critical 3%." - and result is editor which have noticeable lag on computer which is capable of running 3D FPS game in 120fps. Worse: some decisions, while related to speed of program and therefore optimization, MUST be done early in planing - for example, what data structures will be used. If you start programming with linear list, it may be impossible to switch to B-tree later ; on the other hand, programming B-tree and then finding out the average length of list is 5 is typical premature optimization ; Therefore, you should either use existing library, which will be quick AND quickly written, or spend some time on writing abstract enough interface, so you don't waste too much time on the B-tree but will have option to put it there later without major refactoring. -- Hkmaly (talk) 16:25, 20 June 2016 (UTC)
Sigh... One of most misused quotes of all time. The original meaning of "premature optimization" was referring to fine-grained adjustments to assembly that made it much harder to read but a tad faster to run. It's not a justification for choosing a terribly inefficient approach, especially one that will be hard to replace later on. 22.214.171.124 14:11, 5 October 2021 (UTC)