Since its introduction in May 1995, the Java platform was adopted quicker than any other new technology in computing history. All major computing platform vendors (with the exception of Microsoft) are integrating Java technology as a core component of their products. With the phenomenal rise of application server technology from industry heavy weights like Oracle, IBM, BEA Systems, Sun, Borland, and others, Java and the Java 2 Enterprise Edition (J2EE) platform have emerged as a competitive threat to Microsoft’s industry dominance.
The Java platform is no longer a fringe technology, a curiosity, or a solution in search of a non-existent problem. It has found a permanent home in the middle tier of three tier architectures, and having done so, is challenging Microsoft’s COM+, and now .NET, as the industry’s dominant architecture. The meteoric rise of the Java platform caught Microsoft asleep at the wheel, permanently changing the computing landscape. As I have discussed previously, Microsoft has responded boldly. It took a solid shot to the jaw but has served notice that this fight is going the distance.
Java and J2EE are hardware and operating system agnostic and this provides broad appeal to many companies that would rather not be locked into what they consider to be proprietary standards. Microsoft is attempting to market .NET as an open standard, but the market remains wary of such claims. Bottom line is that Java and J2EE are here to stay.
CORBA continues to evolve and mature. While CORBA has faded to a distant 3rd position in the architecture wars, it is by no means a dying initiative. On the contrary, CORBA will probably continue to evolve and prosper, along with the emerging Web Services specification, as the de facto standard for integrating COM+/.NET and J2EE. That said CORBA should be used only as glue technology and not as a primary standard.
Despite the endless hype that has and will be unleashed upon corporate America, the architecture wars are quickly becoming passé. Choosing the appropriate architecture is a strategic technology decision that should be based on the business drivers of individual organizations as opposed to an overwhelming technological superiority of one of the two leading offerings.
The architectural decision should be based on the realities of the labor market, where your organization and industry fit into the application food chain, interoperability with other important technologies that are important to your mission, time-to-market constraints, and technical support issues. In short, make a decision and move on. The only thing of interest is what you decide to do on top of your commercial plumbing standard of choice.
Do not believe for a minute that either one of these “offerings” will solve your architectural problems. You are just getting started. If you ask your CIO “Hey, this Leyva idiot says that architecture is important. What are we doing about it?” and they respond with “We have it covered boss, we’ve selected J2EE, or we’ve selected .NET.” Fire the silly motherfucker on the spot (see The Only Architecture That Matters below).
Looks like the CIO unemployment situation just got worse.