This essay says that inheritance is harmful and if possible you should “ban inheritance completely”. You see these arguments a lot, as well as things like “prefer composition to inheritance”. A lot of these arguments argue that in practice inheritance has problems. But they don’t preclude inheritance working in another context, maybe with a better language syntax. And it doesn’t explain why inheritance became so popular in the first place. I want to explore what’s fundamentally challenging about inheritance and why we all use it anyway.

  • John@mastodon.social
    link
    fedilink
    arrow-up
    0
    ·
    5 months ago

    @okamiueru @balder1993

    It’s an overloaded term:

    “Dependency inversion” is a language-agnostic technique for producing testable, loosely-coupled software.

    “Dependency injection” just means dependencies should be passed in through the constructor, instead of being magically new()'d whereever.

    “DI frameworks” are Satan’s farts. Classpath-scanning nonsense that turns compile-time errors into runtime errors. Not only is your Ctr still coupled to your Svc, but both are now coupled to Spring.