One small thing that feels inconsistent in the standard library (and which has 
confused me a bit since I started using nim) is that in addition to the new 
keyword different standard library classes have different new and/or init 
procedures. For example there is newSeq and newSeqWith, newTable, newTableWith, 
initTable, etc.

Perhaps there is a clear rule to choose which is which and when to use which 
(or create initXXX vs newXXX procedures on your own libraries), but (on the 
surface) it feels inconsistent and is confusing (at least it was for me).

I'd prefer that you could always use new (and define a constructor procedure if 
you need some custom initialization).

I also agree that it would be best for not nil to be the default, but I don't 
know if that is too much of a change this close to v1.0. It would probably 
break a lot of existing code (and perhaps find a few bugs in the process).

Reply via email to