Section 14.6. How Java Technology Can Help


14.6. How Java Technology Can Help

That's where Java technology enters the story. Yes, I know many of you complain that Java is not FOSS, and so how can it even be cited after so many arguments in favor of software livre?

Well, Java is as much software livre as HTTP is. Or as PDF is. Or, for that matter, as C is! That is, none of these technologies is software livre. They are standards. Some are more open or compatible than others, but all of them are books, pieces of paper, and web pages. Standards are not software livre. The fact that you have the GNOME PDF Viewer licensed as GPL does not make PDF software livre. It does not even make PDF an open standard (it is a royalty-free standard, but it is not open since it's controlled by, and only by, Adobe). Having GCC as a C compiler does not make C software livre. It means only that it contains software livre implementation of the ANSI C standard. In addition, just because they are standards, even standards having software livre implementations, does not mean they can be modified at will. Apache HTTP Server is the software livre implementation of the W3C HTTP standard, meaning that although Apache HTTP Server code is legally modifiable, you cannot modify it at will and still say it is compatible with the W3C-HTTP standard.

Then there's Java. As a standard, defined and controlled by the Java Community Process (the JCP), the Java standard can now also be implemented royalty free as software livre (under any FOSS license). Actually, Java is a set of standards. You have things like the Java 2 Enterprise Edition (J2EE), the Java Virtual Machine (JVM), and the Java 2 Standard Edition (J2SE)several class libraries defined as separated standards. Even the class file format and the Java language are standards.

Until recently, the JCP rules did not really allow for a software livre implementation (although many initiatives were being developed). However, this has changed, thanks to the initial work of Jason Hunter on behalf of the Apache Software Foundation and supported by Sun and other JCP members. Since the release in 2002 of the JCP 2.5 rules, there have been no barriers for compatible software livre implementations of the many Java specifications. Because of the large number of Java specifications, "Java needs to be open source" and "Java is not free software" are usually meaningless statements, especially because of the fact that since JCP 2.5, many of these specs already have a FOSS implementation.

One of the important things that the JCP rules mandate is that every contribution made to a standard has to be licensed royalty free to anyone implementing the standard. This guarantees that the FOSS community will be able to implement all of Java. Many standards bodies (ISO and ECMA, for instance) do not mandate this, simply requiring the infamous Reasonable and Non Discriminatory (RAND) clause that is not necessarily reasonable for the FOSS community, and as such discriminates against it. Standards generated by those standards bodies can be, and usually are, encumbered by patents and RAND agreements, making them, for all practical purposes, impossible to implement legally by the FOSS community.

However, because of Java's very broad objectives, the Java standards are hard to implement. Different from other standards, Java tries to reach the binary compatibility promise: the ability to run your Java binary unmodified on any platform with a Java runtime. For this even to work, a compatibility test was created to guarantee that a Java implementation meets the standard's requirements. Technology Compatibility Kits (TCKs) are provided, requiring implementations to pass these tests to claim compatibility. Compatibility requirements and the sheer number of libraries and standards involved, coupled with Sun's quite restrictive licensing in its own proprietary implementations have delayed software livre implementations of Java.

This does not mean that initiatives don't exist or that we cannot have a software livre implementation. It is important to say that many Java standards already have a software livre implementation: servlets, JSP, JSF, EJB, J2EE, JMS, and JDBC are among the most important examples. What is missing is the very important underlying runtime: the complete JVM and the set of J2SE libraries. Many projects do exist to fill this gap and are under development right now. Several are quite capable of running much of the Java code out there, including some very complex applications. These implementations are far from perfect, but we're getting there.



Open Sources 2.0
Open Sources 2.0: The Continuing Evolution
ISBN: 0596008023
EAN: 2147483647
Year: 2004
Pages: 217

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net