Tony Davis

Simple-Talk Editor
News, views and good brews

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

Published Tuesday, December 18, 2007 11:33 AM

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!

Comments

 

camainc said:

GO VB.NET - I agree that Microsoft needs to give VB.Net the attention it deserves.

<please - headphones - please - headphones - please> ;-)
December 18, 2007 12:17 PM
 

Ron Dameron said:

Tony,

I second your thoughts regarding .Net scripting.  I'm very happy with the state of affairs in that domain.  I've been incorporating Python and PowerShell into my daily DBA routine with good results.  I'm happy to see the IronPython port maturing because as I work between Python and PowerShell, I keep coming back to my Python code because it's so readable.  However, I do want to become more proficient with .Net, so I will continue my study of PowerShell and dig into IronPython some more.

Regards,

Ron Dameron
December 18, 2007 12:27 PM
 

Bart Read said:

Interesting thoughts. I've heard a lot of hype about IronPython, and I'm sure it's probably just great if you can be fagged with the hassle of getting it to work with VS (not that I'm bitter).

I've just tried this using these instructions:

http://blogs.msdn.com/aaronmar/archive/2006/02/16/a-bit-more-on-ironpython.aspx

They're great as far as they go, however what if you don't want to run it in the Experimental Hive? You're kind of on your own. I've tried regasm-ing the various DLLs, but no dice. No IronPython project. Although I have managed to get an MSI built, so maybe that would do it.

However, I then read further down in the comments and saw that the integration sample works with a pre-beta version of IronPython 1.1, at which point I must admit that I somewhat lost interest.

I can see IronPython being really useful in some projects (I used to use BeanShell occasionally when I worked in the Java world; it was great for some things), but I must admit that I'm a bit disappointed with the lack of up to date VS support. I suppose it's probably asking a bit much, but I like my syntax highlighting too much to give it up. I suspect I'll probably pick it up again when it's a bit more mature.
December 18, 2007 1:12 PM
 

ovalsquare said:

It's quite astounding the different new possibilities that Phalanger brings to the .NET developer's world. Just being able to port in a PHP library instead of needing to build a .NET equivalent is huge just due to the number of high-quality PHP bits out there (and the even larger amount of poor-quality ones too, but that's beside the point).

Quoting from the Phalanger site (http://php-compiler.net/doku.php?id=core%3aphalanger_for_.net_developers), it's now possible to develop the following projects using Phalanger in Visual Studio:

-PHP Web Application - creates new web application written in PHP that is compatible with the standard PHP interpreter (unless you use some Phalanger-specific features).
-Legacy Console/WinForms Application - generates Console or Windows Forms application that is written using the legacy PHP mode in which you use global code, includes and other PHP features.
-Console/WinForms Application - creates Console or Windows Forms application that will be compiled using the pure Phalanger mode - in this mode the PHP compiler behaves more like other .NET languages (for example C#) and doesn’t allow inclusions or global code.
-Class Library - in this project you can create .NET library using the PHP language (in the pure compilation mode) that can be simply used from other .NET languages
-Web Projects (ASP.NET Web Site, ...) - In these three projects you can create standard ASP.NET application that uses aspx and code-behind files, but you use PHP as a language for writing in-line and code-behind code.

Wow. And because it's compiled to the CLR, performance is greatly increased: "The second test compares performance of the PhpBB forum application running on PHP and Phalanger. The results show that Phalanger was able to serve almost two times more pages per second!" Albeit only on IIS - don't know what the results would be for running on LAMP.

And I second the "please - headphones - please!"
December 18, 2007 1:25 PM
 

rjdudley said:

MS has done a great job in the last few months of recognizing and supporting OS projects, but it was a long time in coming.  It is definately in their best interests to support not only .NET based projects, but also additional languages.  I think the PHP support is going to be huge for Visual Studio and .NET adoption by the non-MS crowd.  I'm not sure how many .NET languages I'll ever use, but the concepts which we derive from Java, RoR, Python, etc. can definately be an asset to VB.NEt and C#.

I'm not sure if you were being sarcastic about the additions to VB 9 as being "minor", but these rock my world for the better.

And, don't forget FastCGI support in IIS7 also bringing screaming fast PHP to Windows servers.
December 18, 2007 3:53 PM
 

Phil Factor said:

Bart, For Visual Studio integration of ItonPython, have you tried http://www.microsoft.com/downloads/details.aspx?familyid=55932211-0D7E-4C6E-9B18-8F9D2AC1EE43&mg_id=10048&displaylang=en
Microsoft IronPython for ASP.NET CTP. ?
Headphones for me too as it is Christmas
December 18, 2007 4:08 PM
 

paschott said:

I've been following the IronPython scene for a while as I'm somewhat of a Python fan.  I was taken by the ease of learning and coding projects in Python and was please to see MS sponsoring a .NET project.  I've also attempted to use the IronPython Studio with poor results so far.  It's great seeing the scripting language taking off, but I'll admit to really needing a good IDE to do form development.  I haven't really had the time to dig into the GUI development yet as I'm more of a backend process person, but the promise is there.

I was glad to hear about the new PowerShell options as well, but didn't research them too well.  However with MS providing scripts for their programs now, I can see this area getting ready to take off.

I agree that next year looks very interesting for .NET integration.  (And I'd have to join in the "headphones" crowd if I happened to be chosen.  :-)

-Pete
December 18, 2007 6:18 PM
 

mmorrissey said:

.NET has come along way from it's original intention of being Microsoft's equivalent of Java. In it's original incarnation, it was very much closed but since the appointment of Ray Ozzie, there appears to have been an epiphany at Microsoft (forget about Ballmer, Marketing, and Legal). As an enterprise platform Java still rules the roost where is .NET is stronger on the client (Windows). I assume that Microsoft's embrace of Open Source has to do with Sun's opening up of Java.

There seems to be a plethora of languages being ported to .NET. The Rails and it's DSL variation Ruby on rails (RoR) have spawned .NET equivalents in Monorail and Subsonic. It is interesting that the driving forces behind these projects - Hammet and Rob Conery have joined collaborated with Scot Guthrie to drive the move towards a Model View Controller (MVC) version of ASP.NET.

Scott Hanselman describes C# as a language that "speaks to him". By this I assume he means that it's syntactic design is conducive to the way he develops. Similarly, Boo speaks to Ayende as no doubt VB.NET and PHP speak to thousands of other developers.

The great thing appears to be that, slowly, the CLR is opening up to languages that speak to all developers.
December 18, 2007 8:44 PM
 

Grumpy DBA said:

As a long-time DBA and part-time developer (and fan of VB) I am excited about the advancements made in VB 9.  Some of the new features like anonymous types, XML literals and namespaces, query comprehensions, etc. help make the product stronger.

Happy holidays to all.

- Grumpy
December 19, 2007 8:34 AM
 

acbups said:

Cut my teeth on VBA in Excel 5.0 and have worked my way through VB6 and VB.NET on framework 1.1.  Somewhere along the line found SQL Server as interesting and more lucrative, but I'm glad the tools from the sophomore era of my career continue to advance!

Merry Christmas to all, and to all a good night;
But to me a pair of headphones, or at least a goodie bag!

Carter
December 19, 2007 9:37 AM
 

Dave S said:

I read this article and I liked what I heard about Phalanger.  It sounds like a great project and an excellent addition to the .NET platform.  I'm wondering how introducing PHP into the family of compliled .NET languages will effect the deployment of our PHP applications.  I've noticed a trend that web developers are skeptical of hosting websites on Windows and have preferred LINUX for increased performance and stability.  I wonder if people will change old beliefs to take advantage of the power of the .NET Framework with their PHP applications.

Happy Holidays!
December 19, 2007 10:51 AM
 

enigmae said:

This is an area i think MS is innovating in, having the way .net works, then adding DLR, it is like what .net was meant to be.  Having the Core CLR work across platform, and partnership with Novell is also positive.  

IronRuby is pretty exciting as well, if it does a full implementation, you could port existing apps over.
December 19, 2007 12:02 PM
 

ashudotnet said:

Why is MS ignoring Perl for .NET platform? It has been the most favourite scripting language of Web developer and System Administrators for two decades. Though ActiveState offers Perl for .NET,  making it licensed, defeats the purpose of Perl for which it is being known.
December 20, 2007 12:21 AM
 

Damon said:

At the beginning of the year you are going to see the beginnings of a big push by Microsoft to bring traditional linux based applications running on open-source langauages back to the Microsoft server platform.  They recently started up the ISVNXT (www.isvnxt.com) program to help companies migrate code from one platform to another.  And you know if Microsoft is spinning up a business division to oversee things, then they really mean to do something with it long haul.

Plus they announced the Server-Core installation for Windows Server 2008 (http://www.microsoft.com/windowsserver2008/servercore.mspx), which is attractive if you're looking to run on lower-end hardware.

So expect some exciting stuff to happen in the near future.
December 21, 2007 12:25 AM
 

CLeM said:

This is a completely informative article, thank you. As a long time VBScripter, I'm finally moving over to PowerShell and C# but I'm really looking forward to playing with VB9.
December 22, 2007 12:52 AM
 

xycadium said:

What I don't understand is why I'm seeing C# overpower VB in every corner of the net. All the development/coding websites I'm a member of have newsletters that ship to my email address every day. I'm seeing C# articles nearly ten times more often than I am VB articles? Also, everywhere I look it seems that VB is getting flamed. What is this worsening unpopularity with VB I keep seeing? I have always used VB and, even after studying C# for a time, I still like VB better. Am I one of the last people on earth who do?

In any case, I'm glad that VB is still being developed by MS and hope that it continues to be far into the future. But, with the way things look as far as its popularity goes, I'm starting to wonder if I shouldn't be taking C# more seriously and slowly migrated myself away from VB. I'd hate to have to do that.
December 26, 2007 11:10 AM
 

The Future of .NET: Visual Basic, the CLR and Managed JScript | Ajaxus place on the net said:

January 4, 2008 4:55 AM
You need to sign in to comment on this blog

















<December 2007>
SuMoTuWeThFrSa
2526272829301
2345678
9101112131415
16171819202122
23242526272829
303112345
Execution Plan Basics
 Every day, out in the various discussion boards devoted to Microsoft SQL Server, the same types of... Read more...

Net Performance Cribsheet
 Robyn and Phil tackle the topic of how to make .NET applications perform well. As usual, they try to... Read more...

SQL Code Layout and Beautification
 William Brewer takes a look at the whole topic of SQL Code layout and beautification, an important... Read more...

SSIS Package Componentization
 In this article, David Leibowitz describes methods for scalable SQL Server 2005 Integration Services... Read more...

The Burning Men - The IT drug habit
 It would seem bizzare that IT staff who depend on their quick wits for their living should ever think... Read more...