• magic_lobster_party
    link
    fedilink
    165 hours ago

    Mainstream statically-typed OOP allows straightforward backwards compatible evolution of types, while keeping them easy to compose. I consider this to be one of the killer features of mainstream statically-typed OOP, and I believe it is an essential feature for programming with many people, over long periods of time.

    I 100% agree with this. The strength of OOP comes with maintaining large programs over a long time. Usually with ever changing requirements.

    This is something that’s difficult to demonstrate with small toy examples, which gives OOP languages an unfair disadvantage. Yeah, it might be slower. Yeah, there might be more boilerplate to write. But how does the alternative solutions compare with regards to maintainability?

    The main problem with OOP is that maintainability doesn’t necessarily come naturally. It requires lots of experience and discipline to get it right. It’s easy to paint yourself in the corner if you don’t know what you’re doing.

    • @[email protected]
      link
      fedilink
      22 hours ago

      But how does the alternative solutions compare with regards to maintainability?

      Which alternative solutions are you thinking of, and have you tried them?

      Rust has been mentioned several times in the thread already, but Go also prohibits “standard” OOP in the sense that structs don’t have inheritance. So have you used either Rust or Go on a large project?