> 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?

Reply via email to