* Use ARC/ORC. I think the thread-based GC was always buggy, but it's not needed. Nim fills a niche as a Python replacement for easy interfacing to C (and possibly C++), and the reference-counted GC is much better in that application. * The global threadpool was an architectural mistake. * Until there is an instance threadpool in std (<https://github.com/nim-lang/Nim/issues/11922)>, * simply prefer <https://github.com/yglukhov/threadpools> * Compilation time has gotten much slower. (And let's not use "incremental compilation" as an excuse. I want incremental compilation as an improvement on already fast compilation, not as a requirement.) I think this is a legitimate complaint.
For everything else, I think you need a different language. There are so many languages which cover common use cases, just pick one: * Pony, Crystal, Swift, ... * If you want a C replacement, use Zig, which is a very good language with its own niche. * If you want a C++ replacement, and you happen to believe (incorrectly) that memory safety is actually a problem, use Rust. But memory safety is easy with runtime analysis. Rust solves a non-problem. And it compiles very, very slowly. For some applications, that's fine, but I deny that it's an "agile" language. Nim is uniquely valuable as a replacement for Python, i.e. as an "interface" language with excellent performance, good compilation time, and high "agility". There's really nothing to compete with it.