The Future of .NET: Visual Basic, the CLR and Managed JScript

Visual Basic v9 appeared on November 19. In the past, the new release of Microsoft’s longest-running language might have caused a stir, but it was part of Microsoft .NET Framework 3.5 and there were plenty of other distractions. The changes to VB itself were pretty minor: The ‘Inline IF’ was finally retired in favour of a true ternary IF. We got support for LINQ, Lambda expressions like those of Python, support for XML Literals, and Type Inference. Hopefully, the real changes to the language will come with Visual Basic v10, which will use the Dynamic Language Runtime, and benefit from experience gained in the development of IronPython. It is set to be released with Silverlight 2 as ‘Dynamic Visual Basic’. In the meantime C# continues to increase its dominance in the .NET world. Poor JScript.NET seems to be in terminal decline despite its high quality, though it is, like VB, promised a DLR makeover for SilverLight, and is likely to be renamed ‘Managed JScript’.

For .NET scripting, things already look a lot livelier, thanks in part to the Dynamic Language Runtime (DLR). IronPython and PowerShell have, in the past year, found good solid niches, thanks to their effortless access to the CLR and, in the case of IronPython, excellent tutorials and good compatibility with existing Python code. We all hoped for more with IronRuby, which now seems to be stuck in a pre-alpha limbo due more to legal than technical problems. This is disappointing for those of us who liked some of the ideas in Ruby on Rails. While we wait for Ruby, there is Boo and Nemerle to play with.

The scripting language PHP has been a problem for Microsoft since the introduction of .NET. There are millions of websites that use PHP, yet PHP in Windows is hamstrung by having to use the COM interface. Typically, 80 per cent of PHP developers use Windows to develop and build applications and then deploy them to Linux in order to get a better performance. However, this may change. PHP scripts now will run on .NET due to Phalanger, a project started at Charles University and supported by Microsoft. Phalanger v1 compiles PHP language into .NET assemblies and can run most PHP code unmodified. Version 2 is in its third Beta and already is capable of running MediaWiki in .NET!

The .NET platform becomes more attractive the more variety it can support. Let’s hope, therefore that Managed JScript gets the attention it deserves, and VB v10 breathes new life into the venerable language. It is sensible that Microsoft should also encourage the third-party development of more languages that are full participants in .NET with access to the CLR. (There is even a Cobol.net and a Fortran.net with Visual Studio integration.) It must continue to back Open Source projects and industry-wide scripting languages that, unlike C#, can provide cross-platform applications. Open Source languages have a wide support amongst developers, and so it seems a mature and sensible approach for Microsoft to ensure that its .NET-based server and PC platforms support them wholeheartedly. It will be refreshing to see a rich variety of languages that are able to participate fully in .NET and make use of the CLR. Next year should be exciting.

As always, we’d love to hear your thoughts on Managed JScript, the Dynamic Language Runtimes and VB, or any of the other issues raised in this editorial. Just add your comments to this blog (you’ll need to be signed in), and all entries will go into a special Christmas prize draw to win one of three excellent prizes: a pair of Sennheiser Noise Cancelling Headphones, a license for SQL Backup Pro, and a deluxe Simple-Talk gift bag!