パスワードを忘れた? アカウント作成
75723 story
ソフトウェア

Richard M. Stallman、JavaScriptに吼える 90

ストーリー by hayakawa
自由を、この手に。 部門より

あるAnonymous Coward 曰く、

GNUのページ内にある「Philosophy of the GNU Project」というコンテンツにて、Richard M. Stallmanが書いた「The Javascript Trap」という記事が公開されている

この記事によると、JavaScriptには下記のような問題があるとのこと。

  • JavaScriptは非フリーなプログラムを、ブラウザを通じて勝手に実行する可能性がある
  • 一部のサイトはソースコードの難読化を行っているため、その真のソースコードを読むことはできない
  • フリーソフトウェアとしてJavaScriptコードをリリースすることは可能だが、実行されているコードを(動的に)置き換えることはできない

「あるサイトで使われているJavaScriptに問題があった場合にそれを修正したり、また改良を行ったとしても、その修正版/改良版はそのサイトの管理者が採用してくれない限り利用できない。これは、自由を侵害するものだ」という主張のようだ。

なお、同記事のAppendixとして、JavaScriptコードをGPLで配布する方法が紹介されている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • The Javascript Trap? (スコア:3, おもしろおかしい)

    by Anonymous Coward on 2009年03月24日 15時25分 (#1536968)
    待て。あわてるな。これはストールマンの罠(The Stallman Trap)だ。 釣られたら負けだ。
  • 勝手に実行 (スコア:2, すばらしい洞察)

    by motamota (30138) on 2009年03月24日 14時59分 (#1536946)

    JavaScriptは非フリーなプログラムを、ブラウザを通じて勝手に実行する可能性がある

    実行に関してはフリーでしょうから実害はないと思うのですが。

    イスラムやヒンドゥーの人が豚肉や牛肉を勝手に食べさせられて怒っているかのようだ、とか書くとフレームの元かな?

    • by nmaeda (5111) on 2009年03月24日 16時01分 (#1536998)

      さすがに勝手に実行する行為と、実行がフリーはまったく別の問題でしょう。

      ユーザが認識していないソフトウェアが勝手に実行されるなら、自由に実行できるとは云えない。勝手にということは、他人の意思ということなのだから。もちろん、危険かもしれない。
      (フリーは、無料だけでなく、自由って意味でもありますよ)

      親コメント
    • Re:勝手に実行 (スコア:2, すばらしい洞察)

      by Anonymous Coward on 2009年03月24日 15時31分 (#1536972)

      >> 実行に関してはフリーでしょうから実害はないと思うのですが。

      「実害がない」なんて論理が御大に通じるわけないじゃないですか.

      親コメント
    • Re:勝手に実行 (スコア:2, おもしろおかしい)

      by akusekuakuseku (37786) on 2009年03月24日 16時03分 (#1537003) 日記

      Stallmanは,フリーなプログラムが勝手に実行されたら
      じんましんでも出たり,悲鳴をあげたりするんですかねえ.

      「ギャー!,難読化されたJavaScriptで書かれたプログラムが
       勝手にワシのPCを荒らしやがった.うーっ,かゆいぜ!」

      とか言ってみたり.

      親コメント
      • by renja (12958) on 2009年03月25日 7時38分 (#1537445) 日記

        「ギャー!難読化されたJavaScriptで書かれたプログラムが
         勝手にワシのPCをナオンの楽園に接続し、神秘の宇宙の向こうから深淵の悪魔を導いたのだ!
         これは某国による陰謀、すなわち情報操作なのジャヨー!! ギャワー!」

        #絶対違う

        --

        ψアレゲな事を真面目にやることこそアレゲだと思う。
        親コメント
    • by Anonymous Coward on 2009年03月24日 16時43分 (#1537030)

      「実行に関しては…」というのは見当違いだと思いますが、

      イスラムやヒンドゥーの人が豚肉や牛肉を勝手に食べさせられて怒っているかのようだ、

      という喩えはうまいかも。どちらかというと
      「普段の食事にも知らず知らずのうちに豚肉・牛肉が紛れ込んでいるから気をつけよう」
      とか
      「豚肉・牛肉の代替品を開発しよう」
      と呼びかけている文書だと思いますよ。

      あ、でも宗教と食肉の関係はよく知らないので間違っているかも。

      親コメント
  • by moca (33770) on 2009年03月24日 18時56分 (#1537095) 日記
    はてなスターが重いのを改良する記事を思い出した。
    はてなブックマークのコンテンツの JavaScript を高速化する - IT戦記 [hatena.ne.jp]
    JavaScriptが動的生成(JSONPとかそういうの)でない場合は、これの開発時みたいにプロキシで置き換えれば一応自分の好きなように置き換えられると思う。
    難読化とかJava、Flashなどでできていたら、こういうことはとても無理なので、
    「弄り安いようにしておくべき」というのは、利便性の上で賛成。
  • by ef (25263) on 2009年03月24日 21時44分 (#1537220)
    JavScriptが彼の愛する Lisp に見た目より似ていることが背景にあるんじゃないでしょうか?
    きっと Lisp スクリプトを評価するブラウザを彼は望んでいるんですよ。

    #Lispで書かれたウェブサーバもあるので、すでに存在するのかも。
  • by rin_penguin (9144) on 2009年03月24日 15時17分 (#1536962)

    サイト管理者側にも修正版や改良版を採用する/しない自由があると思うのだけれど。
    「それはオレの自由を侵害するから却下」なのか?

    • by kyle (3923) on 2009年03月24日 15時36分 (#1536978) 日記

      そうじゃないでしょ。それをクライアント側で持っておいて、
      俺はそっちを使うぜ、みたいな機構がとれないのが問題だ、
      と言ってるんでしょ。

      プロトコルが決まってる普通のクライアント・サーバじゃなくて、
      コードが勝手に飛んできて勝手に実行されるわけだから、
      すっかり慣れちゃってるけど、あらためて考えると、
      気持ち悪いっちゃ気持ち悪い。

      親コメント
    • Re:自由の侵害 (スコア:2, 参考になる)

      by Anonymous Coward on 2009年03月24日 15時38分 (#1536981)

      サイト管理者が選んだプログラムが、クライアント側(エンドユーザ側)で動作するから問題なんでしょう。
      JavaScriptを丸ごとoffにするのでない限り、特に何の許諾も求めず勝手にクライアントにインストールされて実行される。

      RMSは、JavaScriptのみならず、Flash/ActionScriptやSilverlight、ひいてはJava AppletのようなApplet型の実行環境も、総じて許可なくプログラムを実行してしまうので問題だ、と言っているようです。

      # 個人的には「どうでもいいじゃん」と思ってますが。
      # 飽くまで、「free software以外絶対使わない!」っていう教条を遵守したい方たちにとってのみの問題かと。

      親コメント
      • Re:自由の侵害 (スコア:1, すばらしい洞察)

        by Anonymous Coward on 2009年03月25日 0時16分 (#1537326)

        RMSは、JavaScriptのみならず、Flash/ActionScriptやSilverlight、ひいてはJava AppletのようなApplet型の実行環境も、総じて許可なくプログラムを実行してしまうので問題だ、と言っているようです。

        アパートや賃貸マンションの入居者が友達を呼んでパーティしているようなものでしょうか。
        呼んだ人によっては真夜中まで大騒ぎすることもあります。
        IEさんは勝手に部屋の又貸しして合鍵を渡すので困っています。

        親コメント
        • by Stealth (5277) on 2009年03月25日 16時41分 (#1537760)

          クライアント向け Windows でもグループポリシーで許可したアドイン以外使わせない、ファイルのダウンロードを許可しない (ファイルダウンロードのダイアログを出さない)、といったカスタマイズが可能ですし、サーバ向け Windows (Server 2008) なんかでは標準設定でファイルのダウンロードすら禁止になっていますよ。
          あなたが言っている IE さんって、実は Firefox さんとか Safari さんって名前だったりしませんか?

          # 問題のレポートと解決策で「ドライバをダウンロードしろ」とか、標準のままじゃドライバのダウンロードもできねーよ。

          親コメント
    • by Anonymous Coward on 2009年03月24日 15時52分 (#1536993)

      > サイト管理者側にも修正版や改良版を採用する/しない自由があると思うのだけれど。

      もちろん。元のソースのライセンスでそれがOKであるか、サイト管理者自身がライセンスを持っていればそういう自由があるし、それを他人がどうこう出来るものでもない。
      ストールマンがプロプライエタリなソフトを批判するのは彼の信条に基づくもので、いわばポジショントークなわけ。ライセンスの縛りを受けない限り (例えばGPLコードを利用する、などしない限り)、あなたがどんなコードをどう使おうが自由だし、ストールマンが強制的にその自由を奪うことは出来ない。だからあなたの自由な全く侵害されていない。
      ストールマンには彼の理想とする社会像があるから、言論によってそっちの方向へ誘導しようとする。もしあなたがそれをよしとしないなら、あなたは反対意見を述べればいい。誰もあなたがそうすることを妨げない。これが言論の自由ね。

      あなたがそうだ、というのではないんだけれど、GPLがらみの話になると、どうも批判されただけで「自由を侵害されているのではないか」という気分になる人がいるらしいので書いてみた。それぞれの立場の人間が、自分の立場を有利にするためにポジショントークをかますのは普通のことであって、それにいちいち感情的に反発してたんじゃ議論にならないよ。

      親コメント
      • by Stealth (5277) on 2009年03月25日 16時45分 (#1537765)

        もちろん。元のソースのライセンスでそれがOKであるか、サイト管理者自身がライセンスを持っていればそういう自由があるし、それを他人がどうこう出来るものでもない。

        サイト管理者が持っている (可能性がある) のはライセンスじゃなくて著作権じゃないのかと……。
        大半の JavaScript のコードには、そもそも再利用どうこう以前にライセンスに関する記述がないと思います。というか Copyright の明示すらもないでしょ。

        親コメント
    • Re:自由の侵害 (スコア:2, 参考になる)

      by iwa (2980) on 2009年03月25日 12時02分 (#1537540)

      どこにぶらさげようかと思ったけど、とりあえずココで。

      RMSの言う「自由」は、「ソフトウェアを提供する側」にとっての「自由」ではなくて、「ソフトウェアを利用する側」にとっての「自由」なので、そんなこと言ってもそもそもピントがずれてます。

      何故RMSがそこに固執するかについては、RMSがフリーソフトウェア運動を始めたきっかけ(Gosling Emacsの件ね)を調べればわかるはずです。

      親コメント
      • by Stealth (5277) on 2009年03月25日 17時21分 (#1537793)

        Flash とか Silverlight とかのファイルって Excel のマクロ有効ブックとかとなんら差がない (つまりそれ自体は実行するアプリケーション/ソフトウェアではなく単なるデータファイルでしかない) と思うのですが、どの辺りに「ソフトウェアを利用する側」にとっての「自由」が影響するんでしょうね?

        JavaScript の難読化とかも、正直「いや、このコーディングじゃ……」っていう C のコードとか言ってるのと大差ないようにしか思えないですし。むかーしの「BASIC じゃ遅いから実体は全部マシン語でコードは DATA 文にある 16 進数の中」とかいうコードとどれだけ差があるのかと。

        # あんまり追及すると .exe も「そのプラットフォームに合わせたデータファイルだろう」とか言える気がするのですが。

        親コメント
  • いや、気持ちはなんとなく分る気がしますが
    # 英語原文読みたいけど...時間なし

    * JavaScriptは非フリーなプログラムを、ブラウザを通じて勝手に実行する可能性がある
    これは実行するプログラムを自己管理できるか、ひいてはそれが自由なソフトウェアであ
    るかってことでJavaScriptじゃなくても発生しうるかなーと

    * 一部のサイトはソースコードの難読化を行っているため、その真のソースコードを読むことはできない
    これもJavaScriptが主因ではないですよね。しいていえばスクリプト(非コンパイル)言語
    の実行ファイル=ソースファイルが閲覧可能な箇所に置かれた場合かつそれが置いた人が
    なるべく隠蔽したい場合に発生します。
    コンパイルできると、そもそもバイナリ(というかなんというか)になるので、読めないひ
    とにはトコトン読めない気がw

    あと、プログラム言語ですから、がんばれば閲覧しやすくはできるはず。
    # 限度がありましょうが...

    * フリーソフトウェアとしてJavaScriptコードをリリースすることは可能だが、実行され
    ているコードを(動的に)置き換えることはできない
    これはまあ最初のに絡む点もありますが、放置サーバとかも同じようなもんじゃないかな?と
    か...
    # 危険なサービスサイト(JavaScriptのあるなしに関係なく)、は利用しちゃあかんよね。

    「あるサイトで使われているJavaScriptに問題があった場合にそれを修正したり、また改
        良を行ったとしても、その修正版/改良版はそのサイトの管理者が採用してくれない限
        り利用できない。これは、自由を侵害するものだ」という主張のようだ。

    これも最初のに関係し、あと自由なソフトウェアを維持している意味に関係するんだろう
    なと思います
    # そーいう意味でサーバサイドとGNUって相性わるいのかな?

    自分でプログラムを動かす場合、まず動かすかどうかの決定権が自分にあり
    ソフトが自由であると、安全なプログラムかの確認も、不具合の修正や改良
    (とそれによるソフト技術の発展)がある、ってことかな。

    翻ってサーバだと、自分で決定できないですもんね。
    ただ、これがプロトコル越しならサービスのみを受けるからいいけど、(今のメインの)
    JavaScriptはプログラムを流しこまれるからねぇ...そら文句は出ますやね。

    ただまあ、サンドボックスがしっかりしてれば(という前提は難しいけど)
    直接ソフトが実行される(ことでサービスを受ける)か、(Webとかさらには現実の他の)サー
    ビスを受けるかの違いなんで、それはそれでアリという気も

    # 少なくともJavaScriptだけじゃないよなぁ...
    # と冒頭と同じ意味でシメ

    --
    M-FalconSky (暑いか寒い)
    • by 90 (35300) on 2009年03月24日 17時26分 (#1537058) 日記

      自分でプログラムを動かす場合、まず動かすかどうかの決定権が自分にあり
      ソフトが自由であると、安全なプログラムかの確認も、不具合の修正や改良
      (とそれによるソフト技術の発展)がある、ってことかな。

      ここが問題なんですよ。ウェブページ、つまりテキスト文書を見てるだけのつもりなのに非フリーなソフトウェアをダウンロードして実行してしまっている可能性が出てくる、しかもGPLをわりとうまく避けられるってところがまずいんです。安全性とか管理者権限がどうとかじゃないです。おそらく最近ページ埋め込み型のネイティブコードなんて話が出てることから、新しいTivo化形態を生み出したくないというのがこの話の元ネタだと思います。GPLはサーバサイドアプリには適用されませんし、難読化されてても元々がスクリプト言語なJSコードは「元ソース」と主張される恐れがありますから。

      親コメント
      • 了解です。

        やっぱそういう所は大事ですよね。

        ...ただJavaScriptが我が世とはいえ、他の言語がないわけじゃないんで、ちょっと違和感がありました。

        # あと、純粋にネイティブコードオンリーなGPLソフト(バイナリを生書きしたもの)とかをだれか出したら、RMSは一言言ってくれるかなぁw

        まあ、読みやすいコードには大賛成です。
        あとはユーザーの管理能力、ソース改変環境の構築ですね。
        # これもFirefox拡張とかがんばれば不可能でもないのかもしれない...と可能性を信じますかね

        --
        M-FalconSky (暑いか寒い)
        親コメント
    • 貴殿の仰ることは、ごもっともです。
      ただ、RMS氏は、以下のような思想の持ち主ですから。

      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.

      つまり、ソースコードというものは、修正するための適した形でないといかんと。
      極端に言えば、ユーザに読んでもらえるソースコードを書け、ということです。

      親コメント
  • by Anonymous Coward on 2009年03月24日 15時56分 (#1536995)

    ASPでも同じことは言えないのか?
    >JavaScriptは非フリーなプログラムを、ブラウザを通じて勝手に実行する可能性がある
    非フリーなライブラリを使えば同じだよな?

    >一部のサイトはソースコードの難読化を行っているため、その真のソースコードを読むことはできない
    そもそも読めるようになってないよな?ASPとか。

    >フリーソフトウェアとしてJavaScriptコードをリリースすることは可能だが、実行されているコードを(動的に)置き換えることはできない
    出来てたまるか馬鹿。
    グローバルで参照できるところにスクリプトファイルを置き、さらに動作検証をお前がする前提なら・・・やはりいやづら

  • by kicchy (4711) on 2009年03月24日 15時59分 (#1536996)

    GPLじゃない、HTMLについてはかみつかなくていいのかな?

  • 技術とその活用方法について、
    修正や改良という概念が追いついていないのでは?
    と、思ったりします。

    自分のやっている事が永遠に正しいと、
    そんな風になってしまったら、
    自分からの自由を失ってしまった状態と、
    考えてよいうのではないでしょうか?
    --
    -- LightSpeed-J
    • Re:視点が... (スコア:1, 興味深い)

      by Anonymous Coward on 2009年03月25日 2時39分 (#1537407)

      >修正や改良という概念が追いついていないのでは?

      「追いついてない」とは誰の事を指して言ってるんですか?まさかRMS?それはないですよね?

      RMSが言う「自由」は修正や改良に対する(理論上)無限の可能性を提示する道具です。
      たぶんその手の道具の中では最強でしょう。
      なんせ「まるごと誰かの手にゆだねるのをいつでもOKする」
      しかも「特定の誰かというわけじゃなく複数の陣営が同時に別々に改良するのも全然OK」
      といってるんですから、
      その改良の可能性はぶっちゃけ人類の能力の可能性そのものとイコールです。

      今回問題になってるような昨今のWebアプリをRMS的自由に照らして考えれば、
      自由を「多少(結構?)犠牲にして」そのぶん鯖サイドでごちゃごちゃやる事を優先してる、といった位置づけでしょう。

      こまかくいえば恐らく、「鯖サイドでごちゃごちゃ」は「アジャイル」みたいな状況を指すことになると思います。
      あれって結局のところソフト改変に関わる人の数を制限するほうが「迅速に」改良できるよねというスタンス。

      それはFirstHit作戦でありBestHit作戦ではないんですよね。
      長期的には全ての人類に晒すほうが最終的な発展力は上だろという自由ソフトの考えかたとは少なくとも方向性が違います。

      じゃあどっちを優先するんだ?となると、
      鯖サイド大好き陣営(誰だ?)とRMS派とは反りが合わないという状況なのでしょう。

      …まあねえ、なんといいますか、
      私もキイハナですが初代のWikiはWikiコンテンツ自体が(Perlによる)Wikiエンジンそのものだったそうですね。
      それと同じことをやれば原理的には「Webアプリでありかつ自由なソフト」になる可能性も有るかなと思います。
      ものすごく難しそうではありますが。

      親コメント
  • 難読化、がどういったものを指しているのか判りませんが、JavaScript高速化のテクニックとして「無駄なスペースや改行を消す」「ファイルサイズを縮小する」というのは普通に行われているのではないでしょうか。

    たとえば、/.Jで使われているJavaScriptの一部に

    function toggle_loginform() {
        obj = document.getElementById("loginform");
        visible = (obj.style.height == "" || obj.style.height == "0pt") ? false : true;
        if (visible) {
            obj.style.height = "0pt";
            document.getElementById("loginlink").className = 'collapsed';
        } else {
            obj.style.height = '39px';
            document.getElementById("loginlink").className = 'expanded';
        }
    }

    こんなのがありますが、これを、

    function t(){o=document.getElementById("loginform");visible=(o.style.height==""||o.style.height=="0pt")?false:true;if(visible){o.style.height="0pt";document.getElementById("loginlink").className='collapsed';}else{o.style.height='39px';document.getElementById("loginlink").className='expanded';}}

    としてしまったら、それはNGなのでしょうかね?
    確かにソースコードとしての可読性はかなり落ちますが、だから全て悪いかというとそうではないわけで・・・。(前述の用にパフォーマンス面で)
    --
    神社でC#.NET
  • 前にもストーリーがありましたし、今回も指摘している方がいらっしゃいますが、
    いわゆるFSFの提唱する「フリーソフトウェア」という概念と、現在のWebサービス
    (Webアプリとも言う?)が、根本的な部分で相性が悪いんじゃないかと思います。
    # それが悪いのかどうかはさておき

    特にJavascriptやFlashなんかは、アプリケーションであると同時に(場合によってはそれ以上に)
    コンテンツとしての性質を持っているので、いわゆるソフトウェアとして考えるだけでは、
    無理が出てくるんではないかと思います。

    GNU GPLによるフリーソフトウェア運動を推進するような場合、おそらくGNU FDLやCCと
    複合させたようなライセンス形態が必要になってくるんじゃないかなぁ、と思います。
    # まぁ、なかなか難しそうではありますが(苦笑)

  • by Anonymous Coward on 2009年03月24日 14時47分 (#1536940)

    なにこれ。with a license notice like this:の後に書かれている文章を書けばいいんだと思うんだけど、
    下の方に、このワークはCC-ND 3.0 USでライセンスされてるって書いてあるじゃん。

    統一しろよ。

  • by Anonymous Coward on 2009年03月24日 14時50分 (#1536942)

    さあ、日本語に翻訳して、八田さんのように有名になろう!

  • by Anonymous Coward on 2009年03月24日 15時06分 (#1536951)

    一般人は自分が使っているソフトがフリーソフトであるかどうかなんて気にしないと思うんだ。
    また、ソフトの難読化なんぞも気にする提供者も使用者も少ないと思うんだ。

    そもそも、サービスの提供を行っているJavaScriptがフリーソフトであって嬉しくそうで無いと不味いと思うのは、
    極々一部の特殊な心情を持っている人だけだと思うんだ。

    #自分の理念を大切にするのは良い。
    #けど、その利点を固持するのでなく他者を貶める事で自分等の主張の根拠とする様になるとオシマイだよ。

    • by Anonymous Coward
      いやー、あるものモノを見てまずそれが
      タダか否か
      だけでワーワー騒ぐ人、星の数ほどいると思うけど
      #ここ10年くらいで指数関数的に増えているような

      御大とはもちろん違いますけど
  • なんというか (スコア:0, すばらしい洞察)

    by Anonymous Coward on 2009年03月24日 15時07分 (#1536952)

    あったまおかしいじゃねーの?

    としか感想が出てこない…
    全部使い方の問題で言語の問題じゃないだろ…

    • Re:なんというか (スコア:3, 参考になる)

      by kyle (3923) on 2009年03月24日 15時45分 (#1536985) 日記

      サブジェクトには "JavaScript" とありますが、
      本文中では Flash, Silverlight, Java アプレット等、
      サーバからダウンロードされてクライアントサイドで
      実行されるコード全般について問題にしてますよ。
      まさに「使い方」を問題にしてる。言語の問題じゃない。

      親コメント
  • by Anonymous Coward on 2009年03月24日 15時20分 (#1536964)

    んじゃ全部Emacs Lispで置き換えるか?w
    それともGuileか?w

typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...