Object oriented design patterns in the Linux kernel (2011)

125 points by archermarks 1 year ago | 7 comments
  • svag 1 year ago
    This is the second part https://lwn.net/Articles/446317/
    • discreteevent 1 year ago
      See also:

      The Power of Interoperability: Why Objects Are Inevitable

      https://www.cs.cmu.edu/~aldrich/papers/objects-essay.pdf

      • rramadass 1 year ago
        Nice!

        A pretty good paper to point people to when they mouth inanities like "OOD/OOP are bad-ideas/dead" etc. This sort of negative cargo-culting has now gotten so out of hand that you have new programmers today not wanting to learn classic OO design/techniques. They merely parrot what they had read somewhere (usually some abuse of OO inheritance techniques) without thinking/learning for themselves and thus throw the "baby out with the bathwater". The OO paradigm has been the single most effective imperative model for "programming-in-the-large" which has directly led to explosion in the software industry as it is today.

        • hi-v-rocknroll 1 year ago
          The valuable parts are strong typing, code reuse, and sometimes metaprogramming.

          Many modern languages include many OO features but don't advertise them as such because too often it induces a religious reflex, like shouting "socialism" in America.

          • rramadass 1 year ago
            The OO paradigm is much more fundamental and natural to the way we think of and model Domain Concepts/Objects. I remember studying fundamental techniques like CRC(Classes/Responsibilities/Collaborations), Commonality/Variability Analysis, Rumbaugh's OMT etc. and thinking how natural it felt to model domain concepts directly in code. People seem to have forgotten all that and only focus on fads/acronyms like Patterns/SOLID etc. without really understanding how they came about and what their nuances are. The result is that people don't think through their analysis/design but merely follow a cookie-cutter approach popularized by some self-aggrandizing author and when things fail blame the OO approach.
        • fulafel 1 year ago
          If anyone read this in detail: does it bring up cases that OO covers better than other ways of interoperability/interfaces in statically typed systems, eg Go's structural typing or fanciel module systems (eg Ocaml)?

          Though it also talks about dynamic systems like Smalltalk and GTK+, not sure if the comparison should be to statically typed languages.

        • brcmthrowaway 1 year ago
          A good catalogue!
          • 1 year ago