C for Rust Programmers

(bd103.dev)

31 points | by xyproto 1 day ago

5 comments

  • uecker 50 minutes ago
    Any tutorial for C should explain compiler warnings and other tools that help make code safer. In C, you do not rely on the language specification but on tooling. Especially for Rust programmers, this needs to be explained more explicitly. And of course, you can build abstractions using types in C. So a tutorial should also focus on that, and perhaps not start with a low-level string reversal function.
    • bjackman 0 minutes ago
      > This is not a substitute for a proper C tutorial
    • kingforaday 5 minutes ago
      I'm with you. Since the post already shows Clang catching the array-decay bug, the author could even just add a “always build with -Wall -Wextra -fsanitize=address,undefined” note and some explanation of course.
  • bjackman 5 minutes ago
    It's beautiful to see this perspective! The fact that we are at "whoa, C is fucked up compared to my expectations" instead of "look at Rust's fancy safety stuff" shows that as a field we've started lifting the baseline.

    Nowadays I actually believe I'll likely see a world without memory corruption within my lifetime.

  • ReDress 1 hour ago
    I'm going to go out on a limb here and make a wild guess.

    That boolean is actually mostly an extension of the integer system whereby we now have an integer type that stores only one bit.

    Whereby the bit stored either results in a 'true' or 'false' value.

    Anyways, I know booleans are useful in systems development when you have strict memory / storage constrains / bandwidth (networks).

    Yeah, that works for me.

    • bjackman 2 minutes ago
      'bool' is still at least 1 byte in C. If you want to store one Boolean per bit you have to manually implement a bitmap.
  • _dain_ 1 hour ago
    >The very first systems programming language I ever learned was Rust. This is uncommon compared to many other programmers; you're more likely to find someone who learned C or C++ first before coming to Rust.

    It's becoming increasingly common. Rust is my first systems programming language too. I tried to learn C a few years ago but I found it too austere and prickly, which put me off.

    • assimpleaspossi 16 minutes ago
      I was going to write that I found this odd. The kid that cuts my grass is going for a degree in CS and told me just yesterday that, in his second year, Java is the language he uses with a little Python. That C was such a struggle and he won't touch it.

      For someone getting a CS degree, that just seems so, so odd. Along with that, he's been studying edge detection in images. In his second year. Not to run off topic but, again, I find that so, so odd.

    • ReDress 1 hour ago
      Probably because C and C++ are mostly used in system and desktop development.

      Rust is taking steps or has been taking steps in this direction too.

      It's not surprising that a lot of experienced systems and desktop development engineers looking to getting their hands on the newest tool already have experience or at least familiarity with C and C++.

  • BitProgram 1 day ago
    [dead]