Why Go and Not Rust?
I can see moving from C&#x2F;C++ to Rust for buffer-copying style codes, but for most code general-use programs the cognitive load required to deal with resource management seems way to high to move from from Java&#x2F;C#&#x2F;Node to Rust. (I just got called about a shop moving their Node code to Rust, and I can&#x27;t imagine why any code that would make good Rust code was written in JS in the first place.) Go seems like a non-starter to me -- sure features can be abused (as implementation inheritance has been for years) but to omit generics at this point just seems silly.<p>As for moving from C# to Rust, you can learn to program with the Span&lt;&gt; APIs and get the non-GC perf. of Rust for the most part and still keep GC and other C# niceties (like the whole toolchain and ecosystem...) in much less time than a wholesale move to Rust. As as for message-passing&#x2F;agent&#x2F;channel programming, you can certainly do that in C# if you like, and though there is certainly a lot a foot-shooting that can be done with async and thread contexts, in general the Task&lt;&gt; system is a joy to use compare to almost anything else out there, not only for async code, but for concurrent code.<p>Don&#x27;t get me wrong, I always thought that C++ was a &quot;worst of all worlds&quot; language and appreciate moving to Rust from there, but for most user-facing applications that tend to have complex object lifetimes, I just can&#x27;t see why you&#x27;d want to deal with RIAA when modern GC&#x27;s are so darn good.