SRP's Vocabulary Problem: Why Every Reformulation Failed
Description
The Single Responsibility Principle (SRP) has been criticized since its introduction. Every major line of criticism — vagueness, ambiguity, arbitrariness, misplaced focus, cohesion as replacement — correctly identifies a symptom but fails to locate the root cause.
A companion paper, [1], establishes that SRP carries a specific, demonstrable error: it mandates that every module have exactly one reason to change. The adapter counterexample refutes SRP conclusively.
This paper explains why that error went undetected for three decades.
The vocabulary of SRP — “concern” inherited from Dijkstra, “responsibility” added by Martin, “actor” introduced in later refinements — imports a cardinality assumption into the analysis before any formal reasoning begins. By the time the critic asks whether the principle is correct, the terms of the question already presuppose the wrong type of answer.
I survey three decades of SRP criticism and show a consistent pattern: every critic identified that SRP was problematic, but none traced the problem to its root cause (the mandated cardinality of one), and none identified the vocabulary itself as the source of the error. The attempts at reformulation — redefining “responsibility,” shifting to “actor,” reframing in terms of cohesion — all fail because they preserve the vocabulary that contains the error. Two additional features of SRP, overlooked by the critical literature, reinforce the diagnosis. Martin himself conditionalized the principle (“do not apply SRP if there is no symptom”), making it reactive rather than proactive — a necessary concession for a principle whose vocabulary is retrospective and cannot identify domain conditions before they produce pain. And his most recent synthesis in [2] defines “module,” “cohesion,” and “SRP” in a closed circle, confirming that the vocabulary cannot supply independent content: the principle, its diagnostic concepts, and its justification are defined in terms of one another and anchored nowhere outside the circle.
The error was hiding in plain sight for thirty years not because the problem is
hard, but because the metaphor made it invisible.
Files
loth2026-srp-vocabulary-problem.pdf
Files
(326.1 kB)
| Name | Size | Download all |
|---|---|---|
|
md5:ac470e69149e23c62f61084d3f30d700
|
326.1 kB | Preview Download |
Additional details
Additional titles
- Subtitle (English)
- Three Decades of Criticism and the Cardinality Error That Remained Undetected