Officials from Microsoft Corp. and Sun Microsystems Inc. debated the merits of their companies' respective Web services development platforms Wednesday, with a Microsoft executive taking a more combative stance than his Sun counterpart in pitting .Net against Java.
Speaking at the OMG Integrate.2000 conference, Microsoft's Dave Wright, .Net Solutions architect in San Francisco and a former Java programmer, said Java is a "wonderful language" but has limitations in virtual machine and language constructs.
Microsoft's Web services plan relies on the company's Common Language Runtime (CLR) to serve as a virtual machine, he said. Java, Wright explained, is not good for purposes such as development of real-time applications, graphics programs, and Perl development.
Microsoft's .Net, he said, presents a distributed architecture as well as a language-independent component model running the CLR virtual machine. .Net is Microsoft's way of re-engineering its entire product line around a new set of framework class libraries and is based on XML Web Services for interoperability, said Wright.
But he conceded that Microsoft is not pursuing Sun's goal with Java in being platform-independent and is instead relying on powerful class libraries for programming.
Wright acknowledged, "If your target isn't Windows, you can't really implement on .Net today. That may change in the future."
In an interview following the session, Wright said he was referring to a version of CLR that runs on the FreeBSD operating system for use by educators. He touted .Net's support of multiple programming languages.
"You can program in RPG, Cobol, Python. There are many, many different languages that are already supported," he said. "I can inherit a Cobol object, if you can call it that, from a C++ object," Wright added.
He also criticized Java Message Service. "You would think SOAP messages would be folded under JMS, but it's not," Wright said, adding, ".Net has an advantage over Java today in terms of cost and performance." .Net supports 26 different languages, he said.
Sun's Glen Martin, J2EE strategist for Java and Web Services Platform Marketing in Santa Clara, Calif. , followed Wright's presentation with a more subdued explanation of Sun's J2EE Web services efforts.
Web services, he said, presents an example of a services-oriented architecture, in which integration of legacy applications is critical.
The Java platform requires compatability with the Java specification, he explained. "The license for J2EE says, if you're not compatible with the standard, you can't ship," Martin said, adding that Microsoft's C++ requires programming to manage transactions and the OS.
"In short, you're doing a lot of programming that's related to the underlying management of resources, and that's the most complex programming there is in many ways," Martin said.
Martin also detailed Java's support of Web services standards such as SOAP and its status as the leading platform for deploying application servers. Microsoft's VM approach can be limiting, he said.
"The problem with multiple languages on top of a virtual machine kind of architecture is if the virtual machine doesn't support the feature the language wants to provide, the language doesn't have a real easy way to provide [the feature]," Martin said.
Interviewed after the session, Martin said that differences between J2EE and .Net are fewer than similarities and that Microsoft in fact appears to be imitating Sun with the virtual machine approach, which Sun has used with Java. "They've taken a lot of what J2EE and Java have been good at," Martin explained.
Microsoft sees "a lot of Java shops moving to .Net because of the productivity. Java's write-once, test-everywhere approach does not work, according to Wright. "It's too expensive to move between vendors and doesn't reflect real-world need to interoperate between languages, compilers, and legacy systems," Wright said after the session.
But a member of the audience, who works as a standards official for the U.S. Air Force and who requested anonymity, gave the nod to Java in terms of multi-platform support. "The main thing about Java is it's hardware-independent," she said. .Net is dependent on Microsoft, she added.
Another audience member raised concerns about security in the .Net architecture. "Somebody has to enforce the security policy. I've never seen that in this architecture at all," the audience member said.
Wright responded that the virtual machine layer in .Net "includes a tremendous number of advances in terms of security," such as security in the code module level.