www-commits
[Top][All Lists]
Advanced

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

www/philosophy philosophy.html java-trap.html


From: Ramprasad B
Subject: www/philosophy philosophy.html java-trap.html
Date: Mon, 29 May 2006 11:08:45 +0000

CVSROOT:        /web/www
Module name:    www
Branch:         
Changes by:     Ramprasad B <address@hidden>    06/05/29 11:08:45

Modified files:
        philosophy     : philosophy.html java-trap.html 

Log message:
        added rms's article on java-free-software

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/www/www/philosophy/philosophy.html.diff?tr1=1.185&tr2=1.186&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/www/www/philosophy/java-trap.html.diff?tr1=1.12&tr2=1.13&r1=text&r2=text

Patches:
Index: www/philosophy/java-trap.html
diff -u www/philosophy/java-trap.html:1.12 www/philosophy/java-trap.html:1.13
--- www/philosophy/java-trap.html:1.12  Thu Sep 22 23:10:56 2005
+++ www/philosophy/java-trap.html       Mon May 29 11:08:42 2006
@@ -18,83 +18,179 @@
 
 <body>
 
-<p><a href="#translations">Translations</a> of this page</p>
-
 <h3>Free But Shackled - The Java Trap</h3>
 
-<h4>April 12, 2004</h4>
-
 <a href="/graphics/philosophicalgnu.html"><img 
src="/graphics/philosophical-gnu-sm.jpg" alt=" [image of a Philosophical Gnu] " 
/></a>
 
-<p>by <a href="http://www.stallman.org/";>Richard Stallman</a></p>
+<p>by <a href="http://www.stallman.org/";>Richard Stallman</a><br />
+April 12, 2004
+</p>
+
+<p><a href="#translations">Translations</a> of this page</p>
 
 <hr />
 
 
 <p>
-If your program is free software, it is basically ethical--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 on. Since the problem is most 
prominent today for Java programs, we call it the Java Trap. 
+  If your program is free software, it is basically ethical--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 on. Since the problem is 
most 
+  prominent today for Java programs, we call it the Java Trap. 
 </p>
 
 <p>
-A program is free software if its users have certain crucial freedoms. Roughly 
speaking, they are: the freedom to run the program, the freedom to study and 
change the source, the freedom to redistribute the source and binaries, and the 
freedom to publish improved versions. (See <a 
href="http://www.gnu.org/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. 
+  A program is free software if its users have certain crucial freedoms. 
Roughly 
+  speaking, they are: the freedom to run the program, the freedom to study and 
+  change the source, the freedom to redistribute the source and binaries, and 
+  the freedom to publish improved versions. (See 
+  <a href="http://www.gnu.org/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. 
 </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 
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 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 be necessary only for 
certain features. Either way, all or part of the program cannot operate without 
the dependencies. 
+  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 
+  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 
+  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 
+  be necessary only for certain features. Either way, all or part of the 
+  program cannot operate without the dependencies. 
 </p>
 
 <p>
-If some of a program's dependencies are non-free, this means that all or part 
of the program is unable to run in an entirely free system--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. 
+  If some of a program's dependencies are non-free, this means that all or 
part 
+  of the program is unable to run in an entirely free system--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. 
 </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 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 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. 
+  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 
+  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 
+  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. 
 </p>
 
 <p>
-Sun's implementation of Java is non-free. Blackdown is also non-free; it is an 
adaptation of Sun's proprietary code. The standard Java libraries are non-free 
also. We do have free implementations of Java, such as the GNU Compiler for 
Java (GCJ) and GNU Classpath, but they don't support all the features yet. We 
are still catching up. 
+  Sun's implementation of Java is non-free. Blackdown is also non-free; it is 
+  an adaptation of Sun's proprietary code. The standard Java libraries are 
+  non-free also. We do have free implementations of Java, such as the 
+  GNU Compiler for Java (GCJ) and GNU Classpath, but they don't support all 
+  the features yet. We are still catching up. 
 </p>
 
 <p>
-If you develop a Java program on Sun's Java platform, you are liable to use 
Sun-only features without even noticing. By the time you find this out, you may 
have been using them for months, and redoing the work could take more months. 
You might say, "It's too much work to start over." Then your program will have 
fallen into the Java Trap; it will be unusable in the Free World. 
+  If you develop a Java program on Sun's Java platform, you are liable to use 
+  Sun-only features without even noticing. By the time you find this out, 
+  you may have been using them for months, and redoing the work could take 
+  more months. You might say, "It's too much work to start over." Then your 
+  program will have fallen into the Java Trap; it will be unusable in 
+  the Free World. 
 </p>
 
 <p>
-The reliable way to avoid the Java Trap is to have only a free implementation 
of Java on your system. Then if you use a Java feature or library that free 
software does not yet support, you will find out straightaway, and you can 
rewrite that code immediately. 
+  The reliable way to avoid the Java Trap is to have only a free 
implementation 
+  of Java on your system. Then if you use a Java feature or library that free 
+  software does not yet support, you will find out straightaway, and you can 
+  rewrite that code immediately. 
 </p>
 
 <p>
-Sun continues to develop additional "standard" Java libraries, and nearly all 
of them are non-free; 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>,
 for examples). 
+  Sun continues to develop additional "standard" Java libraries, and nearly 
all 
+  of them are non-free; 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>,
 
+  for examples). 
 </p>
 
 <p>
-Fortunately, that specification license does permit releasing an 
implementation as free software; others who receive the library can be 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. 
+  Fortunately, that specification license does permit releasing an 
+  implementation as free software; others who receive the library can be 
+  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. 
 </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 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, included 
free replacements for all those dependencies; if we reached the goal, all our 
programs would be rescued. Thus it happened: with the GNU/Linux system, we can 
now run these programs on free platforms. 
+  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 
+  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, 
+  included free replacements for all those dependencies; if we reached the 
goal, 
+  all our programs would be rescued. Thus it happened: with the GNU/Linux 
system, 
+  we can now run these programs on free platforms. 
 </p>
 
 <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 
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. 
+  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 
+  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. 
 </p>
 
 <p>
-To keep your Java code safe from the Java Trap, install a free Java 
development environment and use it. More generally, whatever language you use, 
keep your eyes open, and check the free status of programs your code depends 
on. The easiest way to verify that program is free is by looking for it in the 
Free Software Directory (<a 
href="http://www.fsf.org/directory";>http://www.fsf.org/directory</a>). If a 
program is not in the directory, you can check its license(s) against the list 
of free software licenses (<a 
href="http://www.gnu.org/licenses/license-list.html";>http://www.gnu.org/licenses/license-list.html</a>).
 
+  To keep your Java code safe from the Java Trap, install a free Java 
development 
+  environment and use it. More generally, whatever language you use, keep your 
+  eyes open, and check the free status of programs your code depends on. The 
+  easiest way to verify that program is free is by looking for it in the Free 
+  Software Directory (<a href="http://www.fsf.org/directory";>
+    http://www.fsf.org/directory</a>). If a program is not in the directory, 
+  you can check its license(s) against the list of free software licenses 
+  (<a href="http://www.gnu.org/licenses/license-list.html";>
+    http://www.gnu.org/licenses/license-list.html</a>). 
 </p>
 
 <p>
-We are trying to rescue the trapped Java programs, so if you like the Java 
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 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.
+  We are trying to rescue the trapped Java programs, so if you like the Java 
+  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 
+  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.
 </p>
 
-
-
-
-
+<p>
 <hr />
+</p>
 
-
-<h4><a href="/philosophy/philosophy.html">Other Texts to Read</a></h4>
+<h4>
+<ul>
+  <li>
+    <a href="/philosophy/java-free.html">The Curious Incident of Sun in the 
Night-Time</a>
+    <br />
+  </li>
+  <li>
+    <a href="/philosophy/philosophy.html">Other Texts to Read</a>
+  </li>
+</ul>
+</h4>
 
 <!-- All pages on the GNU web server should have the section about    -->
 <!-- verbatim copying.  Please do NOT remove this without talking     -->
@@ -155,7 +251,7 @@
 </p>
 
 <p>
-Copyright (C) 2004 Richard Stallman
+Copyright &copy; 2004 Richard Stallman
 <br />
 Verbatim copying and distribution of this entire article is
 permitted in any medium without royalty provided this notice is 
@@ -165,7 +261,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2005/09/22 23:10:56 $ $Author: bfteam $
+$Date: 2006/05/29 11:08:42 $ $Author: ramprasadb $
 <!-- timestamp end -->
 </p>
 </div>
Index: www/philosophy/philosophy.html
diff -u www/philosophy/philosophy.html:1.185 
www/philosophy/philosophy.html:1.186
--- www/philosophy/philosophy.html:1.185        Sat May 20 12:28:01 2006
+++ www/philosophy/philosophy.html      Mon May 29 11:08:42 2006
@@ -173,10 +173,18 @@
   </li>
 </ul>
 
+<!--==========================================================================
+                         Laws and Issues
+===========================================================================-->
+
 <h4><a href="philosophy.html#TOCLaws"
        id="Laws">Laws and Issues</a></h4>
 
 <ul>
+
+  <li><a href="/philosophy/java-free.html">The Curious Incident of Sun in the 
Night-Time</a>, 
+    by Richard M. Stallman.</li>
+
   <li><a href="/philosophy/opposing-drm.html">Opposing Digital Rights 
Mismanagement</a>, 
     by Dr. Richard M. Stallman, answers a few common questions about DRM.</li>
 
@@ -956,7 +964,7 @@
 <p>
 Updated:
 <!-- timestamp start -->
-$Date: 2006/05/20 12:28:01 $ $Author: xavi_ $
+$Date: 2006/05/29 11:08:42 $ $Author: ramprasadb $
 <!-- timestamp end -->
 </p>
 </div>




reply via email to

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