Not surprisingly, Sun’s response to the recent report from analyst Richard Monson Haefel of The Burton Group, which suggested that Java Enterprise Edition (Java EE) was effectively under a death sentence born of its over-complexity, have erred towards the dismissive.
“Richard Monson- Haefel’s remarks were a little excessive,” suggested Karen Tegan Padir, Sun’s VP Engineering, Java Enterprise Products. The thrust of her argument is fairly straight forward: in a system intended as a platform for applications that range across the board, from small servlets to business-critical transactional environments, complexity is inevitable.
“In part, the issue of Java EE’s complexity comes down to the fact that once a feature makes it into the standard, it is there for life,” she said. This issue of applications lifecycle and backwards compatibility is certainly a cause of increasing the complexity of any system, but it is one that Padir claimed Sun and the Java Community pay strict attention to. “This does mean we need to be more careful about what goes into the system. If we had added all the features that he (Richard Monson Haefel) mentioned it would be even more complex.”
So to her, complexity is a necessary part of Java EE, for as the technologies change and evolve, and as new ones are added to the system by the Java Community Process, they all become, and then have to stay, as part of the standard. In her view, it is an inevitable consequence of the richness of the feature set, which is itself inevitable given the range of applications used within enterprises. Ultimately, Java EE is that complex because it has to provide that breadth and depth.
Padir also observed that the recently launched Java EE 5 appeared with two firsts. It was the first time JEE has had unanimous approval from the Java Community, and the first to appear with an IDE, NetBeans V5.5.
It is the view of Jeet Kaul, Executive Director, Java Enterprise Edition that, when it comes to applications development support, Java EE 5 is unprecedented in the level of support available to developers, regardless of the size of application. “That support comes from companies like Oracle, IBM, BEA, JBoss and many others” he said. Indeed, for many large enterprise environments, these are the vendors that will often provide the environments for applications development. As Mike Lehmann, Oracle’s director product management for Oracle Application Server, has been quoted as saying, building SOA on JEE is completely different from building it with Java EE. This subtle difference is, however, important.
“He (Richard Monson Haefel) has made a fundamental error and misses the point about open standards,” Kaul said. “All the major vendors need something to deploy applications on, large transaction services or small applications, and the best platform is Java. Java EE is not static. Server side scripting is under development with Projects such as Phobos and there is community participation in this. For example, take Hibernate. We worked with Oracle, JBoss and others to get the standards for this established. This is an example of how Java EE is a moveable platform and we want to be able to tailor it to meet all developer’s needs.”
He stressed that one of the important requirements is to ensure that Java EE has all the APIs that developers need, regardless of the type of application or what functionality they need. This can range from large scale legacy connectivity through to individual servlets, which are still portable Java EE applications.
He also pointed to the resilience of Java EE as a platform. “If a developer wants to get something up and running quickly that can do it with Java EE, and be sure that it has got the proven robustness to run that application in a high pressure production environment,” he said. “We hear endless stories about applications developed in other environments that work as a pilot and fail in production, and need rewriting in something else. That is usually Java EE. So Java EE is complex, but it has the support needed to build complex systems.”®