|
J2EE vs .NET Q+A With Canopus Research
President William F. Zachmann [Click Here to Return to Canopus Research Inc. Home Page]
|
||
|
Q: Assessing Java 2 Enterprise Edition (J2EE) versus Microsoft .NET is today a critical -- and controversial -- choice for new enterprise software development and deployment. Does either have a compelling advantage over the other as an enterprise applications software platform? Is one the obvious choice over the other? A: Yes. The best option is Windows .NET. True, both are viable options. Both offer reliable, scalable, high-availability, application server platforms and practical frameworks for object-oriented component-based application development and deployment. The Microsoft .NET platform, however, has significant advantages sufficient to make it the obvious default platform choice for the enterprise. Q: But isn't J2EE a standard while .NET is proprietary to Microsoft? Doesn't that make the Java platform a better choice? A: No. Notwithstanding persistent attempts by pro-Java (or anti-Microsoft) folks at "proof by repeated assertion" claiming that Java and J2EE is "a standard" while Microsoft's .NET is "proprietary", the truth is that neither is fundamentally any more (or less) standard or proprietary than the other. If anything, Microsoft has a better claim to providing 'real' standards than Sun does. The C# language and the .NET Common Language Infrastructure specification (CLI) are in the process of becoming de jure standards via Technical Committee 39 (TC 39 -- Programming and Scripting Languages) of ECMA. Sun, on the other hand, aborted the ECMA standards process with Java in favor of the Java Community Process (JCP) organized (and dominated) by Sun. And that ™ tag on Java™ or J2EE ™ is exactly that same ™ that you will find on Windows™ or .NET™. Q: What are the advantages of .NET over Java that make it the obvious default choice for enterprise software development and deployment? A: Microsoft .NET offers a better integrated, lower cost, easier to use, and more manageable environment for software development than the Java J2EE platform. It also offers a much better way to take advantage of low-cost Intel-based servers for enterprise-scale applications. Relative to .NET, enterprise software development on the J2EE platform is like trying to count a herd of sheep by counting the legs and dividing by four. Sure, it can be done, but it takes longer, costs more, and is harder to change in response to future business challenges and opportunities. A few years ago J2EE was a more competitive option because the Windows/Intel server platform was still not quite ready for very large-scale enterprise application deployment. That is no longer so. With Windows Server 2003, increasingly capable Intel-based server hardware, and the rapidly maturing Window/Intel server applications from Microsoft and other software vendors, Microsoft .NET is now able to meet even very large-scale enterprise applications requirements.
|
There is no longer any serious question about it: Microsoft .NET is a much better choice than J2EE as the preferred development and deployment platform for the enterprise. Q: Are there any circumstances that favor J2EE over .NET? A: The obvious one is when applications, for one reason or another, absolutely must run on something other than Windows on Intel systems. If an application really must run on, say, IBM mainframes or Sun Solaris boxes, then Java/J2EE may be the only option (albeit a costly one). The second is simply prior commitment to the Java platform and associated ready availability of Java/J2EE development, deployment and administration skills in-house. In effect, the more an organization or some organizational sub-unit is already using Java/J2EE, the more circumstances are likely to favor continuing to do so. But despite promises of easy, rapid development, the J2EE platform is a daunting one with a steep and difficult learning curve. So J2EE is a plausible option only for organizations that have already climbed that slope and paid the price of learning the platform -- not for those that have not already done so. Third, J2EE is a somewhat more appealing choice for organizations where there is a large proportion of existing UNIX-based IT infrastructure (e.g. Solaris, HP/UX, AIX and so forth) already in place. As a rough rule of thumb, the greater the proportion of UNIX-based servers already in place, the greater the relative advantage for J2EE versus .NET. Q: What circumstances favor .NET over J2EE? A: The most important advantage for .NET over J2EE is in circumstances where minimization of total cost is a high priority. Notwithstanding "figures don't lie but . . ." claims to the contrary, Windows on Intel servers delivers much more bang for the buck than the mainframe or UNIX-based platforms typically used for J2EE deployment. If total cost of ownership (TCO) really matters then .NET is the obvious choice over J2EE. A second important advantage for .NET over J2EE is anywhere Windows-based server infrastructure and related development and deployment skills are already in place. An organization with skilled BASIC, C, C++, and COBOL programmers already in place, that is already familiar with the Windows development environment, will get much further much faster and at much lower cost using .NET than by trying to turn everyone into Java programmers. Third, projects aiming to take advantage of the opportunities created by the new Web services standards favor .NET over J2EE as well. Although the Java world is working hard to catch up, crucial Web services standards like XML, SOAP, and WSDL are built into .NET by design while they are still only, in effect, 'bolted on' to J2EE. Development and deployment of Web services applications is significantly easier, faster, and less costly on the .NET platform than it is on J2EE. Overall, .NET is the better choice. |
|