Why Not Rust?
&gt; Not All Programming is Systems Programming<p>Personally I often use Rust for &quot;non systems-programming&quot; tasks, even though I really wish a more suitable language existed.<p>Rust has plenty of downsides, but hits a particular sweet spot for me that is hard to find elsewhere:<p>* Expressive, pretty powerful, ML and Haskell inspired type system<p>* Memory safe. In higher level code you have almost zero justification for `unsafe`, unless you really need a C library.<p>* Immutable by default. Can feel almost functional, depending on code style.<p>* Error handling (it&#x27;s not perfect by any means, but much better than exceptions in my book)<p>* Very coherent language design. The language has few warts, in part thanks to the young age.<p>* Great package manager and build system.<p>* Good tooling in general (compiler errors, formatter, linter, docs generation, ... )<p>* Library availability is great for certain domains, decent  for many.<p>* Statically compiled. Mostly statically linked. Though I often wish there was an additional interpreter&#x2F;JIT with a REPL.<p>* Good performance without much effort.<p>* Good concurrency&#x2F;parallelism primitives, especially since async<p>* Increasingly better IDE support, thanks to the author of this blog post! (rust-analyzer)<p>So I often accept the downsides of Rust, even for higher level code, because I don&#x27;t know another language that fits.<p>My closest alternatives would probably be Go, Haskell or F#. But each don&#x27;t fit the above list one way or another.