Languages on the rise like Rust and Go are being quite vocal against inheritance and many engineers seem to agree. Why? And is it the fall of inheritance?

  • ignirtoq
    link
    fedilink
    21 year ago

    I think inheritance served as a good stepping stone to features like traits in Rust. I spent most of my early career in C and C++, and given just those 2, I would pick C++ for classes alone, even though that’s nominally “picking inheritance.” Because with C++ classes you can define interfaces and compose those objects better than you can with just functions and structures in C (no callback functions and void pointers, thank you).

    So it’s about the ergonomics of the language, and I think we as developers are collectively growing and exploring, figuring out what works and what doesn’t, and with Rust and Go we’re trying out those traits and interfaces we figured out in object oriented languages without dragging along classical inheritance. Given another 5, 10, 20 years, I’m sure we will have figured out what doesn’t work in Rust and Go and see new languages dropping those concepts in favor of newer, even more ergonomic ones.