Isn't this another way of saying design patterns? I know the answer has to be "no", but I don't see why.
Isn't this another way of saying design patterns? I know the answer has to be "no", but I don't see why.
They do exist, but are very rarely known. Take object-orientation. Typically the primary pattern known is just object, class and inheritance. However, there are patterns that build on those to model the things, people, places, events and concepts, and the roles they interact in, and the constraints that limit them, in every "business" or real-world domain.
Why aren't they better known? I think it is because object modeling has entirely lost the battle today to data modeling, where data entities are acted on by external code organized using functional decomposition. It doesn't seem to bother most that for 45 years we have been struggling with the problem that doing so increasingly results in a "big ball of mud" as project size and complexity increases.
Lack of dependency inversion in systems like this is truly the road to ruin, as the system complexity grows so quickly in time, due to interactions, that eventually nobody really understands what it does or why it does it.
I suppose this is tolerable for some applications, but if you need to numerically validate it, it's a nightmare.
Say dataflow programming, for which Norvig's sentence generator in PAIP is an excellent introduction, one can use a switch/case or an object with functions as values. Both accomplish the same, but in the latter I change the flow of my program by changing a value in a map.
One definition/explanation:
https://www.info.ucl.ac.be/~pvr/VanRoyChapter.pdf
They also have a nice book: https://www.info.ucl.ac.be/~pvr/book.html
I personally think the notion of architectural style is more useful.
tricks->idioms->techniques->patterns->paradigms->...?