• MangoCats@feddit.it
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    I tried to use C++ in 1991 but the Borland Turbo C++ compiler was too buggy, so we used C instead. By 1996 C++ was “ready for primetime” on IBM-compatible PCs (yes, they still called them that, sometimes in 1996) and I switched - for 30 years.

    I just spent 10 days building a proof of concept in Python, all the “common wisdom” says that was the fast way to get it done. Now that the prototype is done and the (initial) user feedback is addressed, I’m running a port to something better for lightweight, performant, easy deployment… sadly, C++ isn’t even on the radar for potential targets - top 3 candidates were Go, Rust and C#. I can’t abide the C# ecosystem, and Rust is just a little too rigid and immature for my tastes, so here we Go… anticipated to take 50% longer to port from Python than the Python took to develop in the first place… we shall see…

    • elephantium@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      2 days ago

      I can’t abide the C# ecosystem,

      Why not? I like working in C#, so I’m curious what about the ecosystem bothers you.

      • MangoCats@feddit.it
        link
        fedilink
        English
        arrow-up
        1
        ·
        2 days ago

        My perception is one of a treadmill. My fellow developers in C# are much more frequently analyzing migration from one incarnation to the next, updating and installing their license files, evaluating compatibility between versions, and generally spinning their wheels on things not required for getting work done on other platforms.

        • elephantium@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          ·
          2 days ago

          Yeah, fair. New versions release every year. It’s usually good stuff, but it does add some toil to existing codebases.

          • MangoCats@feddit.it
            link
            fedilink
            English
            arrow-up
            2
            ·
            2 days ago

            Back in the day, I was getting a new “99% compatible” DOS version every 6 months (until we transitioned to the PharLap 32 bit extender, got more memory to work with AND stopped the perpetual upgrade treadmill.)

            That “99% compatible” thing means: in a 10,000 LOC codebase, you’ve got 100 things to fix before it works on the new DOS.

            I really liked working with Qt from 2006-2024 or so, the only major break was 4-5 (must admit, I never migrated to 6, and nobody forced me to…) and the migration from 4-5 was less painful than a DOS version bump. Also, Qt fully insulated our code from garbage changes happening at lower layers.

            • elephantium@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              19 hours ago

              Most of my version-upgrade woes seem comparatively recent, lol

              1. Nullable contexts. It’s “easy” to update this with a setting in your project file! … but it adds warnings to basically every file in the project :( You could break it up by adding a preprocessor directive, but it still added a lot of noise at the time.
              2. File-scoped namespaces. I like this feature for new code, but OUCH does it mess up code reviews when it’s an incidental change. I really grew to love Github’s “ignore whitespace” setting in the PR diff view because of this.
              3. Migrating from 4.6 to .NET Core. There were a few times when a deploy just … stopped. It worked on our desktops, and it worked on our test server, but the prod deploy just choked. We might have finally gotten a clue about what was wrong from the event viewer, but it’s been a while. I do recall that our usual troubleshooting path was useless in this case!
              • MangoCats@feddit.it
                link
                fedilink
                English
                arrow-up
                1
                ·
                16 hours ago

                adding a preprocessor directive

                Yeah, I’ve had to do that a few times lately. Really tweaked me when gcc transitioned things from warnings to errors.

                Migrating from 4.6 to .NET Core.

                Are we on .NET 7? No, only 8 is available here without unreasonable effort to backdate. Does the .NET 7 code run in 8 without mods? Yes, but that doesn’t change the hassle of talking endlessly about it.

                • elephantium@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  12 hours ago

                  Are we on .NET 7?

                  No. We weren’t. This one was about a decade ago, around the time they first released .NET Core.

                  talking endlessly about it

                  Eh…ideally you’d have the conversation once, around what upgrade strategy to use, then execute on it. Upgrade yearly vs. ride out LTS windows. Etc.