There is one thing where I would like to add my two cents:
    
    
    Copy and move semantic which are a delight to use when writing performance 
critical code specially. I think Nim is poor in that regards as it deeps copies 
seq (vectors) and string by default
    

It is true that Nim does not have move semantics like Rust, but I see a clear 
advantage that arguments to functions are passed probably by const reference.
    
    
    ++
    
    struct MyStruct {
      int64_t a,b,c,d;
    };
    
    void foo(const MyStruct& arg) {
      // ...
    }
    

Is in Nim:
    
    
    type
      MyObject = object
        a,b,c,d: int64
    
    proc foo(arg: MyObject): void =
      #...
    

Therefore a lot of copying is avoided by default. Instances wher you actually 
need to copy a value are rare. And there is less visual noise compared to the 
Rust and C++ version.

Reply via email to