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, says 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'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 says.
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," says 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 says. "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 says 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:
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 says 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 leverage 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 says.
Microsoft submitted a portion of its .Net framework to a standards body, but Heffner estimates it amounts to only 10%, 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 adds.
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.Bob Dutile, a senior vice president of enterprise architecture at Cleveland-based KeyCorp, says he's interested in Microsoft's approach, but he wants the option of selecting a best-of-breed server. "One of the reasons we are a Java shop is because Microsoft was too proprietary," he says. "We like to have the opportunity not to be locked into one vendor all the time."
Take stock of your existing developer skills and infrastructure.Training developers and ripping out existing infrastructure can be costly, so an IT shop may favor sticking with the development environment that best fits its current situation.
Pacific Life Insurance Co., for instance, didn't hesitate to adopt .Net technology. Brad Sewell, an assistant vice president in IT at Newport Beach, Calif.-based Pacific Life, says his life insurance division didn't consider Java because the division is "pretty heavily invested in Microsoft infrastructure."
The Home Depot Inc. in Atlanta, in contrast, is primarily a Unix shop and made a significant commitment to Java early on. But the decision wasn't based solely on its Unix focus. "Java ran equally well on all of our hardware," says senior IT manager Curtis Chambers, noting that his company also uses Windows, MVS and z/OS. "The end goal was a common development platform for all of our developers."
Because of .Net's Windows-only limitation, Thomas Murphy, an analyst at Stamford, Conn.-based Meta Group Inc., says 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 says 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 says a Cobol-to-Java move, for instance, can cost an average of $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.
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 says 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 says. 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 says.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 says 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.
Investigate outside vendor support. Murphy says 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.
Another consideration may be the tendencies of the independent software vendors that develop applications for a particular vertical industry. Heffner says one insurance company chose J2EE because five of its six peers did.Analysts also note that tools and components may be more readily available for Java now, since .Net is so new. However, Microsoft, has already put out a thick binder entitled ".Net in the Real World," featuring early adopters.
Compute costs with care. On a straight cost basis, Microsoft presents an appealing option. Its Windows server operating system ships with a built-in application server, while pricing for the most popular Java-based application servers starts at $8,000 to $10,000 per CPU.
There are other options. Hewlett-Packard Co., for instance, ships a free application server with its operating system, and JBoss is an open-source alternative, analysts say. But the top two choices, by far, have been San Jose-based BEA Systems Inc.'s WebLogic or IBM's WebSphere.Rather than simply looking at the costs of application servers, Heffner advises clients to use a total economic impact model that takes into account costs, benefits and flexibility for future options. "In this case, you're making a strategic platform decision that will affect not only this one application; it will affect the stream of application delivery that you're going to pursue as a company over the coming years," he says.
New Tools, New Choices
Stories in this report:
- Users Face Big Decisions Over .Net, Java and Web Services
- The Story So Far: Application Development
- .Net vs. Java: Five Factors to Consider
- Overview: Building Web Services
- University's Data Traffic Unsnarled
- Skimping on Java Development May Do More Harm Than Good
- The Security Challenges of Web Services
- Taking Enterprise Application Integration to the Extremes
- The Payoff From Software Quality
- How to Thrive in the Hot Java Market
- Development on the QT
- The Future of Software Development
- Case Studies in Application Development
- The Future of Application Integration
- Reporter's Notebook: Application Develoment and Web Services