Java versus .NET for service-oriented architecture (SOA) development is something less than the war of the worlds, but as an industry debate analysts offer contrasting views.
The Java side got something of a boost earlier this month when an Evans Data Corp. survey of 400 developers and IT managers actively working on Web services found an uptick in Java usage and a decrease in Microsoft .NET. Java was up slightly and .NET was down 20 percent from previous Evans surveys. But the net (no pun intended) result was that the two technologies were "virtually tied" in overall usage, with one in five respondents planning to use both, according to Evans.
Support for both is common say two analysts who offered contrasting views.
"I don't think this is as much a religious war as some people make it out to be, at least on the back end, the infrastructure end," said Bradley F. Shimmin, principal analyst of application infrastructure at Current Analysis LLC. "Most SOA server platforms support both Java and .NET environments fairly equally."
Both Java and .NET have strengths and weaknesses in SOA development, said Jason Bloomberg, senior analyst with ZapThink LLC., who suggested that the results of the survey may indicate more of a temporary blip than a trend.
"My sense is that these data indicate a short-term effect that doesn't represent the longer-term trend," Bloomberg said. ".NET's weakness is integration with other platforms, while Java's weakness is in building flexible user interfaces. So the current data implies that many organizations are still focusing on building their services, which often involves dealing with heterogeneity in a legacy environment -- an area where Java is stronger."
As SOA projects move forward this may change as Web services are composed into applications, he said
"As these organizations reach what we call the Services Tipping Point, the focus will be on the consumption and composition of services, and in this area, Java no longer holds a lead," the ZapThink analyst said. "It then becomes a battle among .NET, Adobe and a whole range of UI-centric and business process-centric tooling that becomes less about the platform and more about process and interface. When that happens, we'd expect these survey results to be quite different."
However, Shimmin sees the possibility that the survey may indicate a trend, citing the open source community aspect of Java, which was also noted by John Andrews, CEO of Evans when the survey data was released.
"There are two primary tenets that drive architectural decisions," Shimmin said. First, in his view is that companies select technologies and products that will give them the most bang for their buck, including increasing developer productivity. Second, companies are looking for flexibility in the long term.
"Java-based SOA technologies such as the Spring framework and Enterprise JavaBeans (EJB) certainly speak to that first point by greatly simplifying and shrinking development requirements and constraints," Shimmin said. "To the second point, open source development tools and technologies, most predominantly typified by the Eclipse environment, give customers the assurance that investments, including human knowledge investments, such as developer training, will remain relevant across projects and over time. I think those two facets combined are at the heart of this shift in customer focus."
In Shimmin's view the lack of an open source community may be hampering Microsoft's SOA play, even as it offers developer productivity. He said .NET technologies like Windows Communication Foundation (WCF), and .NET-tuned development tools like Visual Studio employing C# provide the simplified development path to SOA.
"But they lack a thriving open source ecosystem, such as with Eclipse, capable of making that platform something that can aggressively grow beyond the bounds of Microsoft-built technologies," Shimmin said.