top | item 7552128

Don't optimize your software prematurely

11 points| titpetric | 12 years ago |foreach.org | reply

6 comments

order
[+] Fa773NM0nK|12 years ago|reply
I like to think that our programming philosophies aren't carved in stone. (KISS, DRY, YAGNI, etc.)

To quote Captain Barbossa: ... the code is more what you'd call "guidelines" than actual rules.

Also, "A foolish consistency is the hobgoblin of little minds"

[+] titpetric|12 years ago|reply
I like to think so to - guidelines are basically what best practices are. And behind every best practice there's a programmer who at one point failed and fixed their mistake. If you buy more ram/cpu/disk, are you allowing them to fail, or are you just "patching" the problem yourself?
[+] recentdarkness|12 years ago|reply
Alone the title reminds me of this:

"Premature optimization is the root of all evil (or at least most of it) in programming." Source: Computer Programming as an Art (1974) p. 671

[+] titpetric|12 years ago|reply
Pretty sure you are correct. The "quote" was paraphrased from my poor memory. Also from what I read, the book series is, even today, very informative and relevant. I am however disappointed how much damage this quote is doing outside of a proper context.

"In practice, it is often necessary to keep performance goals in mind when first designing software, but the programmer balances the goals of design and optimization."

^^ This. I am ashamed when the original quote is being used to basically advocate "write un-optimized code and we'll buy hardware, which is cheaper than development time". I do realize that wasn't the case back when the books were written (hardware was hella expensive), but today this is just encouraging bad form in developers, many times their go-to reaction is "let's add more ram".

[+] mantrax4|12 years ago|reply
The quote actually goes back much earlier, to the days where writing a program meant writing machine code routines.

And it's also highly misunderstood, because it's used as a mantra, out of context.

Good development is not mantra-driven.