> Like I said in another thread, Nim makes trade-offs that benefit developer
> writing convenience over the strict consistency and explicitness found in
> languages like Ada, Java, Go, and even Python.
Yeah you said that, and I think it's quite wrong. There is no trade-off between
readability and ease-of-writing in the classical sense; maybe Perl does that,
but Nim doesn't. The difference between
t[x] = t[y] + 1
Run
and
tables.put(t, x, system.`+`(tables.get(t, y), 1))
Run
is not clear cut. It's much easier to spot the bug in the first variant (it
should have been `t[x] = t[x] + 1`)... I prefer to see the _algorithms_ not the
plumbing. If the `[]=` operator doesn't do what I think it does, it's misnamed
-- no matter the module it's coming from.
Furthermore, a world where `x.len` is different from `x.len()` which is
different from `len(x)` is not adding clarity at all, it's even more confusing
-- what's the difference between them? Do I need to watch out to call the right
one? Is one slower than the other?