Anders on C# 3.0
Anders has a few noteworthy nuggets from an interview a few years ago when COmega and Xen were still called X#.
Well, I wasn't involved in X#, but two of the people who were on the X# team are now members of the C# team. Some of X#'s ideas are being carried forward in C#. These are not going to look the same way as they did in X#. However, I think that the core concepts will carry forward. I can't make any commitments, though.
Actually, the main thrust of X# was trying to deal with relational data. It also tried to deal with XML, but it did not deal with loosely typed XML, which is what most of the XML in the world is.
So, the core concepts of X# will carry forward with numerous changes. I did notice that COmega underwent many changes since X# came to light and those features that have already migrated from COmega to C# appeared to have done so without modification— iterators and nullable syntax.
On XML Islands and Object Initializers
My feeling is that if XML is strongly typed, then it can very conveniently be represented as classes. So what we really need is syntax for creating "object literals" - objects with nested objects - all in a single expression. We are kind of calling these "object initializers."
So, C# 3.0 will probably introduce a notion for convenient creation of nested objects in a single expression: XML without the XML syntax.
On Embedded Languages
I would not expect to see XML literals embedded in the C# programming language, however. There are two ways to think about integrating concepts. On one hand, you can just embed one language in another. Honestly, however, this approach just calls attention immediately to all of the differences between the two languages. Take Embedded SQL, for example. You still have to learn two languages, but you also have to learn how those two languages interact.
On the other hand, if you could just take the conceptual things that are in two languages and merge them into one, you could get a much more productive environment. This is the approach to data I want to take in future versions of C#.
We won’t see the embedded use of SQL and XML syntax in C#, just the underlying concepts expressed naturally in the C# manner.