I’d probably say it depends but I’m no Rust expert and I have no direct experience with C (though quite familiar with C++).
Basically I’d expect writing C to be easy, but not safe. IE you can quickly and easily write C that compiles but has runtime issues. Rust for the most part will catch everything but logic issues during/before compilation meaning once the program runs you’ll have very high confidence in it’s runtime behavior leading to time spent “fighting the compiler” instead of figuring out wtf is going wrong at runtime.
I think primarily I don’t really care to argue about if it’s harder to write or not since it doesn’t really matter. I think the pros Rust provides are worth all it’s cons
Try and write a mutable doubly linked list in Rust and you will find that it’s problematic for the borrow checker.
Search online and you will find solutions that work around this using ‘RefCell’ (to delegate mutable borrows to runtime), or raw pointers with ‘unsafe’.
I would totally argue with this. Rust is way easier to write than C
I’d probably say it depends but I’m no Rust expert and I have no direct experience with C (though quite familiar with C++).
Basically I’d expect writing C to be easy, but not safe. IE you can quickly and easily write C that compiles but has runtime issues. Rust for the most part will catch everything but logic issues during/before compilation meaning once the program runs you’ll have very high confidence in it’s runtime behavior leading to time spent “fighting the compiler” instead of figuring out wtf is going wrong at runtime.
So what’s “easy” about it then? Just getting something to compile? That’s not a very good measure of “easyness”.
I think primarily I don’t really care to argue about if it’s harder to write or not since it doesn’t really matter. I think the pros Rust provides are worth all it’s cons
I agree for the most part, but writing data structures with shared mutable state can be a total pain in Rust.
How so? That’s like, the thing that makes rust awesome to write.
It’s hard to get those kinds of data structures through the borrow checker.
Try writing a doubly linked list.
It’s because it’s hard to make them correct. It’s not any harder to write it in rust than in C. Just C lets you do it wrong
That’s not right.
Try and write a mutable doubly linked list in Rust and you will find that it’s problematic for the borrow checker.
Search online and you will find solutions that work around this using ‘RefCell’ (to delegate mutable borrows to runtime), or raw pointers with ‘unsafe’.
Both RefCell and unsafe are features of the language. That’s like saying python’s OOP sucks if you don’t use the
class
keyword.