In-Depth
There’s More to Java vs. .NET Than Technology
- By Linda L. Briggs
- May 1, 2005
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