Re:Ask HN: Is Accidental Complexity Growing Faster Than Esse...
by rhizome on Monday March 27, 2017 @12:00AM
(#13965099)
I'd say overengineering and premature optimization are nearly synonyms.
Re:Ask HN: Is Accidental Complexity Growing Faster Than Esse...
by jjoonathan on Monday March 27, 2017 @12:16AM
(#13965142)
They're both bad, of course, but beyond that I'd say they're nearly antonyms. Premature optimization trades structure for performance, overengineering trades performance for structure.
You could argue for equivalence under a broader definition of optimization and engineering, but in the context of software engineering the more specific definitions used above seem to be fairly well established.
Re:Ask HN: Is Accidental Complexity Growing Faster Than Esse...
by rhizome on Tuesday March 28, 2017 @11:04PM
(#13983012)
Premature optimization trades structure for performance, overengineering trades performance for structure.
This makes them the converse of each other, but not antonyms. At any rate, I'm not sure I agree those terms are exclusive to this relation. There can be fast overengineering and slow PO.
Re:Ask HN: Is Accidental Complexity Growing Faster Than Esse...
by api on Monday March 27, 2017 @09:50AM
(#13967676)
I'd say premature optimization is one form of over-engineering, and not the most common form today. It was more common back when computers were a lot slower and people had to think about performance all the time, but now architectural over-engineering in all its forms is much more popular.
I suppose premature optimization is one source for it, but more common is premature generalization and excessive levels of abstraction. Other major sources include backward compatibility needs, the creation of virtual layers to escape calcified bad design, and of course the need to show off and look smart.