Quantifying Complexity: .NET vs. J2EE
Wednesday, December 20, 2006
Lots of people believe that developing applications on the .NET Framework is less complex than developing equivalent functionality on J2EE. Beliefs without evidence are just bias, however, and accurately measuring the relative complexity of these two platforms is hard. Finding objective, quantitative evidence for or against this belief isn't easy.
That's why I was so interested in a conversation I had recently with a senior architect at one of the global software development firms. He told me that to bid on projects, his firm first does a detailed requirements analysis of the problem, determining how many function points the solution will require. They then quote a price based on this commonly accepted measure of complexity.
Here's the interesting part: His firm, like all the big software houses, is happy to build the solution using either .NET or J2EE--it's up to the customer. But if the customer chooses .NET, the price is 28% less than if the customer chooses to build the same solution on J2EE.
Why is this true? Why should J2EE be more complex to use? There are a couple of obvious reasons. One of them is that its constituent technologies were created by committees, a process that rarely produces simple results. (Actually, J2EE isn't all that complex for a committee-created set of specs; there are plenty of worse examples.) A second reason for J2EE's complexity is that its creators seem willing to assume a fairly high degree of technical ability on the part of their users. With .NET, by contrast, Microsoft is well aware that it's designing technology that people who liked Visual Basic 6 must be able to adopt in some way. Controlling complexity is an essential part of achieving this.
The latest version of the enterprise Java specs, Java EE 5, made some effort to simplify a Java developer's life. Whether it succeeded in doing this is debatable; opinions differ
. What's not debatable is that to be competitive in the long run, the Java platform can't be 28% more complex than its main competitor.