Making the Java Community Work For You – The Value of Open-Source Code and Commercial Products

The Java language has created a large, devoted community since its release by Sun Microsystems in the mid-1990s. The flexibility offered by its object-oriented approach and cross-platform compatibility has been a major draw for software developers.

The community also actively works to move Java forward through constant innovation — including major open-source projects like the plug-in based application framework Eclipse Platform — that allows Java to compete with native platforms — such as Windows. However, on a small scale, individual developers that freely distribute their solutions to specific problems can create unnecessary noise that makes searching for credible open-source or commercial solutions more time-consuming.

As Alex Harm, a Snowbound Software engineer and Java developer of nine years states, “Free tools can often point you in the right direction, or offer a partial solution to your task. However, if you need help or additional functionality, you may or may not be able to find the answer on an internet forum. A commercial solution is often the most complete, and offers professional support.”

Most corporate projects take advantage of both open-source code (either using it under an open license or as a research tool) and commercial products to increase productivity and reduce development time. Clearly defining what you will need from third-party code before beginning your search will help you determine which will fit your needs. Some major considerations are:

  • Scalability of tools to meet current and future development requirements
  • Areas of development difficulty that could be simplified by third-party libraries
  • Need to support backwards compatibility in your application

Once your project requirements are clear, knowing the strengths and limitations of open-source code and commercial products will enable you to make the best decision for your project.

There are many options available and these lists highlight some of the most important points to consider when making your decision to use open-source or commercial libraries, or both.

Open-Source libraries

Strengths Limitations
  • All source code is available for review
  • Code can be modified for specific needs, reducing the dependency on vendors
  • Forums and blogs provide code samples on how to solve problems
  • Free licensing of libraries and plug-ins
  • Code available to solve many kinds of problems
  • Limited scope may not meet all requirements
  • Modifications to code not adopted by community become orphaned
  • Applets or applications without open-source may contain malicious code
  • Support provided voluntarily by user base
  • Applications may not be backwards compatible with previous versions of JVM
  • No protection for liability against patent or copyright infringements

Commercial Java Imaging SDKs or libraries

Strengths Limitations
  • Code documentation simplifies training and implementation
  • Broad scope of products more likely to meet project requirements
  • Dedicated support ensures regular maintenance and product upgrades
  • Single programming methodology makes implementation consistent throughout application
  • Backwards compatibility with older versions of JVM more likely
  • Vendor accountability for preventing malicious code and copyright or patent infringments
  • Upfront costs to purchase or license library
  • Product support, maintenance or upgrades may cost extra
  • Closed source code means relying on vendors for additional features and functionality
  • Discontinued product lines may only offer minimal support or upgrade options