This is a random thought, don’t take it very seriously…
Most of our code is declarative. I don’t mean programming paradigms (because in that sense, most code would be imperative). I mean the way we write and organize it.
Adding a new feature usually requires modifying code in many places. Which…
- makes it harder for readers to infer the original author’s intent.
- makes it harder for maintainers to reason, because they have to navigate among different locations, especially when they don’t have an IDE with “Go To Definition” functionality.
- even makes meticulous programmers crazy because sometimes they may spend an unreasonable amount of time deciding where a new class member should go (add it to last, adapt an alphabetical order, or group it around members of a similar functionality?).