Related Topics: Java EE Journal

J2EE Journal: Article

Unified Diversity

Unified Diversity

The network effect is the impetus behind today's software platforms, but a balance must be struck between homogeneous vulnerability and fractured inefficiency. Comparing J2EE to .NET shows clear advantages for J2EE through vendor diversity, portability, standardization community, educational opportunity, language commonality, and security. .NET's attempt to replicate J2EE is shallow, providing technological similarity in a disconnected and proprietary package.

Broadly speaking, the network effect is the growth experienced by networks due to the feedback loop induced by the increasing value of joining a growing network. Consider fax technology. It has been successful because the network of fax machines, connected by the telephone system, communicates reliably - thanks to a common standard. The adoption of fax machines showed runaway growth because, in a sense, the value of a fax machine increased as the size of the entire fax network increased.

Such networks may start slowly, but when they do succeed the effect is dramatic. Clearly, interoperability is crucial to their success. Why not guarantee interoperability by insisting on a single manufacturer, a fax machine monopoly?

The reasons against this have been repeatedly established: an absence of competition leads to lower quality, higher prices, a lack of innovation, and a vulnerable system. The free market demands a diversity of suppliers, unified through common standards. This is not only an economic principle; looking at software platforms, we see the network effect on many levels. Let's examine how J2EE and .NET compare.

Everything derives from the human network of education, and both J2EE and .NET technologies are excellent starting points for an education in computer science. The difference is that only J2EE is suitable for a formal curriculum. Unlike the .NET unmaintained prototype in "Shared Source," J2EE code is freely available in its entirety for educational and research purposes. Academic integrity is preserved only when full examination and discourse are encouraged.

Isn't .NET better for teaching? With its Common Language Infrastructure, it can be used to teach any language. However, this is a dangerous illusion. .NET reduces the interesting differences of programming languages to a syntactic tower of Babel. Exposure to a variety of languages is an essential part of every education, but they must be seen in their true form to be of value. In contrast, Java makes no such claim of universality; it simply unites developers with a common language, allowing them to effectively share source code and ideas. The network of developers is connected through Java, not through compiled bytecode.

Less abstract is the network of middleware, virtual machine, and operating system suppliers. Once again, the free market demands that this be a diverse collection. J2EE, through its focus on portability, provides an integration point that gives developers and deployers choices at every stage. In opposition, .NET holds up a single supplier, eager to collect high taxes and exercise control.

For the long term, the most important network is that of the platform developers. How do people work together to define the standards and technologies that make up a platform? The Java Community Process may not be as fair or as open as some would like, but fundamentally it does provide a way for developers and vendors to reach a consensus and participate in the evolution of J2EE. In contrast, platforms imposed by dictatorship are technology monopolies, leading to lower quality and lost innovation. Herein lies the tragic flaw of .NET. Publishing a document and declaring it to be a standard omits the peer-refinement process, and the technology becomes little more than a tool of its owner.

Finally, let's turn to the unfortunate reality of our somewhat hostile world. Billions of years of evolution have demonstrated the catastrophes that await homogeneous systems with their replicated single points of failure. Today we see this in the explosive growth of software viruses. Some are merely reckless, some have criminal intent, but all are destructive. J2EE provides a system designed from the ground up for security and is deployable on a substrate that is robust through its diversity. The foundation of the alternative is well traveled by worms. This too serves as a lesson that the network effect must be approached wisely.

More Stories By Ted Goddard

Ted Goddard is the senior architect of the ICEfaces AJAX framework. Following a Ph.D. in mathematics, he proceeded with postdoctoral research in component and Web-based collaborative technologies. He currently participates in the JavaServer Faces and Servlet expert groups.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.