Last week, Microsoft officially launched its Visual Studio .Net development tool and .Net Framework. The former is a major release, but it isnt a paradigm change. .Net Framework has the potential to be much more significant.
We havent seen anything on the scale of .Net Framework and the new .Net virtual machine it introduces since the Java VM debuted. And the .Net VM will have at least the same impact, given Microsofts historical success at moving those who favor its platform to new technologies.
Whats really different about the .Net VM vis-à-vis the Java VM is that Microsoft and others have created a wide variety of languages that generate code for the .Net VM. Visual Basic .Net, JavaScript, C#, C, C++, FORTRAN, Eiffel, COBOL and Haskell are all available, as is a Java 1.1-compatible language Microsoft produced to help remaining Visual J++ developers move to .Net Framework.
Cross-language inheritance and debugging is technically most impressive and has won Microsoft .Net Framework converts in unexpected places, such as GNOME founder Miguel de Icaza.
However, its still an open question whether this major difference really matters to corporate development shops, where—unlike in the open-source world—languages used can be dictated as a matter of policy.
Like any VM, the .Net VM also has certain intrinsic strengths and weaknesses that favor languages designed for its internal structure. (At www.javalobby.org/clr.html, Osvaldo Pinali Doederlein presents a compelling argument that the .Net VM will be a lot less language-neutral in practice than it is on paper, something Roger Sessions demonstrates is true for Java at www.objectwatch.com/issue_33.htm.)
For a year of my computer science degree program, I programmed in nothing but Ada and came to really appreciate that obscure languages strengths. I havent been able to program in it since then, but despite my personal leanings, I dont think I would, even in a .Net environment. Who would maintain the code once I wasnt working on it? Who could review my work? Who would develop coding policy standards for a language only one developer used?
Just because the .Net VM allows multilanguage development doesnt mean its a good idea.
Do C# and the .Net VM deliver enough differences from Java to make it compelling to you? Write to me at timothy_dyck@ziffdavis.com.