I learned Nim for AoC, and had a blast. You express yourself in a very concise way. It is high-level, and at the same time very performant. Statistically typed, but with just the right amount of type inference.
Read somewhere that it was not a better Python, but a better C/C++ that used whitespace in its syntax. That clicked. I like that procedures have to be typed. In Crystal, type signatures are optional and the compiler infers it all if missing. You're guaranteed types are correct, but type signatures have for me a metadata aspect when reading source code that I miss there (it is just a comparison, I love Crystal). Also loved that it comes with specialized structures like intsets, ordered and unordered tables, or linked lists. There's a performance mindset present in everything, I believe. Concision, high-level, and performance would be the highlights for me. I think the docs could be improved, but this is OSS, so it is just a matter of someone doing the work. Also, I founded myself importing strutils, sequtils, strformat, tables, set, ..., constantly. That is tedious for someone used to have everything available all the time (Ruby, Elixir, etc.), but I understand that is a language design decision. Thought about having my own "prelude" that I imported in all solutions, but then I got warnings, hate warnings! I've seen there's a PR or issue to have a way to disable these particular warnings, if accepted, I'd use it.