| By Ted Goddard | Article Rating: |
|
| August 5, 2004 12:00 AM EDT | Reads: |
13,726 |
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.
Published August 5, 2004 Reads 13,726
Copyright © 2004 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
About 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.
- Performance of Java Compilers: An Empirical Study
- Java Kicks Ruby on Rails in the Butt
- Ulitzer’s Amazing First 30 Days in Public Beta
- 1st Annual Government IT Expo: Call for Papers Deadline July 15
- REA Is Where RIA Becomes the Norm
- Why an Application Grid?
- Will Ulitzer Dominate News Content on The Web? -Gartner
- Clear Toolkit 4: The Road Map
- Profiling Netbeans within Amazon EC2
- Java Persistence on the Grid: Approaches to Integration
- Performance of Java Compilers: An Empirical Study
- Java Kicks Ruby on Rails in the Butt
- Developing Rich Client Applications Using Swing - II
- The Right Time for Real Time Java
- Xpress Suite Adds Automatic Java to iPhone Conversion
- Ulitzer’s Amazing First 30 Days in Public Beta
- Initial Thoughts on IBM Acquisition of Sun Microsystems
- 1st Annual Government IT Expo: Call for Papers Deadline July 15
- Maximizing Java Performance with Bespoke Programming
- REA Is Where RIA Becomes the Norm
- A Cup of AJAX? Nay, Just Regular Java Please
- Java Developer's Journal Exclusive: 2006 "JDJ Editors' Choice" Awards
- The i-Technology Right Stuff
- JavaServer Faces (JSF) vs Struts
- Rich Internet Applications with Adobe Flex 2 and Java
- Java vs C++ "Shootout" Revisited
- Bean-Managed Persistence Using a Proxy List
- Reporting Made Easy with JasperReports and Hibernate
- What's New in Eclipse?
- Creating a Pet Store Application with JavaServer Faces, Spring, and Hibernate





































