Microsoft last weeka test version of Visual J#.Net, a tool that allows developers to use Java to build software that works only on Microsoft's .Net technology. However--and this is what really sticks in Sun's craw--the tool doesn't allow developers to build Java software that runs anywhere else, such as on Sun, Oracle or BEA Systems' technology.
In abrought against Microsoft, Sun, which created Java, raises specific competitive concerns about Visual J#.Net. In the lawsuit, which was filed earlier this month, Sun argues that Visual J#.Net corrupts Java, undermining its ability to run software on different computers, regardless of operating system.
Montgomery, a 34-year-old Harvard graduate with a degree in Slavic languages and literature, once covered Microsoft as a journalist for magazines such as Byte and PC Computing. He also dabbled in software programming before joining Microsoft.
In his current role as group product manager of Microsoft's .Net Developer Platform, he manages J#.Net and oversees all the application programming interfaces (APIs), or sets of instructions, for the Windows operating system.
The final release of J#.Net won't be available until midyear, and that means Montgomery will be stepping up his profile as a go-between for customers and Microsoft's product development team. In fact, Montgomery is Microsoft's representative at the JavaOne conference. He says programmers can use the test version of J#.Net with the newly released Visual Studio.Net software development tools, which include the Visual Basic, C and C++ languages.
Montgomery talked to CNET News.com about Microsoft's plans for J#.Net and about the company's storied rivalry with Sun and Java.
Q: Did Microsoft release the Visual J#.Net beta with an eye on JavaOne--that is, as part of its bid to promote this as the way to provide Java developers with a smooth transition to .Net?
"One of the things that history has taught us in our industry is that there is no one true programming language. Different languages suit different people for different tasks."
Without giving a long company commercial, can you briefly describe why you believe Java software developers should throw their lots in with .Net?
You don't have to write a lot of code. It's reliable, high-performance and secure. It's the best platform today to solve the problems businesses are facing with application integration. The XML Web services capabilities we built into .Net solve one of the major challenges that developers face, and that applies across all programming languages: Visual Basic, C#, and J# in particular as the Java language environment.
When Sun and Microsoft settled their first lawsuit over Java last year, Microsoft had the decision to either continue offering a Java tool or to ignore it. You chose to build a new Java tool to replace the older Visual J++ tool. What was the reasoning behind that?
The decision stems from Microsoft's goal to maintain a multi-language platform. One of the things that history has taught us in our industry is that there is no one true programming language. Different languages suit different people for different tasks.
Philosophically, Java (companies) took the approach of creating a unified environment with a single programming language that could target multiple operating systems. Our approach was (to use) any programming language to build great software on Windows. Adding Java was natural.
Microsoft's been saying that Visual J#.Net offers support for writing programs in Java. But according to Sun's lawsuit, Microsoft has changed the syntax of the Java language so that source code written using Visual J#.Net isn't going to be compatible with source code written following the public specifications for the Java language. So isn't there a disconnect between what Microsoft is saying and what Microsoft is doing?
To the best of my knowledge, we did not change the language syntax.
What's the big benefit to developers--and down the road, to users--if Visual J#.Net changes Java from a language that can be used to write vendor-independent code running on a variety of platforms to Microsoft-dependent code that runs only on a Microsoft platform?
"To be clear, J#.Net is not intended to write software to target anything but .Net. It's designed to run on Windows, and we've been clear about that."
It's an engineering trade-off. (With Java), if I choose to write applications to target more than one operating system, I make compromises in software to achieve cross-platform capability. There's performance or access to underlying operating system features that I can't get to because (they) don't exist on all operating systems. We built an environment that takes advantage of the Windows operating system. It's great software for a single platform, rather than mediocre software for multiple platforms. J#.Net is a way to take the Java language and write great applications on our platform.
Elevate to 30,000 feet, beyond the day-to-day arguments about one set of code vs. another. What's at stake here? What's the larger context for this competition between Visual J#.Net and Java?
Developers, CIOs and CEOs are making platform decisions, like Microsoft's .Net, IBM WebSphere and BEA WebLogic. Each platform they might choose has strengths and weaknesses. We're offering a compelling platform that's a great place to build Windows applications.
And the negatives with .Net?
We don't get to ride the Java hype, and a lot of vendors are doing that.
How will you determine whether Microsoft's Java-like language, C#, is a success?
It already is a success. It has only been available for a month, and already, there's a couple of dozen books about C#. Already, millions of lines of code have been written in C#. We already have major customers. You will see very large announcements in the not-too-distant future. At the Visual Studio.Net launch, Merrill Lynch and Loreal chose to take our language and platform and use it. We are pretty darn successful.