You are viewing a single thread.
View all comments View context
5 points
*

Rust can create native binaries but I wouldn’t call it close to the metal like C. It’s certainly possible to bootstrap from assembly to Rust but, unlike C, every operation doesn’t have a direct analog to an assembly operation. For example Rust needs to be able to dynamically allocate memory for all of its syntax to be intact.

permalink
report
parent
reply
7 points

For example Rust needs to be able to dynamically allocate memory for all of its syntax to be intact.

Hmm, you got an example of what you mean?

Rust can be used without allocations, as is for example commonly done with embedded.
That does mean, you can’t use dynamically sized types, like String, Vec and PathBuf, but I wouldn’t consider those part of the syntax, they’re rather in the std lib…

permalink
report
parent
reply
2 points

So you’re right that this is a bit arbitrary because the line between the standard lib and the language is blurry, but someone writing Rust is going to expect Vec to work, it doesn’t even require an extra “use” to get it.

Perhaps a better core example would be operator overloading (or really any place using traits). When looking at “a + b” in Rust you have to be aware that, depending on the types involved, that could mean anything.

Anyway, I love Rust, it just doesn’t have the 1:1 relationship with the assembly output that C basically still has.

permalink
report
parent
reply
3 points

Thank you for the explanation.

permalink
report
parent
reply

Programmer Humor

!programmer_humor@programming.dev

Create post

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics

Community stats

  • 7.4K

    Monthly active users

  • 978

    Posts

  • 38K

    Comments