A colleague of mine is an easy target for anything that's free. I'm not talking about free from the perspective of "unshackled" or "independent." Rather, I'm talking about the type of free that won't make his wallet thinner. To him anything that looks, tastes, or smells "free" is the most beautiful thing in the world, at least at that moment. As we all know, there's no such thing as free in real life. There is the concept of what's cheap, but cheap is relative.
We all experienced the technology bubble. A couple of years ago, if you wanted to introduce a new product in the market, one of the best strategies was to buy a lot of stuff from third-party vendors, glue it all together, and sell it as a new offering. Buy an OS from here, an app server from there, a content management system from hither, and a commerce server from beyond - and voilą! you had a product. If your internal development team couldn't hack it together, you could always hire high-priced consultants from the same vendor who charged the big bucks for the product, and still deliver to the customer on time. Time was the main factor, not money. The end client was willing to pay for all the OEM-ed products that lay hidden inside your product.
Obviously, all that has changed now. Hence this propensity toward cheaper alternatives and this migration toward open-source software as the only reasonable alternative. Since there is ample synergy between J2EE and Linux environments, the cost of developing an application in J2EE that is deployed in Linux becomes a very attractive proposition. But when embarking on such a project, it's important to consider all the facets involved in developing, marketing, and deploying the application. Eventually, what is the total cost of ownership (TCO) of the deployed solution?
Let's start with the operating system, in this case, Linux. You can, of course, obtain Linux for free. But do you download the free version or do you purchase the shrink-wrapped version from Red Hat, Debian, or one of the other vendors? Chances are, if you're working on a commercial project, you do the latter; essentially you pay for the support and the installation utilities. If you want to do J2EE development and deployment, you will need an enterprise version. For example, I just looked up the price of Red Hat Linux Advanced Server. From one online source, the cost is $2,638.25 for standard support and much more for premium. This moves Linux up from free to cheap, as compared to a similar vendor.
Wait a minute, you still need an application server in order to build your J2EE application. For example, in August 2002, WebLogic announced an enhanced commitment to the Linux community through a new deal with Red Hat, Inc. While this is all good, as you buy more third-party products that will run on Linux to produce and deploy your application, the costs keep mounting up.
Don't get me wrong. Linux is a leading contender for the enterprise J2EE space. But the reason is no longer because it's free. After all, J2EE is free if you use the reference implementation. But do you make that choice for your application? TCO studies done by various sources indicate that Linux may be one of the cheapest and most feasible options for producing J2EE applications. It definitely has industry support. However, what really counts is that it is one of the best options for deploying quality products because of its scalability and reliability and the amount of community support. One of the challenges still facing the Linux camp is to change the perception that management in large companies has regarding the validity of "free" or "cheap" software. Development has to emphasize the fact that these qualifiers do not mean "unsupported."
Ajit Sagar is the J2EE editor of JDJ and the founding editor of XML-Journal. He is the director of engineering at Controlling Factor, a leading B2B software solutions firm based in Dallas, and is well versed in Java, Web, and XML technologies.