Welcome!

Java Authors: Raymond Feng, Maureen O'Gara, Per Sjofors, Lori MacVittie, Al Mannarino

Related Topics: Open Source

Open Source: Article

Open Source Software, Standards, and Java

Sun Microsystems publishing Java under the Open Source license

Sun Microsystems recently announced its intentions of finally publishing Java under an Open Source license. But what does that actually mean? We'll take a quick look at what it means to be "Open Source," how the Java language specification compares to other more formal language standards, and the importance of the brand and certification programs. We'll then look at what benefits Sun may get from distributing Java as Open Source and at some of the problems that will have to be addressed.

Open Source Software
The Open Source Initiative defines Open Source software and a license must meet 10 criteria to be considered an "Open Source software" license. Essentially, it's a way of thinking about licensing software. It boils down to some very simple ideas about access to source code and the ability to modify the software and distribute those modifications. It encompasses the concept of Free Software as defined by the Free Software Foundation around a set of software "freedoms," such as the freedom to study how a program works and adapt it to your own needs.

Open Source software is typically developed in a collaborative community, either under a strong leader who coordinates the development community, or a meritocratic process where a developer earns the leadership role in the community like the process favored by the Apache community. Some companies build businesses based on Open Source software projects, generally ones they control. For example, MySQL (the company) maintains MySQL (the database engine).

In these cases, the software has a copyright, is owned, and is therefore licensable. Free and Open Source software is not "public domain" in any sense of the phrase.

Software developed in successful Open Source collaborative communities shows all the hallmarks of well-developed software from other processes. Essentially good software is developed by good software developers regardless of the licensing strategy. So Open Source software has just as much potential to be well-structured, have well-defined stable interfaces, and be delivered through a disciplined process that encompasses software inspection, mandatory version control, and automated building and testing as software developed in other ways.

Where Open Source differs from other well-developed software is in the collaborative community. The best developers interested in the software can participate in its creation and evolution regardless of where they live or work. This provides a number of benefits:

  • Many people see the source code. Software inspections regardless of how informal prove to be much more effective at finding bugs than testing.
  • The code is used and tested in a broad base. This expansion of the "test" bed tends to shake out bugs faster and hardens the software.
  • A diversity of expertise and experience can be leveraged. This applies both to improving the code base, as well as to innovating on the code base to take it in new and interesting directions.
Sun has been an active participant in the Open Source software world since its inception. The original SunOS operating system was a Berkeley Unix derivative that came out of the collaborative efforts around Unix in the early days. Sun has contributed heavily to the accessibility features in the Gnome desktop. Most recently it has opened the Solaris source code base under its own OSI-approved Open Source license (the Common Development and Distribution License or CDDL) and has been developing the OpenSolaris community. So Sun definitely has experience with Open Source, both contributing to other and developing its own communities.

Let's shift gears for a moment and take a look at Java and the Java Community Process from a standards perspective, as that has been Java's history to date.

Standards (Open and Otherwise)
A specification is simply a document describing some interface for interoperability. Lots of companies publish specifications to enable customers and partners to interoperate software with their products better. In such cases, where the specification is published by a single commercial entity, it typically benefits the company by encouraging add-ons to its product.

A standard is a specification that has been put through some form of consensus process by a collection of interested parties. It may be a formal government-supported de jure process with checks and balances to ensure that the consensus isn't anticompetitive collusion. It may be an industry or trade organization (CBEMA, ECMA, IEEE) with a broad interest in an area, e.g., computing standards. It may be an industry group with a narrower focus (e.g.. OASIS, W3C, IETF). The consensus process has rules that define such things as participation, acceptance, interpretation, amendment, and withdrawal.


More Stories By Stephen Walli

Stephen Walli is Vice President of Open Source Development Strategy, Optaros, where he's responsible for developing and managing Optaros' relationships with the open source community. Previously Stephen was an advocate for open source at Microsoft, where he was focused on the technical implementation of open source-related community projects, creating a business model at Microsoft to engage in the open source community. Stephen was the Vice-president, R&D and a founder at Softway Systems, Inc, the developer of the Interix environment to re-host UNIX applications on NT. Stephen was also an independent consultant for X/Open, Sun, UNISYS, and the Canadian government. He was once a development manager at Mortice Kern Systems, and a systems analyst at EDS. A long time participant and officer at the IEEE and ISO POSIX standards groups, representing both USENIX and EUUG, he blogs on open source, standards, and the business of software at http://stephesblog.blogs.com/

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.