In-Depth

There’s More to Java vs. .NET Than Technology

Talking Points
PROS AND CONS

  • Companies, focused on a more robust and secure solution that will manage more data, tend to choose J2EE.
  • Companies that need a solution faster, and with less business complexity, tend to choose .NET.
  • .NET has an edge in client-side development because more tools are available.
  • Sometimes the challenge can be finding developers with skills in both platforms or retraining Java developers to use .NET or vice versa.

Endless debates swirl around the technical merits of Microsoft’s .NET platform vs. Sun Microsystems’ J2EE. Both companies tout their products’ scalability, security, interoperability, speed, support for other products and more. But what about the business case for either platform? What sorts of companies are using which platform for what, and what reasons are behind the platform choices that firms make? Is the balance of power between these two powerful platforms shifting?

Short answers are dangerous when it comes to discussing J2EE and .NET, but in terms of which platform lends itself better to which sort of project, research tends to indicate this: Companies that are focused on a more robust and secure solution that will manage more data tend to choose J2EE. Companies that need a solution faster, and with less business complexity, tend to choose .NET.

A Forrester Research study from September 2004 in which 322 software decision-makers were questioned reports that J2EE is stronger than .NET in industries such as utilities, telecom, finance and insurance. .NET, on the other hand, is stronger in manufacturing, retail and wholesale, media, business services and the public sector. The report’s author, Randy Heffner, writes that “Firms that spend a higher percentage of revenue on IT are more likely to do the majority of development on J2EE. And .NET is more often the focus at companies facing weak business climates.” The report also reported that more than half of the surveyed firms were using both J2EE and .NET.

According to Gartner analyst Mark Driver, that’s the reality—most large organizations are using both platforms. In fact, he rarely encounters a company running only one. And although he sees plenty of momentum right now around .NET, Driver says that’s simply because it’s a newer platform. “There’s a lot of hype around it,” he says, while Java isn’t as exciting because it’s no longer new. The Java programming language has been around for about 10 years; Sun first introduced J2EE in mid-1999 as a platform-independent, Java-centric environment. Microsoft, in turn, announced .NET in 2000 as a major new platform and infrastructure strategy for the company.

For the most part, Driver says, Gartner tends to see J2EE and Java used for larger projects, with companies who have “a heavy need for multiple tools from multiple vendors, and the ability to deploy on non-Windows platforms.”

Also, vendor commitments heavily influence the choice of platforms, Driver points out. Large companies tend to run mainframes somewhere in the mix, which means they work with companies such as IBM, BEA, Sybase, SAP and Oracle. “Companies are going to use what those vendors are using, which is Java,” Driver says.

Eric Newcomer, CIO of IONA Technologies, agrees. Particularly in large companies, platform decisions in the past tended to be made on a departmental level. In fact, IT environments have grown up that way, Newcomer says, leading to today’s often-fragmented enterprises. IONA approaches that fragmentation by making products that allow business applications and middleware from various vendors work together. Customers tend to be fairly large, including financial, telecommunications and government systems.

As company size increases, so does the likelihood of seeing multiple platforms in use, agrees Joe Fernandez, director of product marketing for Web test products at Empirix. Fernandez’ company sells quality assurance and testing software for both J2EE and .NET applications—many customers are Fortune-100-sized companies. “As you get into larger businesses,” says Fernandez, “there’s an increasing likelihood [of seeing] both Microsoft and Java technologies within one organization.”

Along with fragmented departmental decisions, a large number of applications at large companies have come through acquisition, Fernandez points out: “The IT infrastructure comes together in lots of different ways.” For the most part, though, he believes large companies are still running Java, although he sees Microsoft moving its way up the food chain.

Selecting the right platform
Regardless of what others are running, when it’s time to make a platform decision for a new project, you’re still left with a tough decision. Simple categorizations like Java-big and .NET-small might apply, but only to a company starting from scratch without any existing software or history, points out Brian Lyons, CIO of Number Six Software.

Number Six specializes in mature software development techniques and large projects and companies, including various levels of government. (Lyons has put together a presentation brimming with resources on both sides of the debate, which are available for download at www.numbersix.com/csdi/documents/ThePlatformWarsx.pdf.)

Starting with a clean slate, a company really could choose a platform based simply on “the business people knowing what their significant business drivers are, and [the technical people] knowing what the tech drivers [are],” Lyons says. More realistically, of course, companies must weigh a number of factors in choosing a new environment, including current platforms and tools, overall cost, skill sets of current staff, future estimates of growth, technical staff choices and management preferences. Since his company typically enters the picture when there’s already some infrastructure in place, Lyons says, “We look at business and technical drivers, as-is components, and help make a decision [on a platform].”

In general, there’s some agreement on the broad project categories that each platform is best for. IONA looks at it as an ease-of-use vs. complexity tradeoff, Newcomer says. “I think that the .NET framework and Microsoft, in general, have grown their business around the ease-of-use idea... They make their tools easy to work with. For simple, GUI-intensive [projects], the tools from Microsoft really have the edge.” On the other hand, he suggests, “for more complex coding, where it’s not as easy to access the features of the language, you may prefer to use Java... Perhaps you want to tune it for performance and for high scalability.”

Many factors to consider
Gartner’s Driver points out that many considerations should play into the platform decision. His advice includes carefully considering the product development lifecycle. If you’re looking at a three to five-year lifecycle, he says, where time to market is dominant, .NET might be a better choice, other things being equal. That’s because in shorter development cycles in which upfront costs are dominant, Microsoft can be a plus. “For ease of use and produce-ability, Visual Studio is a very, very nice development environment.” Although there are no absolutes, he emphasizes, Visual Studio can mean that .NET is a faster and cheaper choice for shorter development cycles.

On the other side are the larger costs and longer development time of a five- to 10-year lifecycle, or projects with more than 500 concurrent users and heavier legacy integration features. In those cases, Driver says, consider the additional flexibility of being able to change course over time with less impact. That points to a Java platform, because “I can switch middleware and I can switch tools, not at zero cost, but at less cost.” All of these options, he points out, presume a heavy consideration of return on investment and total cost of ownership.

On the other hand, if you’re already mostly a Microsoft shop, much of this simply may not matter. “If you’re Microsoft-centric,” Driver says, “there’s not a whole lot of reasons to look behind .NET.”

Gauging developer availability
Along with many other considerations, one element to weigh in choosing a project platform is what developer resources are available now, at what cost, and how that might change in the future.

In an interesting geographical split (see related story, “Head to the big city for Java jobs”), Number Six Software’s Lyons sees more J2EE and Java in use on the East Coast and more .NET in the Midwest. That’s partly because the federal government is still heavily vested in Java, which sways the results. It also tells you that if your company is in the Midwest, .NET developers may be slightly harder to find, since there are more work opportunities there for them.

“There’s more Java developers out there [right now] than .NET developers,” Gartner’s Driver confirms, but “in the end, there will be more .NET developers, just because of the sheer number of projects.”

Because Microsoft continues to be the dominant vendor at the lower end, Driver says, that favors a larger number of .NET developers eventually, since there will always be many more small projects than large ones. The low end “is still Microsoft’s business to lose,” Driver says. “It’s like a pyramid—non-mission critical stuff underneath and enterprise on top… After all, how many HR systems does a company have or need?”

“From what I’ve seen,” Empirix’ Fernandez says, “it’s still easier to find Microsoft developers. Microsoft has a large developer community and is doing a good job of training people on the latest [technologies].” Another observation, Fernandez says, is that when J2EE first came on the scene several years ago, “we had a harder time finding Java developers… Java has now been around for [a while]. So that developer community has grown and is a little more accessible.”

Who you can find also depends, of course, on what skill level you’re looking for. At Number Six, Lyons says, the company needs high-end, sophisticated developers for both platforms. “At that level, I can’t say that there’s any difference,” Lyons says, “either in salary or in ease of finding [candidates].” If you’re just beginning a .NET project, Lyons says, “you might find people on the Visual Basic side, but [they’re] not really enterprise designers.”

At IONA, Newcomer echoes that sentiment. “We need high-level developers who are multi-lingual—C++ and Java, for example.” In general, he says he’s found that Java developers tend to pick up C# programming, which is specific to the .NET environment, very easily. In general, Newcomer says, “Microsoft does a tremendous job of training people,” ensuring that there’s a steady pool of talent available.

Sometimes, the challenge can be finding developers with skills in both platforms, or retraining Java developers to use .NET or vice versa. In what he says is a fairly common type of IONA customer, Newcomer describes a recent scenario at a large bank. “They had all this .NET, lots of [.NET] developers, lots of Java app servers, and now they had to put them all together. But they had few people with skills across both platforms.”

The world is equally divided
Is either platform growing more quickly than the other? Although both Java boosters and Microsoft fans claim growth and dominance, most observers don’t see it. “At IONA, we see the world still roughly divided between Java and .NET developers,” according to Newcomer. “It could be tipped slightly toward one or the other, but our role is to try to integrate these disparate systems.”

One factor to consider on the Java and J2EE side is Linux. “We’re certainly seeing more Linux in the enterprise as a low-cost alternative,” Empirix’ Fernandez says. “It can offer better cost and scalability advantages.” Linux may indeed have an effect on J2EE, Gartner’s Driver says. “As [Microsoft] moves the battlefield higher and higher into the enterprise, they have a guerilla war flanking them—Linux. [And] Linux and Java have a very tight affinity.”

The growth and popularity of Eclipse, the open-source tools framework initiative, might also help by making Java more accessible, Fernandez says. “That’s always been the challenge for Java—the complexity. Eclipse is a platform the Java community rallies around.”

That you can run Java on many platforms is still a big differentiator, Fernandez says. “Microsoft has talked about that, but it’s not a reality yet in any meaningful way.” He mentioned the Mono project as an example, but says that “in terms of released software, we haven’t really seen anything yet.” The Mono project, begun in 2001, is an open-source development platform based on the .NET framework that can run existing programs targeting either the .NET or Java frameworks.

Although it’s technically true that J2EE supports multiple operating systems and .NET supports just one, Number Six’s Lyons finds that an oversimplification with little grounding in fact. “I think it’s an emotional issue,” he says, because “people like to feel [that they’re] not locked in.” But the flexibility espoused by Java proponents is largely an illusion, he says, since changing operating systems isn’t trivial on any platform.

“If you’re running [IBM] WebSphere or WebLogic,” Lyons says, “it’s not a no-brainer to change. People feel they’re not locked in, but really they are. You’re kidding yourself if you think you can just flip a switch and change.” Available development tools can also be a deciding factor, Driver says, “The development tools available for Java, “do a good job at the more component-based, service-oriented projects, [but] don’t compare to Visual Studio.”

The widest gap with tools, he says, is in client-side development. “That’s much easier in .NET than Java.” On the other hand, “Microsoft tools aren’t so good at formal engineering practices.”

As Microsoft continues to get more serious about enterprise frameworks, larger teams and tools for distributed development, it will start to release better products for those purposes, Driver says, beginning with Visual Studio 2005. Microsoft’s next-generation software development platform has been delayed repeatedly but is expected later this year.

Competition is good
With the market fairly evenly split between the two platforms, and with many companies straddling the divide by running both, a business case can clearly be made for either product in almost any situation.

There’s one fact that nearly everyone agrees on: both .NET and J2EE will continue to thrive in the market, since each has individual technical strengths, the backing of major software companies and huge followings.

The heated competition will continue to push both Sun and Microsoft to augment, support and bolster their competing products. Whichever platform you’re running or contemplating, that kind of competition is good news.

ILLUSTRATION BY TOM NICK COCOTOS

Sidebar: Head to the big city for Java jobs

More on ADTmag.com:
Free Java to .NET Migration Workshop
Global IPTV .NET software provider opens channel to Java
By Rich Seeley
Architect finds a way to develop in .NET and port to J2EE
By Rich Seeley