More on C# 2.0, SpecSharp, and C-Omega from Anders
I really enjoyed Eamon O'Tuathail's presentation last Wednesday on the future of C#, which included glimpses of C-Omega and SpecSharp, two Microsoft Research language projects. C-Omega is a strongly typed, data oriented programming language that bridges the gap between between semi-structured hierarchical data (XML), relational data (SQL), and the .NET Common Type System (CTS). SpecSharp provides method contracts in the form of pre- and postconditions as well as object invariants, and extends the type system to include non-null types and checked exceptions.
The concepts explored in C-Omega and SpecSharp make for tasty brain candy, and they make one wonder what will end up in C# 3.0! For those who want to try it at home, Eamon tells me that the integration of the C-Omega compiler into Visual Studio 2003 was seamless and easy.
Meanwhile, although C-Omega and SpecSharp are experimental languages, C# 2.0 is here today, with generics, iterators and lots of other goodness. Here's a comprehensive look at what's new for C# 2.0 in Visual Studio 2005.
Finally, here's a timely InfoWorld interview with the architect of C#, Anders Hejlsberg, where he discusses .Net and C-Omega.