They both are memory safe and both use reference counting when the static 
mechanisms don't suffice. How far you can get without reference counting 
depends on the coding style and problem domain. If you have to use the 
refcounting then Rust quickly becomes tedious with its `Arc<Cell<T>>` verbosity.

Currently Rust does the pointer "borrowing" better than Nim and also the 
nil/null checking but Nim is catching up. Nim is frequently regarded to be much 
easier to use.

The thread safety is accomplished in different ways, in Rust the refcounts 
become atomic operations, in Nim full subgraphs are moved between threads. 
However, this is still terribly under-developed, in Nim version 1.0 message 
passing was used instead with deepcopy of messages. It always was memory and 
threadsafe too. Nim does not focus on memory safety only, it can also prevents 
deadlocks at compile-time, can check for out-of-range integer values and with 
ORC can deal with graphs that form cycles. 

Reply via email to