If you happen to have seen any of my Intro to LINQ - Reinventing Visual Basic talks, you wouldn't be that surprised by "semi-announcement" of VBx. Paul Vick and Amanda Silver have the details that have been released to the public, and there is also a mention of VBx in this Silverlight poster. Paul Vick has a number of features that they would like to support in post-Orcas, but the one that should sound familiar to one of my rants in my VB LINQ talk is:
Visual Basic should become a hostable language that can be easily used to do application scripting, akin to what you could do with VBScript and VBA. Furthermore, this hostable language engine should be fully portable to all platforms supported by the CLR, including all platforms supported by Silverlight (such as client-side scripting in the browser on a Mac...).
I'm looking for a little bit more than just a replacement for VBA. I'd like to be able to extend the VB compiler with some of my own language constructs. My idea is to allow framework developers (developers who build components/object models/LINQ enabled libraries) the ability to enhance support for their domain specific languages. The example I give in my LINQ session is that of a framework developer that writes an Extension Method called Play that is to be used against the Windows Media Player object model. In a perfect world, if you wanted to query your Windows Media Player library and play the meda that is returned from your query, they code should be as simple as
From My.WindowsMediaLibrary
Where UserRating > 3
Play
But, Play is not a keyword in Visual Basic, so the compiler does not know that it is really just shorthand to call the Play extension method (assuming that the Play extension method is in scope). So, if you went out and created your own Play extension method, a person wishing to use it would have to write this nasty looking code:
MediaCollection.Play( _
MediaCollection.Where(My.WindowsMediaLibrary, _
Function (media As Media) CInt(media.getItemInfo("UserRating")) < 38 )
The idea that I'm trying to promote is to create a language so simple that my mom could write it. IMHO, that is the essence of VBA, a language that even a non-coder can read and write. The language construct of context, filter, action, is one that most people can write, with little effort, and is perfect for the VBA crowd. Plus it is easy to create intellisense for them, if we start with the context.