> As a second point (just to state the obvious) Python necessarily has to be 
> more conservative with imports because it does not have a static types 
> mechanism

I think it's more than about static vs. dynamic typing, though - it's about 
readability and the ability for developers to clearly see / readily reason 
about what comes from where. I take your point about Nim's _ad hoc_ 
polymorphism needing "promiscuous" imports, but my example about using `strfmt` 
shows that while the compiler may be able to figure out what comes from where, 
it's a bit harder for humans (which is what the OP was talking about). And 
Python's use of __dunder__ protocols allows a similar kind of polymorphism to 
flourish there (in terms of expressive power).

Let's not forget how the Zen of Python ends: "Namespaces are one honking great 
idea -- let's do more of those!"

Reply via email to