• xav@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    2 months ago

    I have decades of C++ experience. I have never met any C++ developer who hasn’t shot himself in the foot regularly with this damn language.

    • Valmond@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      1
      ·
      2 months ago

      But it’s the funniest language IMO, you can do frigging anything with it.

      Which is why it causes problems of course.

      • naeap@sopuli.xyz
        link
        fedilink
        arrow-up
        1
        ·
        2 months ago

        And I fucking love it

        I hate java with a passion, C# was fun (but at that time only available through the .Net nightmare) and I grew up with (Turbo ;⁠-⁠)) Pascal and C

        So, I’m feeling rather comfortable and at home with C++

        I’d like to do a bigger project in Rust once at least, but with my current project already the compile times are between 20/25 to 45mins (depends, if you have the build server available or if you need to make up with the IPC).
        so, I guess, those iterations would become even longer with Rust

        But I’m also having the advantage, that my applications are running very, very isolated. So I don’t really need to take care about exposure and attacks.

        Still… Finding a memory leak or some shared memory fuck up is everything but fun…

        Especially as most of the logic runs in kernel space and debugging possibilities are mostly reduced to traces/log files

        Still, I love it
        Maybe it’s because of the thrill ;⁠-⁠)

  • SinTan1729@programming.dev
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    2 months ago

    My first ever big boy language was C++ (after Basic, and Logo, does anyone remember that lol). I was in middle school, tried to self-learn from learncpp.com, only to realize that I had mostly learned C, with cin-cout instead of printf-scanf. So I just decided to migrate to C. Nowadays, I mostly code in Rust, Go, and Python. But my experience with C has been extremely helpful. Can’t say the same about C++ though.

    • LedgeDrop@lemmy.zip
      link
      fedilink
      arrow-up
      0
      ·
      2 months ago

      C++ is useful for learning object oriented programming: Describing what really happens in constructors and destructors, the pros/cons of reference counting and how it actually works (using std::unique_ptr)

      These are things that most modern languages try to hide/abstract away, but the underlying problems and limitations never go away, but with C++ you’ll have a better understanding of why they happen.

      However, if you go down the rabbit hole of Template Metaprogramming, I agree with the original post: it takes decades to learn and really only useful exploitable in C++.

      • SinTan1729@programming.dev
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 months ago

        I’ve always preferred the functional approach to programming, so OOP never really intrigued me. That’s one of the reasons why I never liked C++ or Java, but instantly fell in love with Rust. It lets me do a lot of functional style programming, while still being somewhat practical. (I’m looking at you, Haskell.)

        • LedgeDrop@lemmy.zip
          link
          fedilink
          arrow-up
          0
          ·
          2 months ago

          I’ve been a long time believer that some problems are better solved via OOP, others through functional programming. The perfect language would be a successful blend of the two.

          Many popular OOP languages are horribly lacking on FP or it looks like an eyesore (golang, python, etc). …and FP languages trying to do OOP are kinda awkwards (see common-lisp).

          I thought Crystal Lang (a statically type checked dialect of Ruby) was going to be the “perfect language”… but the compile time performance and the lack of 3rd party libraries (like an aws SDK) really made it hard to use.

          Hearing what you said about Rust has renewed my hope.

          That said, I did notice that features like Coroutines have been “experimental” for nearly 9 years.

          I hope I’m missing something obvious, but how would you create any sort of heavy-lifting, long running, multi-session daemon/application without having some sort of asynchronous mechanism that goes beyond threading (which is limited to the number of cores the host machine is running).

          edit: cleaned up a few thoughts (prematurely hit submit)

          • SinTan1729@programming.dev
            link
            fedilink
            English
            arrow-up
            1
            ·
            edit-2
            2 months ago

            I don’t think there’s an std-way of doing it, but the Rust ecosystem has this thing where people usually settle around one library. In this case, it is tokio. Afaik, most async stuff is done using tokio. What little async I’ve used, it’s been using tokio or some library like actix-web that uses tokio under the hood.

            Also, side note, I never understood the idea of why golang is ugly. I think it’s fine, except for maybe the repeated if err != nil guards. Those are ugly. I wish it used additive types for error handling.

  • Feyd@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    2 months ago

    C++ is my favorite language I’ve ever programmed in and is not even close, but I spent way too much of my time on code reviews because I couldn’t trust almost anyone I worked with not to create dangling refs, memory leaks, etc