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.

Reply via email to