← Back to context

Comment by imtringued

16 days ago

They don't need extra memory in Rust for the case of nullable pointers.

The boring cases require an enum tag in C too.

By bringing up the one thing that doesn't matter, your argument becomes purely ideological.

You're missing the point - give me a Rust compiler that can run and compile in 64KB memory, then you'll understand that the language C was constrained not just by what the output is running on, but by what the machines of the time could actually handle during compilation.

  • Borland's PASCAL did it on the IBM PC.

    And which modern C compiler fits into 64KB? Even TCC needs 100KB. But that's beside the point. No machine of the last 36 (I'll push my chances, 40) years needs to fit a compiler in 64KB.

    • > Borland's PASCAL did it on the IBM PC.

      That's famously a single-pass compiler. Rust is famously unable to compile in a single pass.

      It is not possible to make a borrow-checking language that compiles in a single pass.

      > No machine of the last 36 (I'll push my chances, 40) years needs to fit a compiler in 64KB.

      Exactly - that's why C is what it is: it wasn't a mistake, they were working under the constraints of the time. My original comment (that you appeared to disagree with) said specifically "Remember where C came from and why it was designed the way it was."

      Let me ELI5 it for you: It was specifically designed to emit assembly in a single pass because of the constraints of the time.

      WTF does "Hur Dur Rust Goodest!" comments mean in this context?

      1 reply →