Steven Schveighoffer wrote:
On Fri, 17 Apr 2009 15:55:43 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

Nick Sabalausky wrote:
"Yigal Chripun" <yigal...@gmail.com> wrote in message news:gsam1p$1ut...@digitalmars.com...
On 17/04/2009 21:58, Steven Schveighoffer wrote:

btw, I'm not trying to convince you that dynamic typing is necessary always a better solution. What I'm saying is that I agree with Andrei - we need to be open minded and have as many useful tools as possible in our programmer toolbox. The important thing is to choose the right tool for the job.

Typically, yes, having "as many useful tools as possible in our programmer toolbox" is great. But with opDotExp, that's not the whole story. What opDotExp is, is a tool of only occasional use that provides only a small benefit, *and* ends up destroying a much more important tool: compile-time checking on a class's members.

s/on a class's members/on the members of the class that actively chose that/

Sure, how do you know that the class actively chose it, or did not actively choose it, or will *never* actively choose it simply by looking at the statement?

You shouldn't worry about it as much as you shouldn't when you iterate a built-in array vs. a user-defined range.

The problem with me is that it doesn't *look* different.

I understand how it could be a problem. The thing is, it is also an advantage.

If there was some way to denote "call dynamic method" instead of "call static method" or some way to denote "has dynamic methods", then I'd have no problem with it. Even if you were forced to derive from a special base type in order to use dynamic methods, I wouldn't mind that.

Would you like ranges that work very different from built-in arrays, and everybody to special-case around that?

By the way, D's AAs suck partly because they aren't like anything. I *really* hate the way D does AAs.


Andrei

Reply via email to