Don Box: The fact that Longhorn currently has three models
for property extensibility instead of one is an accident of
history. Whether or not there is enough common functionality and
model here to do unification is still an open question.
If you look at
JScript.Net, you will find a
fourth one. And a compelling motivation for
unification.
Picture a world in which in which your User Interface, Data
Store, and Network interfaces are designed to
Cope with Change. Where somewhat less than 10% of your
code needs to be
fast. The most important characteristic of the remainder is ability
to be responsive to market needs, and this means that programmer productivity
and program maintainability are the key bottlenecks.
This will give rise to languages like
Xen and
Groovy; it will
reinvigorate languages like JScript; and many of these features
will find their way into VB.
Over time, the runtime will find ways to optimize these common
access patterns, and the performance differences will become less
important. So programmers will be able to code "foo.bar"
without having to worry about whether bar is predefined or was
dynamically added.
Quite interesting, and it makes me think of something I've been wondering. I've not seen any information about writing windows forms applications in JScript.NET is it possible, or are we restricted to using C# and VB.NET? I have quite a few small applications written in JScript using the HTA (HTML Application) model, and would love to be able to quickly port them to .NET (they are all VERY object oriented).
I'm not sure who invented the term expando, but I love it. These were a big part of DHTML programming in IE/Trident. I don't know for sure, but my guess is that expandos (at least the term and the JScript (not .net) implementation) were invented as part of IE4 development. At that time expandos were implemented by a very creative implementation of IDispatch.
There are multiple people on the Avalon team who used to work on Trident (I'm one of them) and the idea of expandos had influence on DynamicProperties/AttachedProperties.
Anybody know of any good architectural discussions on the implications of "expando" properties? Say in how they might affect the implementation of the more common design patterns or even enable new design patterns...