• SuperFola@programming.devOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    9 months ago

    Yes, alas C++ is fun, but very quirky. Perhaps too much. For big (new) projects I wouldn’t recommend it. People are trying to fix it but it’s hard and without breaking old features I don’t think it will be possible to make it better and improve it even more.

    • 5C5C5C@programming.dev
      link
      fedilink
      arrow-up
      6
      ·
      9 months ago

      The only way to fix C++ is if you’re willing to break backwards compatibility and invent C++2.0.

      But that already exists, and it’s called Rust.

        • 5C5C5C@programming.dev
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          9 months ago

          I’ve tried what you’re suggesting in order to write highly concurrent multi-threaded applications. I’ve used frameworks that are supposed to handle all the details of concurrency and synchronization for you. Inevitably they have flaws in their implementations where either the framework itself exhibits UB/data races/deadlocks, or else the design makes it far too easy to write your own UB/data races/deadlocks.

          The worst part is that these problems usually don’t show themselves until your software has been running in production for thousands of hours, and then reproducing the problem to try to debug it is effectively impossible. I’ve had cases where I resort to building my C++ application in release with debug symbols and then run it inside of gdb in production. I haven’t benchmarked the effect of running it in gdb, but I have to imagine it kills much of the value of even using a high performance language.

          Now I exclusively use Rust for any new development, and it’s never delivered any unwelcome surprises to me after deploying.