HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Over the past few years, the phenomenon of open source has risen to its rightful place in the hearts and minds of developers everywhere. You'd be hard pressed to find a Java project that doesn't make use of some form of open source software.

Nor is the prevalence of open source the domain of commodity applications; some highly specialized and domain-specific applications are open source, deployed in many high-profile, mission-critical environments, with a thriving and active user community. The motivation for the developers ranges from scratching a personal itch, to marketing benefits, to a (sometimes!) sound business model whereby the source is free but support and services are not.

Before open source advocates get up in arms over what I am about to say, I'd like to point out that I am heavily involved in quite a few open source projects; for example, as a core developer at the Open Symphony project and a regular contributor to XDoclet. I benefit greatly from a large number of open source products and libraries. This relationship is often quite symbiotic; the more you use said libraries, the more likely you are to contribute patches, fixes, and enhancements.

However, it's disturbing to hear some of the language and the tone coming out of certain vocal open source proponents in the Java world. I think a great disservice is being done to open source when those invested in it claim that it's a new business model that does away with the old antiquated way of doing things.

For all those adherents to this dogma, consider your own projects. If you're working on a product for a living (or hope to make a living off of it), chances are you're not going to open source it. Marketing benefits aside, it often doesn't make sense to "set the source free." Many man-hours have been invested in said product and, generally, financial compensation for investing all those hours wouldn't be such a bad thing.

Having said that, in some cases there is a great benefit to be had from open sourcing. Perhaps you no longer have much time to dedicate to your application; perhaps it's too unrelated to your core business, and thus open sourcing it won't detrimentally affect sales. These days, it's also an excellent way to generate publicity and free marketing.

I've heard far too many people chant the usual set of mantras when it comes to choosing open source. For example, a common claim is that if you have access to the source, you can always fix any issues you have with it, thus having insurance against the vendor going out of business. This might well be true for small easy projects but, as most people who have used JBoss can attest, the source is next to useless in such scenarios. The codebase is simply too large and complex for the casual browser to be able to pinpoint a bug and determine a correct fix.

Another common myth is the superior support argument. The perception is that open source has superior support since it has interested fellow users and the actual developers of the code providing this support. This is an unfair claim because the stereotypical yardstick comparison is usually a very narrow set of commercial software. In my experience, almost every small vendor of a commercial product has provided exceptional support. Even the giants like BEA provide surprisingly quick-issue resolution and turnaround times. It's not unheard of to have an issue escalated to a senior engineer within a few hours of reporting it. Some clients have also cited very specific examples of issues not just being escalated, but having had a fix tested and delivered within hours.

Whatever your choice is, have the courtesy and foresight to acknowledge that there is no "one size fits all." Open source has its place now and always will. The same applies for commercial software. Neither model is going to die out anytime soon, but if you must make a decision between one or the other, consider all the hidden costs, not just the price tag.

About The Author
Hani Suleiman is the CTO of Formicary (www.formicary.net), a consulting services and portal solution provider. He is also a developer on a number of popular open source projects. [email protected]

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.