> 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!"
