Walter Bright, el 2 de agosto a las 16:12 me escribiste: > dsimcha wrote: > >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? > > As far as I know, no other language does this right. > > While it seems common sense in retrospect, coming up with it took a > while. D1 is close, but D2 shines. > > Rob Pike (of Go fame) says Go doesn't allow function overloading > because of the confusion it causes. That's understandable given > C++'s uncontrollable overloading and open namespaces. D2 doesn't > have that problem.
For me the problem with D is dependency control. You don't know what symbol come from which module. Yes, I know you can do explicit dependencies in D with static and selective imports, the same you can do the inverse in other languages with the import module.*-like syntax, but I think D got the default wrong, I prefer explicit by default. With this default, I think complaining when no symbol from an imported module is used would be better to avoid extra unneeded dependencies. But I suggested that before and you don't like it. Too bad. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- no longer afraid of the dark or midday shadows nothing so ridiculously teenage and desperate, nothing so childish - at a better pace, slower and more calculated, no chance of escape,