My resolutions to post here more often have been overwhelmed by the day job, I’m afraid. I’m now in the process of taking over as Program Manager for XLinq as Dave Remy takes over the Group Program Manager role for our entire team. That should get the blogging juices flowing more regularly, because we really need to tell the world about what we’re doing and get a reality check to see which of the innovations address real problems, which might be hard to understand, which aren’t real problems, etc. Yes, I still “own” DOM and the business case for XQuery in the mid-tier, so I am feeling even more schizoid than usual 🙂
One task is to update Dave’s XLinq Overview PDC whitepaper as the actual API has evolved. For example, our valiant attempt to hide Text nodes completely seems to have been only partially successful; we can’t figure out how to fully support mixed content in a clean way without them. The good news is that one should still only have to think about text nodes in mixed content; otherwise they are hidden out of sight just as in the PDC version of the API. I’d very much like to hear about anything you found unclear in the original paper, which real-world requirements it may have overlooked, and generally get feedback on how we can envision and implement the XLinq project in a way that meets the needs of mainstream developers who may be intimidated by the complex mass of stuff one needs today to write object-oriented programs that access XML in a database and do interesting things with it.
Some recent papers relevant to LINQ / XLinq are of note. As I mentioned in the XML Team weblog, the XML 2005 conference proceedings are now available and they include Erik Meijer and Brian Beckman’s XML Programming Refactored: Return of the Monoids (slides). (Yeah, the slides have the famous “DOM means brain-dead in Dutch” quote from Dr. Meijer … with my DOM hat on I think he’s cruel, with my XLinq hat on I think he’s &deity; ). Another excellent article is Comparing LINQ and its Contemporaries by Ted Neward. It doesn’t say much about XML, but explains LINQ in the context of the larger problem we’re trying to solve:
While Project LINQ doesn’t purport to be the “final answer” to all of the world’s object-relational mismatch problems, it does represent a significant shift in direction to solving the problem; instead of taking an approach that centers around code generation, or automated mapping based around metadata and type inference, both of which are exercises in slaving the relational model to an object-oriented one, Project LINQ instead chooses to elevate relations and queries [ed. note: and XML!] as a first-class concept within language semantics and library-based extensions.