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.

  • arendjr@programming.dev
    link
    fedilink
    arrow-up
    3
    ·
    3 months ago

    So to put it all together ComplexEnum = Nothing | TaggedU32 | (bool x String)? Is that correct?

    Pretty much, yeah. But just be aware the tags are effectively unique constants, so each has only one value. For consistency I would write it as:

    ComplexEnum = Nothing | Something(u32) | LotsOfThings(bool x String)

    In this notation,Something(u32) could also be written as 1 x u32 because tags are constants.

    • onlinepersona@programming.dev
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 months ago

      OK, so finally I get it. It’s pity none of the blogs I’ve read or wikipedia articles in existence spell it out this way. Instead it’s a bunch of math mumbo jumbo.

      Thanks for helping me reach understanding 🙏 And thanks to @Kacarott@feddit.de too.

      Anti Commercial-AI license