Why Is Java Called Open Source When Development Is Not Decentralized?

javaopen source

Open source software should be developed by different contributors in decentralized fashion. I understand that Open JDK is reference implementation of Java which is open source and it allows contributions towards security and bug fixing. I believe Oracle makes most of the contributions to Open JDK. Does Java qualifies as Open source ?

Best Answer

Why do we call Java open source, when development or contributions are not decentralized?

The definition of "Open Source" provided by the Open Source Initiative makes no mention of accepting contributions, or how software should be developed.

You can read it here:

The term "open source" has no fixed definition. It means different things to different people.

The other point to make is that the word "Java" means lots of things:

  • It is a programming language
  • It is a specification of that programming language
  • It is an implementation of that language (compilers, core JVM, etc)
  • It is an implementation of a language plus a large "standard library"
  • It is a family of implementations of language + libraries (SE, ME ... EE)
  • There is OpenJDK Java versus Oracle Java ... which have different licenses.
  • There are multiple vendor Java implementations based on the Oracle / Sun code base.
  • There are others, like GNU Classpath Java, Apache Harmony Java (historical) Android Java, various 3rd-party Java compilers (Jikes, the Eclipse compiler, etc)
  • etcetera

So, when you say "we call Java open source", that is an over-generalization ... and in many cases wrong.


Does (OpenJDK) Java qualify as Open Source ?

Yes. According to the definition linked above.

According to your personal definition of open source, maybe no. But I doubt that your personal definition would get much support. Even in the Free Software community.


You might be confusing Open Source (or open source) with "The Open Source Way". The latter is described as:

"a way of thinking about how people collaborate within a community to achieve common goals and interests."

... but there is no "definitional requirement" that Open Source software be developed that way. Or open source software either.

Related Topic