Fully dynamic d by opDotExp overloading

Don nospam at nospam.com
Fri Apr 17 12:34:01 PDT 2009


Andrei Alexandrescu wrote:
> Nick Sabalausky wrote:
>> "Steven Schveighoffer" <schveiguy at yahoo.com> wrote in message 
>> news:op.usjnzajzeav7ka at steves.networkengines.com...
>>> On Fri, 17 Apr 2009 14:32:07 -0400, Nick Sabalausky <a at a.a> wrote:
>>>
>>> My main concern that I've read so far is how if a class has a dynamic 
>>> method dispatcher that's callable like a method, you can't rely on 
>>> the compiler to help you typecheck (or spellcheck) the *non-dynamic* 
>>> methods, because it will just default to sending incorrectly typed 
>>> data or misspelled methods to the dynamic dispatcher.
>>
>> That is a *very* good point, that hadn't even occured to me.
>>
>>> I think dynamic methods  have a very limited use, and probably aren't 
>>> worth polluting the D  language for a few rare cases.
>>>
>>
>> Agreed.
>>
>>> When you know the API ahead of time,  you're almost always better off 
>>> to have statically typed objects.  When  you don't know it ahead of 
>>> time, well, I prefer the uglyness of seeing the  quoted strings to 
>>> having the compiler just start trusting everything I do  ;)
>>>
>>
>> Agreed.
> 
> I think there's merit in binding via strings. It makes for very flexible 
> code that is future-proof, dynamic-linking-friendly, and hot-swappable 
> without recompiling (e.g. you don't need to recompile because you now 
> implement an interface etc.) 

Does that still apply to the template version you proposed?

>Reflection is very useful as well.
> 
> If anything, this agreed-fest shows that the rift between static typing 
> and dynamic typing is alive and well. I've seen many discussions in 
> which people were mystified how anyone gets anything done in a 
> statically-typed OO language. (In fairness, static typing and OO have at 
> best a tense marriage.)

> But anyway, my point is that it's good to be open-minded. If this 
> conversation does nothing but leave us firmly with our heels in 
> static-land, then we haven't gained anything. If we weren't used to 
> static types we wouldn't be here. I think D can and should allow string 
> lookup for its methods. It's a low-complexity proposition that adds a 
> very interesting tool to D's arsenal. I suggested Walter since a long 
> time ago to support opDot!(string). He implemented the useless version 
> (sigh) which was arguably much simpler and offered a cheap way to 
> experiment. So I'm very happy it's back on the table, and with an 
> implementation to boot. Congratulations David.
> 
> 
> Andrei



More information about the Digitalmars-d mailing list