Key Themes from the discussion
-
“Laws” are really heuristics – Participants stress that most so‑called software “laws” are context‑dependent maxims, not immutable truths.
“First, few of the laws on that site are actual laws in the physics or mathematics sense. They are more guiding principles.” – tmoertel
-
Encapsulation eliminates effective complexity – Good modular design hides complexity, making it disappear for users of a component.
“Encapsulating complexity (e.g., in stable libraries that you never have to revisit) is equivalent to eliminating that complexity.” – tmoertel
-
Optimization is a double‑edged sword – Many warn that both premature and late optimization can be harmful; the “critical 3 %” advice is often ignored or misapplied.
“Today, late optimization is just as bad as premature optimization, if not more so.” – tananaev
-
SOLID and similar rule‑sets are often over‑applied – Critics argue they can foster premature abstraction and unnecessary indirection.
“SOLID tend to encourage premature abstraction, which is a root of evil that is more relevant today than optimization.” – GuB‑42