Free Software and Java


GNU/Linux[2] is Free Software. It is Open Source. I don't even want to start the debate on what each term means and which one is "right." One of the two authors of this book is a Free Software advocate, and the other is of a purely laissez-faire attitude towards the question (we won't tell you which, although we invite you to guess). But even with a deliberate decision to cease-fire, the question remains: Is Java Open Source or Free Software?

[2] This is the only time we will refer to it as "GNU/Linux." See Section 7.3 for the story of why GNU/Linux is the preferred name of some. We understand Stallman and the FSF's position, but "Linux" is much easier on the eyes and ears than "GNU/Linux." And that, not principle, is how names and words go into the language. For better or for worse, "Linux" is the name of the operating system.

The answer is mixed. Neither Sun's nor IBM's Java implementations are Open Source or Free Software. You may download and use them for free, but you do not have the source code to them, nor do you have the right to make modifications to them.[3] This book will cover the GNU Compiler for Java, which compiles Java source code to native machine code. The GNU Compiler for Java (gcj) is both Open Source and Free Software. It is, however, supporting differing levels of the Java APIs (some packages are current, some are back at 1.1.x levels) and does not fully support the AWT or Swing GUIs.

[3] As we write this, a very public discussion is taking place between Sun, IBM, and Eric Raymond, founder of the Open Source Initiative, about opening Java under some sort of open source license. At this time, no one knows how this will turn out, but it is possible that Java will be Free Software in the future.

However, none of this means that you cannot write your own Java programs and release them under a Free Software or Open Source license. So you can certainly develop Free Software in Java. Staunch Free Software partisans (such as Richard Stallman and the Free Software Foundation) would question the wisdom of doing so. Their argument would be that a Free Software product that depends on non-Free tools isn't really Free Software, since to compile, use, or modify it, you need to make use of a proprietary tool.

There is more than one effort to produce a Free Software Java runtime implementation. None of them is "ready for prime time." It would, in our opinion, be a very good thing for Sun to release their SDK and Java Virtual Machine as Free Software. But so far, they have steadily resisted calls to do so.

The fact, however, that two distinct vendors (Sun and IBM) produce effectively interchangeable development and runtime environments reduces some of the risk that you face when you select a platform available only from a single vendor who does not provide source code.

So, to put the case firmly: Java is free for use, but it is certainly not Free Software as defined in The GNU Manifesto[4] or the GNU General Public License.[5] This is a political and philosophical issue of interest only to those aforementioned Free Software partisans. For the rest of us, this has no bearing on Java's technical or business merits. As for us, obviously we like the language or we wouldn't be writing about it.

[4] http://www.gnu.org/gnu/manifesto.html

[5] http://www.gnu.org/copyleft/gpl.html



    Java Application Development with Linux
    Java Application Development on Linux
    ISBN: 013143697X
    EAN: 2147483647
    Year: 2004
    Pages: 292

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