Rust is very popular because is as low level as C but has memory safety features builtin, so it is considered the best of both worlds. So basically what you said is correct.
(Disclaimer: I am not a Rust programmer, I prefer C/C++)
Low level goes way beyond raw pointers. But yes, rust does have raw pointers.
Java does have raw pointers too I believe though. I wouldn’t call it low level.
But low level is not well defined. At some point, the difference between low level and high level used to be whether you had to write a different program for each computer architecture. Under that definition, C is a high level language. Assembly (and very old languages) would be low level.
My own definition of low level is: if you have to care at all about memory management, it’s low level.
Basically, if the language has a garbage collector or if it automatically counts references without you explicitly telling it so, it’s a high level language for me.
Rust is very popular because is as low level as C but has memory safety features builtin, so it is considered the best of both worlds. So basically what you said is correct.
(Disclaimer: I am not a Rust programmer, I prefer C/C++)
I guess in my mind I just associate raw pointers with low level. But I guess Rust lets you do that with unsafe blocks still?
Low level goes way beyond raw pointers. But yes, rust does have raw pointers.
Java does have raw pointers too I believe though. I wouldn’t call it low level.
But low level is not well defined. At some point, the difference between low level and high level used to be whether you had to write a different program for each computer architecture. Under that definition, C is a high level language. Assembly (and very old languages) would be low level.
My own definition of low level is: if you have to care at all about memory management, it’s low level.
Basically, if the language has a garbage collector or if it automatically counts references without you explicitly telling it so, it’s a high level language for me.