パスワードを忘れた? アカウント作成
784518 story
プログラミング

「Guile Schemeは最良の拡張言語だ」という主張 27

ストーリー by hylom
しかし人気のほどは…… 部門より
danceman 曰く、

Schemeベースのプログラム言語の1つに、「GNU Guile」がある。Guileはアプリケーションの機能を拡張するためのスクリプト言語として開発されたものの、利用しているソフトウェアは少なく、現在ではPythonやJavaScriptなどが多く使われる状況だ。しかし、本家/.で「Guileは、ユーザーが少ないものの、GNUに最も適した拡張言語である」と主張する記事が話題となっている(本家/.記事)。

2011年のGNU Hackers Meetingにおいて、Guileのメンテナの1人であるAndy Wingo氏は自身のブログで、JavaScriptとの比較を行うことで「GNUソフトウェアの拡張目的で他のプログラミング言語を使用するのは間違っている」ことを説明している。

JavaScriptはWebブラウザ向けの言語であり、GNUソフトウェアとの関連性が低くく、POSIXのような一般的なプラットフォームでJavaScriptを利用した場合、GNUは本領を発揮することができないという。また、JavaScriptには変数のスコープに関する問題や乏しい数値モデル、動的な「this」のスコープ、モジュール化という概念の欠如などの問題があり、JavaScriptを使用するとコストがかかってしまうとのこと。

また、もしTclを公式言語に選択していたならば、今頃は利用不能なコードが山ほどあっただろうとも述べている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by ef (25263) on 2011年09月05日 19時36分 (#2014878)

    そんなに Guile が優れた拡張言語なら、
    GNU Emacs は今頃 Guile で実装されているでしょう。

    そう言われないようにガンバレ Guile-based Emacs http://www.mit.edu/~raeburn/guilemacs/ [mit.edu]

  • 今溜めてます (スコア:5, おもしろおかしい)

    by Anonymous Coward on 2011年09月05日 20時03分 (#2014892)

                    r,''ヘ_  
                  _,,,,_⊂-くノ`ヽ,
              _  〆_゙'ir''⌒"  )
             ξ⊂!  っ》`   く ∠___
             .''\ノ''''‐`` i、 ,ノ  │,-ヽ7=、、 ,,rー'"`-、
               \_゙l、,,,_,/i゙、 ,ノ 〈 ゛  `ヌ⌒ )/=i、 l     ←PythonやJavaScript
                     `゙゙'''"`'ミ--/-,_  ´ /"  `''
                            \ .,,、`lニン-゛
                          \__ノ

          ___
        _ ┐  /            
        / 'rlご ┥ .,,,、 
        |  |゙ `jエ |〈゙',) 
        ゙l,,,i´ /,/,ノ"r
       ,r㍉,ノ''こ!、,,┴.
       |  ‘''く′ ,/ │
      .r'ヘ,、  `'イ゙>'"
      .厂|,`'-,,  .|'ヽ、

    • by Anonymous Coward

      そこで溜めてるGuile, 俺のなんすよwwwwww

    • by Anonymous Coward

                         f ヽ.
               ______   .Y ',、
                  `ヽ.  ,L.,r'"´   .月 .}_,>
            _,ノ´ ̄` R´  j __ , -‐へ /
          ,r '"´r ⌒Y  lヽ`' ┘/.   `Y゙
          `ヽ, }>-く__,ノ ,、 '"´    /
           \ 勿、 '´  > ,  '"´
             「 \,>.'´ /
      .       \__   '´ |
              ':,     |
          __,.ィ T "⌒'    |
         レ'゙ 入    _ .ノ
          {'''''''|    ̄
      .   `¨´

    • by Anonymous Coward

      その組み合わせは最新作ではザンギ有利という説が・・・

  • また、もしTclを公式言語に選択していたならば、今頃は利用不能なコードが山ほどあっただろうとも述べている。

    これだけだと
    「Guile だって廃れるっつーか流行ってもいないんだから同じじゃん」
    と言いたくなりますが、元記事では

    Finally, we have the lifespan issue. If GNU had chosen Tcl because it was popular, we would have a mass of dead code. (You can like Tcl and still admit that we are past its prime.) Python is now, I think, at the height of its adoption curve, and beginning its descent. JavaScript is the next thing, and still on the uptick. But JavaScript will fall out of favor, and there will be a new paradigm, and a next language. The future of computing will not be the same as the present. So how will JavaScript adapt to these changes? We can't tell right now, but given the difficulty in changing simple things like making 010 parse as 10 and not 8 indicates that at some point it will stagnate. But Scheme will still be with us, because its parts are well thought-out, and because it is a language that is inherently more adaptable.

    最後に寿命の問題がある。人気だからといって GNU が Tcl を選んでいたなら、今頃デッドコードが大量にあっただろう。(Tcl が好きなことと、旬を過ぎているのを認めることとは別問題だ。) 今は Python が採用曲線のピークにあると思う。つまり下降を始める頃だ。JavaScript はその次なので、まだ上り調子にある。しかしいつか JavaScript も愛想を尽かされ、また新たなパラダイム、そして次の言語が出てくる。未来のコンピューティングは現在のコンピューティングと同じではないだろう。それで、JavaScript はこうした変化にどう適応するだろうか。今すぐにはわからないが、010 を 8 ではなく 10 と読ませるといった単純なことも難しいのであるから、どこかの時点で停滞するだろう。それでも Scheme は我々の味方であり続ける。Scheme は各部が考え抜かれているから、そして本質的に適応力の高い言語だからだ。

    と書いてあるように、流行り廃りの問題ではなく
    「どんなパラダイムシフトにも生き残るもんね」という意味なんですね。

    • Javascriptが廃れるとしたら、ハイパーテキストによるWebの終焉か、他の言語がWeb用言語にとってかわる以外のシナリオが思い浮かばないのだけど、それを危惧してるのか?
      しぶとく生き残ると思うのだけど。

      # ただし、10年後は面影はあるものの同じ言語とは思えない感じになっている気はする

      --
      1を聞いて0を知れ!
      親コメント
  • by Anonymous Coward on 2011年09月05日 19時21分 (#2014861)

    「GNUに」最も適した拡張言語なんでしょ?

  • by Anonymous Coward on 2011年09月05日 19時54分 (#2014889)

    CommonLispやLisp1.xが大好きだとschemerの攻撃的性格ゆえにschemeが好きになれないと感じるACです
    黒板大好きな黒田さんとかの意見みたいな方向でschemeを攻撃する意図は無いのだけどなんで同族系言語でああもやりあうんだかさっぱりです。

    #Shiroさんみたいな人ばっかりならscheme好きになれるのにorz
    #白黒つけろっていみじゃないよ!

    • by Anonymous Coward

      黒板大好きな黒田さんとかの意見みたいな方向でschemeを攻撃する意図は無いのだけどなんで同族系言語でああもやりあうんだかさっぱりです。

      同族だからと言って仲良くする必要もないと思うが。CやC++、Java、Javascriptなどのコミュニティ間でも多かれ少なかれ、似た様なものだろう。ただ、Schemeは実用よりも思想に走っている部分があるので、攻撃的な人が多い気はする。

      自分はSchemeが好きだけど、CLは用途がC++と近いし、C++でお腹いっぱいなのに仕様が大きいので覚える気がない。

      • by Anonymous Coward

        CやC++、Java、Javascriptなどのコミュニティ間でも多かれ少なかれ、似た様なものだろう。

        JavaScriptは本質的にはLISP寄りの言語ですよ。
        # というと、コアなLISPerには受け入れて貰えない。

    • by Anonymous Coward

      自分の観測範囲(comp.lang.schemeとか使ってる実装(Gambit-C)のMLとか)ではSchemerがCL等他の言語に対して攻撃的っていうのはピンとこない。
      まさに黒田さんとShiroさんのやりとりのようなCLerがSchemeを攻撃している例はいくつか見たことがあるけど…
      2chとかtwitterとかであるのかな。

    • by Anonymous Coward

      どう見てもLisperを自称するあなたがschemerに喧嘩売ってますよね。

  • by Anonymous Coward on 2011年09月05日 20時06分 (#2014896)
    こそばゆい。
    • by Anonymous Coward

      たぶんいまだに「ひくくく」に気づいてないと思われる。
      いや気づいててほったらかしてるだけかもしれないけど。

  • by Anonymous Coward on 2011年09月05日 22時31分 (#2014976)

    JavaScriptなどの欠陥言語と比較しない方がいいんじゃないかな。
    (JavaScript好きでもThe good parts読んだ人なら意味はわかるはず)

    • 本家の議論では 同様な問題点をもつ Lua 支持もあるので、 言語自体の良し悪し以外のところで 支持が決まっているのではないかと思います。 流行り廃りとか、慣れとかなのでしょうか。

      Guile 2 系だと、EMCAScript (JavaScript) も実はサポートしています。 とはいえマニュアル http://www.gnu.org/software/guile/manual/html_node/ECMAScript.html [gnu.org] には、 次のような楽しい記述が……。

      ECMAScript was not the first non-Schemey language implemented by Guile, but it was the first implemented for Guile's bytecode compiler. The goal was to support ECMAScript version 3.1, a relatively small language, but the implementor was completely irresponsible and got distracted by other things before finishing the standard library, and even some bits of the syntax. So, ECMAScript does deserve a mention in the manual, but it doesn't deserve an endorsement until its implementation is completed, perhaps by some more responsible hacker.

      その他に Emacs Lisp が使えます。Lua のサポートは、準備段階です。

      親コメント
typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...