• Richard@lemmy.world
    link
    fedilink
    English
    arrow-up
    10
    arrow-down
    41
    ·
    edit-2
    7 months ago

    C is the hardware language N°1 of the high-level languages. If you actually want to know and control what happens in the machine, you write in C. Rust, C++ and all the other abstractions are for people who do not understand how computers and computer memory work.

    Edit: grammar

    • FizzyOrange@programming.dev
      link
      fedilink
      arrow-up
      30
      arrow-down
      2
      ·
      7 months ago

      This is a misconception that’s common among beginner C programmers. They think C is high level assembly and don’t understand the kinds of optimisations modern compilers make. And they think they’re hardcore and don’t make mistakes.

      Hope you figure it out eventually.

    • sus@programming.dev
      link
      fedilink
      arrow-up
      29
      arrow-down
      2
      ·
      edit-2
      7 months ago

      even if you write in assembly, you still may not actually understand what is going on in the machine since processors convert the instructions to “micro-ops”, and let’s not forget hardware bugs like those caused by speculative execution

    • Ethan@programming.dev
      link
      fedilink
      English
      arrow-up
      24
      arrow-down
      1
      ·
      7 months ago

      I’ve written programs in C. I’ve written programs in assembly, for x86 and for microcontrollers. I’ve designed digital logic and programmed it into an FPGA. I’ve built digital logic circuits with transistors.

      I’ll still take Go over C any day of the week. If I’m doing embedded, I’ll use TinyGo.

    • witx@lemmy.sdf.org
      link
      fedilink
      arrow-up
      7
      arrow-down
      1
      ·
      7 months ago

      I wrote loads of firmware in c++ and some on highly constrained boards. You’re just stuck in the past and spewing bs