Ary Borenszweig:

> But python doesn't do it either. Did you suggest the same thing to the 
> python devs? :-)

:-)
Well, when I teach Python I give the advice of not using the same names for 
arguments and attributes. So it's a programming practice.
Here the situation in D is worse, because in Python there's always a "self." 
before attribute names, so there's no real ambiguity.

Python is the language I currently prefer, but it's not perfect, and every 
Python programmer knows it has some messy corners. Even Python programmers 
recognize that Python can enjoy some of the features D  already has, like 
transitive immutability:
http://groups.google.com/group/comp.lang.python/browse_thread/thread/7ef75c20d1be370d/

Or the scope exit:
http://groups.google.com/group/comp.lang.python/browse_thread/thread/8c752e871801c223

Or the underscore inside number literals (many people want them, but Hettinger 
has said that normal Python programs have few literals, and such change 
requires too much big changes in the Python parser, so they have refused it).

I can show you other examples of messy things in Python, like the "confusion" 
between class instance attributes and class attributes (you can call class 
attributes even with an instance syntax, with the self).

Python was born to write scripts, not to write large multi-programmer 
applications. Later they have patched some holes, but some of the original more 
"relaxed" nature of Python shows still (Ruby is worse than Python regarding 
large multiprogrammer programs).

I have just filed the bug:
http://d.puremagic.com/issues/show_bug.cgi?id=3878

Bye,
bearophile

Reply via email to