* 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.

Reply via email to