• kn0wmad1c@programming.dev
    link
    fedilink
    English
    arrow-up
    171
    ·
    5 months ago

    I’ve been a professional programmer for nearly a decade and I just realized that C# is C++++ with the pluses stacked

        • ZILtoid1991@lemmy.world
          link
          fedilink
          arrow-up
          8
          ·
          4 months ago

          Issue is, Rust is not a drop-in replacement for C. The memory safety features are just one part, and since Rust is also a “weakly” functional language, thus its prefered to write such code with it.

          • lad@programming.dev
            link
            fedilink
            English
            arrow-up
            7
            ·
            4 months ago

            Anything that is drop-in replacement for C (or C++ for that matter) is going to be awful because of the same compatibility burden, imo

            • ZILtoid1991@lemmy.world
              link
              fedilink
              arrow-up
              2
              ·
              4 months ago

              D is a mostly drop-in replacement (type renaming and such needed though), and it doesn’t have that issue. D even has a mode called BetterC, where the D standard library and the garbage collector is left out.

              • lad@programming.dev
                link
                fedilink
                English
                arrow-up
                1
                ·
                4 months ago

                I was planning to check it out, but don’t have any experience yet. I thought it is more of a replacement than drop-in replacement, I may have been wrong

          • CanadaPlus@lemmy.sdf.org
            link
            fedilink
            arrow-up
            3
            ·
            4 months ago

            Yeah, it’s not a small change. If there was a simpler way to make C memory-safe, it would have been done decades ago. It’s just a different language too, which is fair given how much younger it is.

            • ZILtoid1991@lemmy.world
              link
              fedilink
              arrow-up
              1
              ·
              4 months ago

              D kind of did that (C pointers are still an option, alongside with the preferred dynamic arrays, which has the memory safety features), and once I’ve seen a C compiler fork that retroactively added D-style memory safety features, although they also very much insisted on the “const by default” mantra.

              • CanadaPlus@lemmy.sdf.org
                link
                fedilink
                arrow-up
                2
                ·
                4 months ago

                I think this is one of those things where there’s no “kind of”. Pointers were added for a reason, you’re probably not going to implement a database very well without them. If you use them, at some scale you’re inevitably going to have memory bugs. Technically, if you were to only use hardcoded printfs, C is memory safe too.

            • ssm@lemmy.sdf.org
              link
              fedilink
              arrow-up
              1
              ·
              edit-2
              4 months ago

              If there was a simpler way to make C memory-safe, it would have been done decades ago.

              We’ve had compile time sanitizers (-fsanitize=blah in gcc/clang) and runtime sanitizers (valgrind) for ages. I don’t know how they stack up against rust’s compile time sanitizers, but it’s something.

              • CanadaPlus@lemmy.sdf.org
                link
                fedilink
                arrow-up
                1
                ·
                edit-2
                4 months ago

                About how an Excel spreadsheet with no formulas stacks up against a corporate accounting suite. Valgrind is how you find the bleeding once you inevitably introduce a memory bug. I don’t understand all the fsanitize options, but I’m guessing they aren’t a blanket solution, exactly because memory bugs have still been inevitable.

                This thread is making me wonder how many people actually understand what Rust does. It rigorously prevents any form of memory error at all in normal code, and unsafe blocks, where needed, tend to be tiny. It makes C segmentation faults look just as goofy as JavaScript type errors.

        • Lucy :3@feddit.org
          link
          fedilink
          English
          arrow-up
          3
          ·
          4 months ago

          I care, when I need to compile a lot of stuff multiple times on not-as-fast machines. I’ll create a private repo powered by my workstation just for this. For C stuff I don’t need to, because I can just use my workstations power via distcc.

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      5
      ·
      4 months ago

      I once saw an issue someone made for some database and said that they were learning Rust and if the database was rewritten in Rust then they could help contribute!

    • pfm@scribe.disroot.org
      link
      fedilink
      arrow-up
      8
      ·
      5 months ago

      C Tesseract has this interstellar vibe and brings quotes like the following, but with a totally different meaning:

      • “Years of [compilation error] messages”
      • “People disn’t build this Tesseract”; “Not yet… But one day. Not you and me but people, people who’ve evolved beyond the four dimensions we know”
      • “You’ve got to leave something behind”
    • xmunk@sh.itjust.works
      link
      fedilink
      arrow-up
      3
      ·
      5 months ago

      I’m waiting for the marvel cinematic universe movie about filling out TPS reports and preparing for Y2k… it’s guaranteed to do better than Black Adam.

      • Luke@lemmy.ml
        link
        fedilink
        English
        arrow-up
        4
        ·
        5 months ago

        Wasn’t that the Loki show, where all of time is run by a boring dystopian corporate bureaucracy?

        Now that I think of it, I guess you’re right, that show probably did do better than Black Adam.

  • pelya@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    edit-2
    5 months ago

    C₊𝅄⨧⁺ᐩ is used for building firmware for hyperdimensional singularity processors.

      • JATth@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        4 months ago

        H̢̱̀e͖ͧ͘r͈̔́e̖̅̀ͅ ḩ͒͏̩̲ẹ̽ͯ̀ c̔͑͠҉̬o̢̢̠̜̓̚m̷̻̳ͧͪ͘ę̢̥̋̀s̢͈̲ͧ̀͜ͅ,̧̔͞ͅ f͖͗̿̕͝ȅ̴̶̩̂͟a̸̡̯͈̼͋͡s̗̋̀̀̀̀͟t̒̾͏̯ y̸̛̟̽̇o̢̟̜͂͆ͯ͘͜u̧̧̜͔͇ͭͫ́̚͞r̀̃͑̓͒͏̮ e̍̒̇ͯ҉̴̲̭y̷̰̖ͨ̑͜e̓ͭͭ͂̕҉̸̛̦̱̤̫͢s̡̛̫͋̕ o̢͉̘͚̤̅ͫͤ̓ͭ̕͡n͊͘҉̲̟̖͔͝͞ t̷̟͊̽h̨̦͎̅̄ͪ́̚͘͠i̶̢̛̬̞̦͊̅̏̀́s̶̸̢̹̹͕̩̜̣̎ͫͤ͐̈̀.̛̰̼̗̺̼͗ͣ̏́̚͟͠.̵̪ͥ̈̚̚͞ͅ.̷̶͎̞̳̘̈͋ͬ̈͂͒͠ z̸̛̫̓͜͟͡ḁ̧ͨ͊͗ͫͫ̅́͢͠͠l̵̴͒͏͚̥̻g̩͎̲̼̠̿̅ͩ͌̇͟o̢̝͍͔͍̼̼ͤͦ̎́͘͝ i̷ͧ̅̂͟͡͠͞҉̸̙̱͍͈̝̠̺̀ͅs̗̮͇̪̯̋͋́̕ t̵̶̛̰̘̰̫̬͖̜͗̒͗̉̿͌̀̀͢ẖ̴̴̡̭̪̉̌̈́͗͘e̵ͬ̃ͬ͌͆̍͏̧̡̧̦̘͇͕͙̳̹͜ ạ̳̺͎̤̺̖̠̔̈ͮ̉̌̓̀́͟͢͞͞n̊͏̰̖̘̖̭̰̖̕͢ş̴̽͘҉̮̞̼̱w̨̢̠̻͐̐͑̊͢͞e̢̡̛͖̙̟̣͋͆͘̕ͅŗ̧̯ͪ͘͘͜͡.̭̘͇͓̹̻̖̖͉͊ͪ́

      • I Cast Fist@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        5 months ago

        On PC, you can hold Alt and press a number combination, like 1 or 257, to get an ASCII smiley. Not Unicode, but hey, it’s something

  • elrik@lemmy.world
    link
    fedilink
    English
    arrow-up
    18
    ·
    5 months ago

    This isn’t the evolution of C at all. It’s all just one language and you’re simply stuck in a lower dimension with a dimensionally compatible cross-section.

  • Codex@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    5 months ago

    I’m not ready for 4D, just let me try out C Lattice on a few smaller projects first.

    • palordrolap@kbin.run
      link
      fedilink
      arrow-up
      22
      ·
      5 months ago

      “Just a heads up that we’ll be shipping your machine to the client, since it’s the only machine on Earth known to support the software. You’re getting the spare machine out of the basement. Super fast Cyrix processor. Looks like it boots to Windows 11 release 3, but they’ve written it 3.11 for some reason.”

  • FiniteBanjo@lemmy.today
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    4 months ago

    Fun fact, C didn’t have a lot of things like Classes and was often distributed or stored alongside various libraries so it was C Plus (as in addition to) Libraries before it was C++, and somebody decided the next iteration was C with 4 pluses, which forms a #

    Source: Bjarne Stroustrup, I forget which edition of his C++ book.