[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: the forward method [dynamic vs. static typing]

On Dec 9, 2003, at 12:26 AM, Anton van Straaten wrote:
> I don't see any of this as an argument for DT.  In a language like 
> C++, you
> can declare proxy classes to implement the interfaces you're 
> interested in
> forwarding, and in the implementation of that proxy, the methods 
> invoke the
> remoting code.  That proxy implementation can be generated via macros, 
> based
> on the same interface definition that the actual classes use.

I wrote a distributed objects system in Io in a weekend with about 2 
pages of codes - no wrappers, preprocessors, etc, required. How much 
code did the C++ implementation take? How long did it take to write? 
How complicated was the resulting system? Did new code need to be 
written every time a new class was added? If not, was as a preprocessor 

> The real disagreement we have is that I don't believe that even very 
> dynamic
> systems, in practice, are as free of assumptions about types as you 
> seem to
> imagine.  Aside from these system-level examples of proxies and the 
> like,
> can you think of common cases where you're sending messages to objects 
> where
> you don't know, even conceptually, which interface those messages 
> belong to?

Take a look at NewtonScript's inheritance system. GUI view objects 
would use their parent slots to (often) delegate unimplemented messages 
to their superviews. The result is both a powerful inheritance system 
and never knowing who might end up handling the message.

>  You're recognizing the value of static type
> systems for catching type errors involving certain kinds of values, but
> denying its value for catching errors involving other kinds of values. 
>  Are
> you sure you've analyzed that correctly?

Yes, writing a wrong value to a variable in a strongly/dynamically 
typed system is generally far easier to trace than writing the wrong 
value to a random memory location. At least in my experience.

-- Steve