• Owl@mander.xyz
    link
    fedilink
    arrow-up
    14
    ·
    7 days ago

    Language

    I have job for you “language” programmers.

    Requirements; -minimum 8 years of experiences Etc…

      • Fuck Yankies@lemmy.ml
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        7 days ago

        Well, achually, the Clang compiler along visualcode is planned to compile C++ with a borrow checker implementation.

        Also, C is imperative, C++ is object oriented, and Rust is functional programming - which is how they differer fundamentally.

        That Rust is the first one with a borrow checker doesn’t make every language (or compiler, as I “well achually” myself) that implements a borrow checker Rust.

        It just means they have implemented a borrow checker - most likely at compile time, similarly to how macros are just boilerplate code applied at compile time and that it too is a feature available in many programming languages - or compilers.

        It’s “well achually” all the way down.

        Also, I wrote all this when I realized the minus was the joke part making fun of c++ lol

        I well achually’ed myself into doing a dumb, which is usually what that does. Hopefully somebody gets something out of this.

  • addie@feddit.uk
    link
    fedilink
    arrow-up
    6
    ·
    7 days ago

    To be fair, compiling C code with a C++ compiler gets you all the warnings from C++'s strong-typing rules. That’s a big bonus for me, even if it only highlights the areas of your C that are likely to become a maintenance hazard - all those void* casts want some documentation about what assumptions make them safe. Clang will compile variable-length arrays in C++, so you might want to switch off that warning since you’ve probably intended it. Just means that you can’t use designated initialisers, since C++ uses constructors for that and there’s no C equivalent. I’d be happy describing code that compiles in either situation as “C+”.

    Also stops anyone using auto, constexpr or nullptr as variable names, which will help if you want to copy-paste some well-tested code into a different project later.

    • tetris11@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      7 days ago

      To be honest I’m still confused by a lot of these microcontroller languages (PlatformIO/Arduino/ESPHome)…

      Are they just drag and drop feature blocks that are essentially C macros, but you never get to see the code and its all abstracted with flow diagrams?

      • Kratzkopf@discuss.tchncs.de
        link
        fedilink
        arrow-up
        8
        ·
        7 days ago

        The standard Arduino platform is essentially C, just with some standard hardware-near procedures hidden away as far as I know. You can just write standard C code in two blocks: init and loop. Then the loop block will be repeated for ever. For controlling voltage pins you have easy commands similatlr to like pinState(PinNumber, on/off). I do not know about the others you mentioned, but there definetely is also some implementations for Raspberry Pi control by drag&drop. There is no need to limit yourself with those though.

      • DaPorkchop_@lemmy.ml
        link
        fedilink
        arrow-up
        7
        ·
        7 days ago

        I don’t know about the others, but Arduino is literally just C++ with some macros/library functions.