• @porgamrer@programming.dev
      link
      fedilink
      2
      edit-2
      6 months ago

      I’m not a fan of C++, but move semantics seem very clearly like a solution to a problem that C invented.

      Though to be honest I could live with manual memory management. What I really don’t understand is how anyone can bear to use C after rewriting the same monomorphic collection type for the 20th time.

        • @porgamrer@programming.dev
          link
          fedilink
          26 months ago

          That’s what std::move does, and you’re right that it’s quite an ugly hack to deal with C++ legacy mistakes that C doesn’t have.

          I say move semantics to refer to the broader concept, which exists to make manual memory management safer and easier to get right. It’s also a core feature of Rust.

          Also I’m talking about parametric polymorphism, not subtype polymorphism. So I mean things like lists, queues and maps which can be specialised for the element type. That’s what I can’t imagine living without.

            • @porgamrer@programming.dev
              link
              fedilink
              26 months ago

              I definitely agree on the last point. Personally I like languages where I can get the compiler to check a lot more of my reasoning, but I still want to be able to use all the memory management techniques that people use in C.

              I remember Jonathan Blow did a fairly rambling stream of consciousness talk on his criticisms of Rust, and it was largely written off as “old man yells at clouds”, but I tried to make sense of what he was saying and eventually realised he had a lot of good points.

              I think it was this one: https://m.youtube.com/watch?v=4t1K66dMhWk