It’s just data

Expando properties

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 "" without having to worry about whether bar is predefined or was dynamically added.