www-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

www/philosophy java-trap.html


From: Richard M. Stallman
Subject: www/philosophy java-trap.html
Date: Tue, 15 Dec 2009 15:08:14 +0000

CVSROOT:        /webcvs/www
Module name:    www
Changes by:     Richard M. Stallman <rms>       09/12/15 15:08:14

Modified files:
        philosophy     : java-trap.html 

Log message:
        Minor cleanups.

CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/java-trap.html?cvsroot=www&r1=1.30&r2=1.31

Patches:
Index: java-trap.html
===================================================================
RCS file: /webcvs/www/www/philosophy/java-trap.html,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -b -r1.30 -r1.31
--- java-trap.html      22 Mar 2009 06:35:09 -0000      1.30
+++ java-trap.html      15 Dec 2009 15:08:08 -0000      1.31
@@ -1,19 +1,20 @@
 <!--#include virtual="/server/header.html" -->
-<title>Free But Shackled - The Java Trap</title>
+<title>Free but Shackled - The Java Trap</title>
 <!--#include virtual="/server/banner.html" -->
 
-<h2>Free But Shackled - The Java Trap</h2>
+<h2>Free but Shackled - The Java Trap</h2>
 
 <p>by <a href="http://www.stallman.org/";>Richard Stallman</a></p>
 
 
 <div class="announcement"><h3>Headnote</h3>
-<p>As of December 2006, Sun is in the middle
-of <a href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html";>rereleasing
-its Java platform under the GNU GPL</a>.  When this license change is
-completed, we expect that Java will no longer be a trap.
-Nonetheless, the general issue described here will remain
-important, because any non-free library or programming platform can
+<p>Since this article was first published, Sun
+has <a href="http://www.fsf.org/news/fsf-welcomes-gpl-java.html";>relicensed</a>
+most of its Java platform under the GNU General Public License, and
+there is now a free Java development environment.  Thus, the Java
+language is no longer a trap.
+Nonetheless, the general issue described here remains
+important, because any nonfree library or programming platform can
 cause a similar problem. We must learn a lesson from the history of
 Java, so we can avoid other traps in the future.</p>
 
@@ -26,7 +27,7 @@
 <p>
   If your program is free software, it is basically ethical&mdash;but
   there is a trap you must be on guard for. Your program, though in
-  itself free, may be restricted by non-free software that it depends
+  itself free, may be restricted by nonfree software that it depends
   on. Since the problem is most prominent today for Java programs, we
   call it the Java Trap.
 </p>
@@ -38,17 +39,17 @@
   redistribute the source and binaries, and the freedom to publish
   improved versions. (See
   <a 
href="/philosophy/free-sw.html">http://www.gnu.org/philosophy/free-sw.html</a>.)
-  Whether any given program is free software depends solely on the
-  meaning of its license.
+  Whether any given program in source form is free software depends
+  solely on the meaning of its license.
 </p>
 
 <p>
   Whether the program can be used in the Free World, used by people who mean 
to 
   live in freedom, is a more complex question. This is not determined by the 
-  program's own license, because no program works in isolation. Every program 
+  program's own license alone, because no program works in isolation. Every 
program 
   depends on other programs. For instance, a program needs to be compiled or 
   interpreted, so it depends on a compiler or interpreter. If compiled into 
-  byte code, it depends on a byte code interpreter. Moreover, it needs 
+  byte code, it depends on a byte-code interpreter. Moreover, it needs 
   libraries in order to run, and it may also invoke other separate programs 
   that run in other processes. All of these programs are dependencies. 
   Dependencies may be necessary for the program to run at all, or they may 
@@ -57,30 +58,30 @@
 </p>
 
 <p>
-  If some of a program's dependencies are non-free, this means that
+  If some of a program's dependencies are nonfree, this means that
   all or part of the program is unable to run in an entirely free
   system&mdash;it is unusable in the Free World. Sure, we could
   redistribute the program and have copies on our machines, but that's
   not much good if it won't run. That program is free software, but it
-  is effectively shackled by its non-free dependencies.
+  is effectively shackled by its nonfree dependencies.
 </p>
 
 <p>
   This problem can occur in any kind of software, in any language. For 
   instance, a free program that only runs on Microsoft Windows is clearly 
   useless in the Free World. But software that runs on GNU/Linux can also be 
-  useless if it depends on other non-free software. In the past, Motif (before 
+  useless if it depends on other nonfree software. In the past, Motif (before 
   we had LessTif) and Qt (before its developers made it free software) were 
   major causes of this problem. Most 3D video cards work fully only with 
-  non-free drivers, which also cause this problem. But the major source of 
+  nonfree drivers, which also cause this problem. But the major source of 
   this problem today is Java, because people who write free software often 
   feel Java is sexy. Blinded by their attraction to the language, they 
-  overlook the issue of dependencies, and they fall into the Java Trap. 
+  overlook the issue of dependencies and fall into the Java Trap. 
 </p>
 
 <p>
-  Sun's implementation of Java is non-free. The standard Java libraries are
-  non-free also. We do have free implementations of Java, such as the <a
+  Sun's implementation of Java is nonfree. The standard Java libraries are
+  nonfree also. We do have free implementations of Java, such as the <a
   href="http://gcc.gnu.org/java/";>GNU Compiler for Java</a> (GCJ) and <a
   href="/software/classpath">GNU Classpath</a>, but they don't support all the
   features yet. We are still catching up.
@@ -104,12 +105,12 @@
 
 <p>
   Sun continues to develop additional &ldquo;standard&rdquo; Java
-  libraries, and nearly all of them are non-free; in many cases, even
+  libraries, and nearly all of them are nonfree; in many cases, even
   a library's specification is a trade secret, and Sun's latest
   license for these specifications prohibits release of anything less
   than a full implementation of the specification. (See
   <a 
href="http://jcp.org/aboutJava/communityprocess/JSPA2.pdf";>http://jcp.org/aboutJava/communityprocess/JSPA2.pdf</a>
 and 
-  <a 
href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html";>http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html</a>,
 
+  <a 
href="http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html";>http://jcp.org/aboutJava/communityprocess/final/jsr129/j2me_pb-1_0-fr-spec-license.html</a>
   for examples). 
 </p>
 
@@ -119,17 +120,17 @@
   allowed to change it and are not required to adhere to the specification. 
   But the requirement has the effect of prohibiting the use of a collaborative 
   development model to produce the free implementation. Use of that model 
would 
-  entail publishing incomplete versions, which those who have read the spec 
are 
-  not allowed to do. 
+  entail publishing incomplete versions, something those who have read the
+  spec are not allowed to do. 
 </p>
 
 <p>
   In the early days of the Free Software Movement, it was impossible to avoid 
-  depending on non-free programs. Before we had the GNU C compiler, every C 
-  program (free or not) depended on a non-free C compiler. Before we had the 
-  GNU C library, every program depended on a non-free C library. Before we had 
-  Linux, the first free kernel, every program depended on a non-free kernel. 
-  Before we had Bash, every shell script had to be interpreted by a non-free 
+  depending on nonfree programs. Before we had the GNU C compiler, every C 
+  program (free or not) depended on a nonfree C compiler. Before we had the 
+  GNU C library, every program depended on a nonfree C library. Before we had 
+  Linux, the first free kernel, every program depended on a nonfree kernel. 
+  Before we had Bash, every shell script had to be interpreted by a nonfree 
   shell. It was inevitable that our first programs would initially be hampered 
   by these dependencies, but we accepted this because our plan included 
rescuing 
   them subsequently. Our overall goal, a self-hosting GNU operating system, 
@@ -141,10 +142,10 @@
 <p>
   The situation is different today. We now have powerful free operating 
systems 
   and many free programming tools. Whatever job you want to do, you can do it 
on 
-  a free platform; there is no need to accept a non-free dependency even 
+  a free platform; there is no need to accept a nonfree dependency even 
   temporarily. The main reason people fall into the trap today is because they 
-  are not thinking about it. The easiest solution to the problem of the Java 
Trap 
-  is to teach people not to fall into it. 
+  are not thinking about it. The easiest solution to the problem 
+  is to teach people to recognize it and not fall into it. 
 </p>
 
 <p>
@@ -164,7 +165,7 @@
   language, we invite you to help in developing GNU Classpath. Trying your 
   programs with the the GCJ Compiler and GNU Classpath, and reporting any 
   problems you encounter in classes already implemented, is also useful. 
-  However, finishing GNU Classpath will take time; if more non-free libraries 
+  However, finishing GNU Classpath will take time; if more nonfree libraries 
   continue to be added, we may never have all the latest ones. So please don't 
   put your free software in shackles. When you write an application program 
   today, write it to run on free facilities from the start.
@@ -205,7 +206,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2009/03/22 06:35:09 $
+$Date: 2009/12/15 15:08:08 $
 <!-- timestamp end -->
 </p>
 </div>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]