In my experience batteries are almost never fully charged and it's hard to get 
feedback if you only release a perfect cathedral. With no feedback, it's kind 
of unlikely you will build something popular.

To take a topical example, even after 30 years of tuning, the core language 
`dict` in Python still seems to have no easy way to "pre-size" an instance. 
There is no power of 2, no `rightSize`, nuthin'. So, one of your rough edges 
literally cannot arise due to an inflexibility/API design flaw (IMO).

Yes, there must be 3rd party replacements or ways to pre-size in some slow 
subclass or whatever, but you could also just write a `proc initTab` that 
always calls `rightSize` for your own code. What's at issue here is "out of the 
box" (and personally I think the Nim workaround is less onerous than 
workarounds in the Python world).

Do you have to learn your way around? Sure. A sales pitch of "just like Python 
but compiled/with native types" is definitely not quite right. That's 
Cython/similar. Analogies and oversimplifications help some people while others 
want the real story, and you strike me as the latter.

Nim gives programmers more power and flexibility, but responsibilities also 
come with that. Cue Spider Man's Uncle Ben. ;-) It is yet a comparatively tiny 
community. Bugs, workarounds, and rough edges come with that. Unused patterns 
like your `&` are just unused, unoptimized things waiting to be 
discovered/fixed. There was a time when `C` had no proper namespacing of struct 
members and that is why some core Unix types have prefixes like the `st_*` in 
`struct stat` (run "man 2 stat" on any unix machine).

No one using Nim _wants_ it to be hard, but there may also be good reasons some 
things are the way they are (often flexibility, performance, or safety, but yes 
sometimes neglect). I'm really sorry to hear your entry has been tough, but the 
flip side of that is you could probably make a HUGE impact to future 
similar-but-not-quite-you's, and I again encourage you to try! Even just 
documenting everything somewhere would probably help at least a few other 
Python Refugees. :-) Cheers and best wishes whatever you decide.

Reply via email to