TechEd part 2: Comega and VB
Finished another day here at TechEd. Saw a presentation on Visual Studio Team System. Wow. No wonder the blogosphere is ablaze with Team System discussions. Where did they find the time to build all that stuff?
I was fortunate enough to be invited by INETA Japan to participate in a panel discussion on Cω, a "strongly typed, data oriented programming language that bridges the gap between semi-structured hierarchical data (XML), relational data (SQL), and the .NET Common Type System (CTS)." I began thinking what VB could do with Cω-like features. Some of the features such as streams, anonymous structures, and choice types seem an ill-fit for VB, but the ideas of concurrency and integrated SQL expressions are particularly appealing. Imagine an application whose memory store is implemented as a database. The benefits are obvious--sophisticated search, sort, scalability, and persistence are automatically available. Combine the database server with a garbage collector and you have a generalized memory manager, albeit one suited for web applications spread across geographically distant servers. But programming such a model today is difficult because the interface between source code and database in most languages is too complicated, not only for fetching and storing data but also for doing it in an asynchronous manner. A language that simplifies this code/database interface would be quite compelling.
The Cω feature which bothers me most is support for XML syntax. XML may be the best thing since sliced bread, but this seems done more for the sake of fashion than functionality. I see the benefits, but XML... inlined in my source code? Bleh. It's not aesthetically pleasing. I dislike XML comments for the same reason (but unfortunately they made it into VB). Perhaps I eat my own words here; SQL syntax seems similarly bolted on. I agree, but it's the idea of closing the code/database gap which is compelling, not which specific syntax is used.
Overall, though, Cω looks really neat. In particular, the SQL integration elicited oohs and ahhs from the normally reserved audience. Thanks go to INETA Japan for inviting me to the discussion.