== Quote from Walter Bright (newshou...@digitalmars.com)'s article > dsimcha wrote: > > I absolutely despise using qualified names because they are both syntactic > > noise > > and extra typing. D lets me just import tons of stuff and skip the > > qualified > > names in most cases. Most of the time it does what I mean, and it > > complains if > > and only if there's ambiguity about what I mean. > I am inordinately pleased with how the anti-hijacking design worked out. I > think > it is unique to D2. > Consider, for example, what a botch C++ did with this (namespaces and Koenig > lookup). C# requires lots of pointless qualifications. > D2's design works so well most people don't even notice it. It just works.
Yeah, I always take this for granted when programming in D, and never mention it as a reason why I like D, but whenever I use something else I'm always astounded at how much of a PITA something as simple as getting modules right is. One reason I hate programming in C is that people Greenspun namespaces that force you to **always** use fully qualified names. C++ isn't much better since just doing "using namespace myNamespace" invokes so many here be dragons. It just seems like common sense to me that a module system (and a language in general) should do what you mean as long as there's no ambiguity about what you mean (without forcing you to specify things redundantly, such as by using qualified names), but not guess what you mean when there is ambiguity. Is there any other language that gets this right?