.NET vs. Java

Three years ago, TD Bank Financial Group decided to go with Java as its enterprise development platform, in large part because it wanted its application code to be able to run on different types of hardware.

But Claudia Radasanu, senior vice-president of development services, said the Toronto-based financial institution must now investigate the rival .NET environment that Microsoft Corp. launched in February even though her firm made a huge investment in IBM Corp.’s Java-centric WebSphere application server and has no immediate plans to make costly changes.

“What if the total cost of ownership is lower on .NET? You always have to ask the ‘what if,'” Radasanu said.

Corporations will find it tough to settle on a single development architecture such as .NET or Java 2 Enterprise Edition (J2EE), “unless they are the size of a dentist’s office,” said Yefim Natis, an analyst at Gartner Inc. in Stamford, Conn.

Mixed environments of mainframes, Unix, Windows and proprietary systems will drive most enterprises to use both J2EE and .NET, particularly if they’ve been involved in mergers and acquisitions, some analysts say.

“The question is not whether J2EE or .NET is the better architecture,” Natis said. “The question is, how to integrate them, how to make them work together, what are their strengths and weaknesses?”

Some IT shops may use .NET for some types of new projects and Java for others. Others may explore using .NET for the presentation layer, to take advantage of Microsoft’s client-building tools, or to connect to Java-based business logic via XML-based Web services or a Java/Microsoft bridge.

Whatever the choice, Randy Heffner, an analyst at Giga Information Group Inc. in Cambridge, Mass., recommends that corporate users decide on a primary platform and use “a containment strategy” for the other platform. He said that will allow an IT department to get greater synergy of development, operations and application management skills.

The following are some points that IT managers should consider when weighing the choice of .NET vs. Java:

1. Weigh the importance of application portability to your company. Java may not have entirely lived up to its “write once, run anywhere” promise. But Heffner said J2EE portability tends to be good for core components such as business rules, Java Server Pages and Enterprise JavaBeans.

That, in turn, gives corporate users the negotiating power to present “a credible threat” that they’ll move an application to another vendor’s platform, something they can’t do with Microsoft, because the .NET framework runs only on Windows, he said.

Microsoft submitted a portion of its .NET framework to a standards body, but Heffner estimates it amounts to only 10 per cent, or “just enough for an application on some other platform to connect to a Microsoft server environment.” Although there are open-source efforts to get .NET to run on other platforms, none are credible yet, he said.

Portability has never been a concern for Microsoft, which advocates writing applications optimized to run on Windows for higher performance. Claiming that interoperability is more important than portability, Microsoft now tells users that .NET-based applications can share information with applications running on other platforms through Web services, in which XML-based messages are sent via the simple object access protocol.

2. Take stock of your existing developer skills and infrastructure. Training developers and ripping out existing infrastructure can be costly, so an IT shop may favour sticking with the development environment that best fits its current situation.

Because of .NET’s Windows-only limitation, Thomas Murphy, an analyst at Stamford, Conn.-based Meta Group Inc., said that for Unix shops, “the decision’s made for you.”

“If you’re a mixed shop, you have to look at how you are mixed,” he adds.

Murphy said IT managers should ask questions such as: Is Unix just the database platform, or does it have a role beyond that? How are you going to attach to legacy resources? Or are you going to try to develop new business logic on the legacy platform?

Microsoft’s .NET environment allows developers to program in more than 20 languages, including COBOL, which could appeal to programmers who have worked in legacy environments. But since their .NET applications would need to run on Microsoft’s Common Language Runtime, they must weigh the infrastructure consequences.

Developers skilled in using Microsoft’s Visual Basic tools for building less complex applications will find a similar learning curve whether they shift to Visual Studio.NET or J2EE, if they’re taking on full distributed computing and object-oriented programming, warns Frank Gillett, an analyst at Forrester Research Inc. in Cambridge, Mass.

Whatever switch is made, it costs money. Gartner analyst Joseph Feiman said a COBOL-to-Java move, for instance, can cost an average of US$57,000 per developer, once training costs, time, initial lost productivity and risk are factored into the equation. But he notes the costs can vary significantly, depending on programmers’ skills and the type of change they’re making.

3. Assess the complexity of the applications you will be building. Microsoft tools have an edge over Java for building applications that require rich graphical user interfaces and that deliver content to Web browsers, analysts say. Although Java tools are improving, Microsoft’s tools are generally considered easier to use.

Heffner said there are “more knobs to turn” in a J2EE environment. But for complex, high-volume applications with lots of business rules, “that’s just the sort of knob-turning you need available,” he said. Those types of applications need to be more highly architected, and J2EE has more features to offer for session management, fail-over and load balancing than the Microsoft architecture does, Heffner said.

For now, analysts say, J2EE may continue to be the preferred choice for highly scalable, mission-critical applications, and .NET may make more sense for applications that need a low-cost, quick turnaround. Natis said Gartner is advising clients to wait for .NET’s next release before they consider using it to build an application that will go beyond 1,000 concurrent users.

4. Investigate outside vendor support. Murphy said that users who buy major packaged applications will probably be driven to gain some Java skills, since enterprise software vendors such as SAP AG and Oracle Corp. lean toward Java.