capability wise both are incredibly powerful genral purpose languages
For system language use, Nim is a better choice as you can use it with its Arc GC or no GC at all.
Perf wise, Crystal seems to be marginably faster in most benchmarks. Though at that level the difference isn't much.
crossplat wise, Crystal has no windows support while Nim has.
Tooling wise; crystal IDE tools are pretty far behind that of Nim.
Personally I like Crystal a lot due to its type system and syntax but you can't go wrong with either language.
Nim was a better fit for me because:
- More mature tools and 'beaten paths'.
- much faster compilation times
- much better cross platform support
- more people I can reach out to for help, amazing Discord server
- simple concurrency for my needs
- tiny binaries
- low memory usage
- simple to understand import system. (i hated ruby's import system)both use significant whitespace
nim has better cross-platform and embedded support, as crystal targets llvm while nim targets c/c++/js
nim has more low-level support with the tradeoff of supporting dangerous things like raw pointers
crystal has better async imho