[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
www/philosophy javascript-trap.html
From: |
John Sullivan |
Subject: |
www/philosophy javascript-trap.html |
Date: |
Mon, 30 Mar 2009 14:53:14 +0000 |
CVSROOT: /web/www
Module name: www
Changes by: John Sullivan <johnsu01> 09/03/30 14:53:14
Modified files:
philosophy : javascript-trap.html
Log message:
Fix spelling, closes RT#424207.
CVSWeb URLs:
http://web.cvs.savannah.gnu.org/viewcvs/www/philosophy/javascript-trap.html?cvsroot=www&r1=1.11&r2=1.12
Patches:
Index: javascript-trap.html
===================================================================
RCS file: /web/www/www/philosophy/javascript-trap.html,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- javascript-trap.html 29 Mar 2009 01:25:06 -0000 1.11
+++ javascript-trap.html 30 Mar 2009 14:53:10 -0000 1.12
@@ -1,8 +1,8 @@
<!--#include virtual="/server/header.html" -->
-<title>The Javascript Trap</title>
+<title>The JavaScript Trap</title>
<!--#include virtual="/server/banner.html" -->
-<h2>The Javascript Trap</h2>
+<h2>The JavaScript Trap</h2>
<p>by <a href="http://www.stallman.org/">Richard Stallman</a></p>
@@ -18,33 +18,33 @@
<p>But browsers run other non-free programs which they don't ask you
about or even tell you about—programs that web pages contain or
-link to. These programs are most often written in Javascript, though
+link to. These programs are most often written in JavaScript, though
other languages are also used.</p>
-<p>Javascript (officially called ECMAscript, but few use that name) was
+<p>JavaScript (officially called ECMAscript, but few use that name) was
once used for minor frills in web pages, such as cute but inessential
navigation and display features. It was acceptable to consider these
as mere extensions of HTML markup, rather than as true software; they
did not constitute a significant issue.</p>
-<p>Many sites still use Javascript that way, but some use it for major
+<p>Many sites still use JavaScript that way, but some use it for major
programs that do large jobs. For instance, Google Docs downloads into
-your machine a Javascript program which measures half a megabyte, in a
+your machine a JavaScript program which measures half a megabyte, in a
compacted form that we could call Obfuscript because it has no
comments and hardly any whitespace, and the method names are one
letter long. The source code of a program is the preferred form for
modifying it; the compacted code is not source code, and the real
source code of this program is not available to the user.</p>
-<p>Browsers don't normally tell you when they load Javascript programs.
-Most browsers have a way to turn off Javascript entirely, but none of
-them can check for Javascript programs that are nontrivial and
+<p>Browsers don't normally tell you when they load JavaScript programs.
+Most browsers have a way to turn off JavaScript entirely, but none of
+them can check for JavaScript programs that are nontrivial and
non-free. Even if you're aware of this issue, it would take you
considerable trouble to identify and then block those programs.
However, even in the free software community most users are not aware
of this issue; the browsers' silence tends to conceal it.</p>
-<p>It is possible to release a Javascript program as free software, by
+<p>It is possible to release a JavaScript program as free software, by
distributing the source code under a free software license. But even
if the program's source is available, there is no easy way to run your
modified version instead of the original. Current free browsers do
@@ -52,9 +52,9 @@
one delivered in the page. The effect is comparable to tivoization,
although not quite so hard to overcome.</p>
-<p>Javascript is not the only language web sites use for programs sent to
+<p>JavaScript is not the only language web sites use for programs sent to
the user. Flash supports programming through an extended variant of
-Javascript. We will need to study the issue of Flash to make suitable
+JavaScript. We will need to study the issue of Flash to make suitable
recommendations. Silverlight seems likely to create a problem similar
to Flash, except worse, since Microsoft uses it as a platform for
non-free codecs. A free replacement for Silverlight does not do the job
@@ -69,8 +69,8 @@
communicate only through formats and protocols that are free (some say
"open"); that is to say, whose documentation is published and which
anyone is free to implement. With the presence of programs in web
-pages, that criterion is necessary, but not sufficient. Javascript
-itself, as a format, is free, and use of Javascript in a web site is
+pages, that criterion is necessary, but not sufficient. JavaScript
+itself, as a format, is free, and use of JavaScript in a web site is
not necessarily bad. However, as we've seen above, it also isn't
necessarily ok. When the site transmits a program to the user, it is
not enough for the program to be written in a documented and
@@ -92,54 +92,54 @@
server issue separately.</p>
<p>In practical terms, how can we deal with the problem of non-free
-Javascript programs in web sites? Here's a plan of action.</p>
+JavaScript programs in web sites? Here's a plan of action.</p>
-<p>First, we need a practical criterion for nontrivial Javascript
+<p>First, we need a practical criterion for nontrivial JavaScript
programs. Since "nontrivial" is a matter of degree, this is
a matter of designing a simple criterion that gives good results,
rather than determining the one correct answer.</p>
-<p>Our proposal is to consider a Javascript program nontrivial if it
+<p>Our proposal is to consider a JavaScript program nontrivial if it
defines methods and either loads an external script or is loaded as
one, or if it makes an AJAX request.</p>
<p>At the end of this article we propose a convention by which a
-nontrivial Javascript program in a web page can state the URL where
+nontrivial JavaScript program in a web page can state the URL where
its source code is located, and can state its license too, using
stylized comments.</p>
<p>Finally, we need to change free browsers to support freedom for
-users of pages with Javascript. First of all, browsers should be able
-to tell the user about nontrivial non-free Javascript programs, rather
+users of pages with JavaScript. First of all, browsers should be able
+to tell the user about nontrivial non-free JavaScript programs, rather
than running them.
Perhaps <a
href="https://addons.mozilla.org/en-US/firefox/addon/722">NoScript</a>
could be adapted to do this.</p>
-<p>Browser users also need a convenient facility to specify Javascript
-code to use <em>instead</em> of the Javascript in a certain page.
+<p>Browser users also need a convenient facility to specify JavaScript
+code to use <em>instead</em> of the JavaScript in a certain page.
(The specified code might be total replacement, or a modified version
-of the free Javascript program in that page.) Greasemonkey comes close
+of the free JavaScript program in that page.) Greasemonkey comes close
to being able to do this, but not quite, since it doesn't guarantee to
-modify the Javascript code in a page before that program starts to
+modify the JavaScript code in a page before that program starts to
execute. Using a local proxy works, but is too inconvenient now to be
a real solution. We need to construct a solution that is reliable and
convenient, as well as sites for sharing changes. The GNU Project
would like to recommend sites which are dedicated to free changes
only.</p>
-<p>These features will make it possible for a Javascript program included
-in a web page to be free in a real and practical sense. Javascript
+<p>These features will make it possible for a JavaScript program included
+in a web page to be free in a real and practical sense. JavaScript
will no longer be a particular obstacle to our freedom—no more than
C and Java are now. We will be able to reject and even replace the
-non-free nontrivial Javascript programs, just as we reject and replace
+non-free nontrivial JavaScript programs, just as we reject and replace
non-free packages that are offered for installation in the usual way.
-Our campaign for web sites to free their Javascript can then begin.</p>
+Our campaign for web sites to free their JavaScript can then begin.</p>
<p><strong>Thank you to <a href="/people/people.html#mattlee">Matt Lee</a>
and <a href="http://ejohn.org">John Resig</a> for their help in
defining our proposed criterion.</strong></p>
-<h3>Appendix: a convention for releasing free Javascript programs</h3>
+<h3>Appendix: a convention for releasing free JavaScript programs</h3>
<p>For references to corresponding source code, we recommend</p>
<pre>
@@ -150,15 +150,15 @@
<p>followed by the URL.</p>
-<p>To indicate the license of the Javascript code embedded in a page, we
+<p>To indicate the license of the JavaScript code embedded in a page, we
recommend putting the license notice between two notes of this form:</p>
<pre>
@licstart The following is the entire license notice for the
- Javascript code in this page.
+ JavaScript code in this page.
...
@licend The above is the entire license notice
- for the Javascript code in this page.
+ for the JavaScript code in this page.
</pre>
<p>Of course, all of this should be contained in a multiline comment.</p>
@@ -166,14 +166,14 @@
<p>The <a href="/licenses/gpl.html">GNU GPL</a>, like many other free
software licenses, requires distribution of a copy of the license with
both source and binary forms of the program. However, the GNU GPL is
-long enough that including it in a page with a Javascript program can
+long enough that including it in a page with a JavaScript program can
be inconvenient. You can remove that requirement, for code that you
have the copyright on, with a license notice like this:</p>
<pre>
Copyright (C) YYYY Developer
- The Javascript code in this page is free software: you can
+ The JavaScript code in this page is free software: you can
redistribute it and/or modify it under the terms of the GNU
General Public License (GNU GPL) as published by the Free Software
Foundation, either version 3 of the License, or (at your option)
@@ -222,7 +222,7 @@
<p>
Updated:
<!-- timestamp start -->
-$Date: 2009/03/29 01:25:06 $
+$Date: 2009/03/30 14:53:10 $
<!-- timestamp end -->
</p>
</div>
- www/philosophy javascript-trap.html, (continued)
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/22
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/22
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/22
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/22
- www/philosophy javascript-trap.html, Karl Berry, 2009/03/22
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/22
- www/philosophy javascript-trap.html, Yavor Doganov, 2009/03/23
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/23
- www/philosophy javascript-trap.html, Matt Lee, 2009/03/23
- www/philosophy javascript-trap.html, Richard M. Stallman, 2009/03/28
- www/philosophy javascript-trap.html,
John Sullivan <=