It seems that design patterns are actually linked to some C++ or Java object models
(e.g. they might not fit to Ocaml objects, or to Common Lisp Object System). Or at least tied to a specific programming language (e.g. Common Lisp and C probably have different design patterns?) or some application (e.g. Elephant in Common Lisp).
Are design patterns different of coding rules? (e.g. MISRA-C)
It seems that design patterns make no sense in functional languages (e.g. a book on Haskell don’t even mention them).
It seems that compilers like GCC or Ocaml don’t follow design patterns. Of course, they do share a lot of concepts (abstract syntax trees, front-end/middle-end/back-end).
It seems that the Linux kernel follows some design patterns.
It seems that large open source systems (e.g. PostGreSQL or the Linux kernel) don’t even claim to follow (all, or most) design patterns.
For what kind of software are design patterns useful? Example in open source projects are welcome!
Are there any software tools enhancing/verifying design patterns (preferably open source tools that I could test on a Linux desktop)?
Should an expert system shell project (like RefPerSys) define design patterns? ClipsRules don’t seem to mention them.
It seems that operating system kernels don’t follow all the same design patterns…. (there are large differences between Linux and FreeBSD, even if many concepts – drivers, processes, … are similar).
NB. Ocaml and JavaScript seems on the opposite sides of design patterns…. Ocaml favoring strict compile-time typing, JavaScript favoring dynamic runtime typing.
Foster’s book on designing and building parallel programs don’t mention design patterns.
Sejnowski’s book on the Deep Learning Revolution don’t mention design patterns.
Zellers’ book on why programs fail is the only book that mention design patterns
Fowler’s book on domain specific languages mention design patterns different of other books.
10
From a simplistic view one might consider that although the term design patterns is not mentioned it cannot not to exist in software development since its definition, see Software design pattern Wikipedia page, is:
In software engineering, a software design pattern is a general,
reusable solution to a commonly occurring problem within a given
context in software design.
Thinking in terms of human behaviour reflexes being developed by commonly occurring problems
could it be that they are design patterns?
Psychologically too one could talk about design patterns entitled by the filed’s studies, see Einstellung effect just to mention one.
What I’m trying to say is that various terms refer to one common way of responding to repeated situations, I think.