RMS が昨今の Javascript に異議を申し立てたようです

The JavaScript Trap


RMS が言った問題点を大雑把にまとめると

non-free かつ nontrivial な Javascript を勝手に実行してしまうのは良くない。
しかしそれを完全に拒否したり free なものに置き換える術が現時点では無い。

ってところか。
ここで、nontrivial とは

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.

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.

と定義している。
いわゆるWeb2.0(笑)的な Javascript が該当しそうだ。
また、non-free とは Google Docs の例のくだりにある

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 real source code of this program is not available to the user.

このような事例も含むようだ。
まぁ Javascript の場合は転送があるから、大きくなってくると Golf 的 Short Coding が必要になるのはしょうがないよなぁ。
そういう場合は HTML のコメントに完全なソースおよびライセンスを示しておくことを最後で提案している。


現時点での解決策として、non-free かつ nontrivial な Javascript を実行しないためには NoScript、置き換えるためには Greasefire を挙げている。
しかし Greasefire のほうには致命的な欠点があるとし、その理由は

since it doesn't guarantee to modify the Javascript code in a page before that program starts to execute.

と言っている。
NoScript でページ側の Javascript を黙らせつつ、Greasemonkey script を走らせることは可能だと思うんだけど。。。?
それともページ側の一部の Javascript はそのまま使って、それ以外をオレオレコードに置き換えることを想定しているのか?
いやでも unsafeWindow を使えばそれも可能だと思うんだけど。
俺が何か勘違いしているのか。