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.
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 email@example.com.