Beyond LINQ ...
Mon, Sep 19 2005 12:17
Without doubt, there's some pretty cool stuff coming our way with LINQ, especially XLINQ in VB
And although I've seen some criticism of DLINQ, I think it advances us miles ahead of where we are today. The challenge there now is for 3rd party ORM vendors to integrate that in a seamless way, and for Microsoft to ensure it is extensible to allow them to do so, including, but not limited to, providing other expression tree evaluators for different kinds of database engines.
But what really interests me is the XLINQ stuff. More and more, XML is becoming a standard way to communicate and share data/documents. So these capabilities are v.cool, and vastly simplify the experience. Vb adds to this by allowing you to declare a dynamic interface in respect to XElements . The interface can define elements and attributes you expect to be there. SO this allows for a very loose coupling, where the XML just has to have certain elements or attributes and yet you can work with it use strong intellisense for those known members.
This is interesting because it lets things like "agents" work on/with elements in a documents without having to know the entire document. Sure you could achieve the same with Xpath, but far less elegantly and with no implied type. VB also added dynamic identifiers, which is just a simplified way of using CallByName, which is a vastly simpler way of using reflection.
So is there a direction there ? We can see the strengthening, the evolving of VB's dynamic programming capabilities. Likewise we can see quantum leaps forward in the new query language syntax and integrated XML. Are these two things distinct or is there a bigger picture, a bigger point of convergence ?
Let's look at XML. At present it's pretty rudimentary, a simple "shape" for containing data. But look at html, or xhtml to be more precise. Sure it's document centric still, but suddenly the xml (xhtml) conveys information about actions, about interaction. Now look at XAML, it declaratively provides information for object instantiation, event wiring, and actions. It's "interactive data" streaming to a machine near you soon
So the view of XML as just serialized data, is perhaps old school way of looking at it, very old school. What XML is, is descriptive language that can be used to describe not only data but also actions and interactions. Can anyone now see that point of convergence, where dynamic languages and XML interact to provide extremely powerful ways of interacting ??