.NET and Java Grow Organically
When Forrester Research Inc. surveyed platform software decision makers in large North American and European enterprises recently, the IT industry analyst firm found that 59 percent of those surveyed use .NET and 48 percent use Java or Java EE. While those numbers add up to 107 percent, it underscores the fact that a good number of shops develop in both platforms.
As many as one in four shops may be using both .NET and Java as their application deployment platforms, according to Forrester senior analyst Jeffrey Hammond, who bases that on a variety of research.
It's commonly presumed that the increasingly pervasive .NET-Java enterprise IT mix is often the byproduct of acquisitions, but it's actually more often the result of decisions made internally, according to Hammond. "These dual environments have grown up organically," he says.
For example, Hammond says he was just consulting with a shop that's heavily into Java EE technology, but also uses SharePoint and some .NET for Web apps. "This was as much an outgrowth of individual teams making the decisions that made the most sense for the applications they were trying to build as anything," he concludes.
Hammond's colleague, Forrester analyst John Rymer, hastens to point out that "heterogeneous" isn't a synonym for Java-plus-.NET. "Large organizations tend to have more than two environments," he says. "Typically there's some sort of legacy environment, mainframes and now this slew of dynamic scripting languages for Web development -- PHP, Python, Ruby on Rails. So there's quite a bit of heterogeneity in the enterprise now."
Easily one of the most challenging aspects of a heterogeneous environment, whatever platforms/languages are intertwined in it, is finding developers with the right skill sets. "A lot of developers will have more than one language under their belts," says Bola Rotibi, principle analyst at U.K.-based Macehiter Ward-Dutton Ltd.
When Rotibi was a senior developer at Thomson Reuters, he coded in Java on VMX boxes, but also wrote C, C++, Pascal and FORTRAN. "It's not uncommon, but the truth is that software developers tend to be the most productive in one environment," Rotibi says. "And that can be a problem for some organizations."
Putting together and maintaining the right mix of coder skills has become a common enterprise challenge, Hammond says. "In some cases I see these heterogeneous shops pushing their .NET developers toward C# as opposed to VB.NET because it's the most like Java, and the hope is that it will make it easier for them to transfer skills. In practice, though, it's not so much the languages that create a learning curve as the frameworks."
Another issue that Redmonk analyst Michael Cote points out is that the .NET Framework is designed for the Windows environment, while Java is designed to run everywhere. "Java is largely an open source-driven world, and .NET is largely not," he says.
One result of all this heterogeneity is that Microsoft has recently added "open and extensible" to its vocabulary. Earlier this year, Redmond announced plans for a broad set of changes to its technologies and business practices. Its "Interoperability by Design" initiative is aimed at providing customers with "the most value possible," says S. "Soma" Somasegar, VP of Microsoft's Developer Division, "in this heterogeneous world."
In a recent
posting to his popular blog, Somasegar acknowledges the pervasiveness of mixed enterprise environments. "As much as some of us dream of a world where all the computing systems are homogeneous," he writes, "the world has been, is and will be running heterogeneous systems and services."
Somasegar goes on to outline some interoperability initiatives the Microsoft Developer Division plans to support this year. He cites a project that will bring Silverlight -- the cross-platform, cross-browser, cross-device RIA plug-in-to the Linux and Symbian platforms; Microsoft's plan to release the XAML documentation for Windows Presentation Foundation under the Open Specification Promise; and the release of the .NET Framework source code to Visual Studio (VS) customers.
Another result of pervasive heterogeneity is the emergence of a new category of tools designed to bridge platform and language gaps. Tools such as JNBridge are showing up as integrated components in Eclipse and VS dev environments. And solutions such as the CocoBase object-to-relational mapping tool are giving corporate coders a single set of persistence programming commands and a common repository for building and deploying apps on the Java and .NET platforms.
"The most important thing to keep in mind is that very few companies will settle on a single technology platform," Rotibi says. "Therefore, anything that can facilitate interoperability is very valuable. The key value of tools like JNBridge and CocoBase is their ability to broaden the audience for both languages, so that one set of skills can play in another environment."
Meanwhile, some current trends are likely to throw a more intense spotlight on enterprise heterogeneity in the near future, Hammond says. "Once you layer new models -- such as SharePoint and RIA development -- onto existing apps, we're moving toward a place where multilanguage development is going to be increasingly common," Hammond says. "Crossing the language gap will become more of an issue."