In Rust you opt into every heap allocation with an abstraction like Rc, Arc, Box etc. With C you would have to implement each of those behaviors with primitives, because C is at a lower level of abstraction than Rust.
Re:Chris Lattner left Swift core team
by littlestymaar on Tuesday February 22, 2022 @05:38AM
(#30426226)
How is that different from C++? Since you've explicitly put C and C++ in the same basket, this argument doesn't hold any water…
It sees like you're trying to catch me with some kind of gotcha instead of dealing with the argument in good faith.
malloc is also an abstraction.
I never said C is without abstraction, only that it is a relatively thin abstraction. Are you seriously arguing that Rust is not at a higher level of abstraction than C?
Re:Chris Lattner left Swift core team
by littlestymaar on Tuesday February 22, 2022 @05:39AM
(#30426238)
> Are you seriously arguing that Rust is not at a higher level of abstraction than C?
Rust is clearly not at a higher level of abstraction than C++, yet in your own argument you've put C and C++ on the same ground…
No I haven't. I said Rust and C++ are on similar levels of abstraction.
Re:Chris Lattner left Swift core team
by littlestymaar on Tuesday February 22, 2022 @09:19AM
(#30428175)
Yet a few comments above in this thread[1]:
> I feel it's missing the quality from C/C++ that they are a very thin abstraction over assembly.
And it's certainly true that Rust has overloading and C doesn't, but that wasn't what I was getting at. The point is that C is defined in terms of the C virtual machine, not the underlying hardware. The C virtual machine is quite far from the actual CPU instructions.