のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,875人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    元スレ【熱く】お前のEmacsにはまった理由【語れ】

    emacs覧 / PC版 /
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter

    352 = :

    動的スコープだって現状じゃ大した問題にもなってないよ。
    厳密なこと言ったら気持ち悪い部分もあるかもしれないし、
    超巨大な機能拡張を lisp レベルでやろうとする際に問題に
    ならなくもないわけじゃないが、そういうのはエディタでやることじゃないだろう。
    それよりこの程度のことを覚えるのが面倒なんていってたら
    何にも実用的なことはできないんじゃないの。

    353 = :

    お,煽り以外のレスがついてる.せっかくだから書かせてもらいます.

    Emacs を全然知らないというわけではないんです.今このレスも Emacs で書いてる.
    w3m の外部エディタに登録してあるもので.
    だけど,基本的なエディタ機能以外,特に Emacs Lisp の世界は全然知らない.

    実は,Emacs に実用性を求めてはいないのです.メインのプラットフォームは
    Windows だし,開発には Eclipse を使っているから.キーバインドは Emacs 風に
    してあるけれど.

    だから,私の Emacs への興味は,Lisp 環境としてのものなのです.
    そういう人は,このスレの過去にも何人かいましたよね.「Emacs は本物の Lisp
    環境だから,それに憧れて使い始めた」という人が.

    だけど,私のようなミーハーには,今の Emacs は必ずしも憧れではないんです.
    むしろ,過去の遺産に縛られているという話をよく耳にするわけで.あんまり
    好きな言葉ではないでしょうけれど,「バッドノウハウ」と批判する人もいますし.

    354 = :

    ミーハーっつっても色々ある。
    あなたのは単に無駄なことは一つもしたくない症候群なだけ。

    だいたい動的スコープがレキシカルスコープに比べてどういう点で不便なのか
    すらわかってないでしょうに。それがわからないうちは何を勉強しようと
    一緒ですよ。違いが生じる分岐点に至っていないわけだから。

    355 = :

    >>353
    煽ってるのはお前自身。そして独り言はチラシの裏で。

    356 = :

    釣りだろ。

    >>349
    > Guile Emacs が実用的になったら,使ってみたいと思うのだけど.

    >>353
    > 実は,Emacs に実用性を求めてはいないのです.

    Guile Emacs方面に興味があれば知ってるはずのアレを知らなさそうだし。

    357 = :

    なんか,散々だなあ.

    >>354
    今のところ Scheme に興味を持って学んでいます.クロージャ,継続,清潔マクロ.
    どれもとても面白かったし,基本的な使い方はできるようになりました.

    let と fluid-let の違いと特性は,少しですが分かっているつもりです.
    前者が,現代的な関数型言語の基本となっていることと,
    後者が,解決しにくいバグの原因になることも,ある程度は.

    Common Lisp はほとんど,Emacs Lisp は全然知りません.


    >>356
    Edwin と Edge(Editor on Gauche) のことではないのですよね?
    釣りではないんです.単に知らないだけです.

    358 = :

    >>357
    > 後者が,解決しにくいバグの原因になることも,ある程度は.

    …なんかこう書かれると、偏見に聞こえる…
    「解決しにくいバグ」なんて、スコープを理解してればそんなに出てこないと思う。
    名前空間の衝突とかにも、接頭辞とかでの対策が普及してるわけだし。

    それに、クロージャがほしいって話なら、 CL ってパッケージに lexical-let ってマクロがあるよ。

    ところで、どうしてエディターみたいな環境で、動的スコープが有利って言われてるのかは理解してる?

    359 = :

    それって理解してるとは言わない。日本語では耳学問という。

    360 = :

    >>358
    > ところで、どうしてエディターみたいな環境で、動的スコープが有利って言われてるのかは理解してる?

    どうして?

    361 = :

    別に有利じゃないよ。lexical scope の言語で dynamic binding を使いたい
    ならfluid-let みたいなマクロを用意しとけばいいだけだし。

    Emacs Lisp が dynamic scope なのは、インタラクティブな環境ではそれが有
    利だからじゃなくて、デザインされた当時、Lisp のような言語ではその方が
    効率的だと思われていたからでしかない。現在では byte-opt.el にもあるよ
    うにすでに足枷でしかないんだけど、rms によると既存のコードとの互換性の
    方が重要なんだそうな。

    http://www.paulgraham.com/thist.html
    it was a widely held opinion at the time that "lexical scope is
    interesting, *theoretically*, but it's inefficient to implement;
    dynamic scope is the fast choice."
    ...
    I asked RMS when he was implementing emacs lisp why it was dynamically
    scoped and his exact reply was that lexical scope was too
    inefficient. So my point here is that even to people who were experts
    in the area of lisp implementation, in 1982 (and for years afterward,
    actually), Scheme was a radical, not-at-all-accepted notion.

    http://lists.gnu.org/archive/html/emacs-devel/2001-10/msg00102.html
    I am not interested in changing Emacs Lisp to be lexically scoped. It
    would be a major incompatible change. We want to make Emacs support
    Scheme, and one byproduct of that will be the availability of lexical
    scoping. But the Emacs Lisp language will always use dynamic scope.

    362 = :

    結局>>358は知ったかぶりってことでファイナルアンサー?

    363 = :

    >>362
    349はEmacsを使うなってことがファイナルアンサー

    365 = :

    Emacsが形作られた当時の計算機とか、その利用形態とか、
    Emacsのソースコードで速度のために涙ぐましい書き方されてたのを考えると
    そんなにRMSを責めれないけどな。

    俺はSchemeはelispやCommon Lispより括弧やlambdaの数が一段多くなるのが
    あまり好きじゃない。一昔前のlispって感じだ。いいところもあるけどね。
    言語仕様も論理的な美しさは感じるけど人間が使う上で効果を発揮する
    バランス感覚のようなものに欠けると思うし。

    367 = :

    しばらくスレに来ないうちに,かなり話が進んでいますね.

    >>365
    そういう話を聞きたかったです.ありがとうございます.
    つまり,Emacs Lisp のどこが優れているのか,どこが好きなのか,という
    点についてです.

    http://www.ice.nuie.nagoya-u.ac.jp/~h003149b/lang/comparison.html

    Emacs Lisp はおそらく,利用者人口の一番多い Lisp ですが,それを好きだという
    意見は私は聞いたことが無いです.old fashoned だという声ばかり聞きます.
    その割に,Guile Emacs の開発も進まないのは,Emacs Lisp にそれなりの良さが
    あるからかな,と思って,この愛好家スレで聞いてみたいと思ったのです.

    その目的に対して,私の最初の書込みは,今の私の本心だとは言え,煽りっぽかった
    かも知れません.すみません.

    私は Scheme しか知らないですから,カッコが多いから嫌と言われても,Lisp で
    カッコが多いことに文句を言ってもなあ,と感じてしまうのですが.

    368 = :

    あと,Emacs Lisp のヘビーユーザの皆さんにお聞きしたいのですが,
    クロージャを使いたい,というニーズはあんまり無いのでしょうか?
    あれは便利なものだと思うのですが.

    Emacs Lisp ではマクロを使って実現されていることは分かりましたが,
    「使いたいんなら使えば?」という言い方に聞こえたもので.

    Emacs の世界では,クロージャってそんなに便利じゃないんでしょうか?

    370 = :

    >>368
    そういうことはご自分でelispを勉強してから言うべき。
    その質問が意味をなしているかどうかも含めて理解してから言ってください。

    371 = :

    >>361
    > 別に有利じゃないよ。lexical scope の言語で dynamic binding を使いたい
    > ならfluid-let みたいなマクロを用意しとけばいいだけだし。

    う~んと、相互に実現可能ってのはいいとして、どうして dynamic binding を使いたくなるのかって話。

    代表的なのは、ローカル変数との絡みかな。各種 coding-system とか、 fill-column とか。
    こういう変数を使う関数は、基本的にバッファごとに決まった値しか使わない。
    でも、たまには違う値を使ってほしいこともある。

    そんな関数は、 ELisp だと、単に変数を読みに行くだけでいい。
    一時的に違う値を使うときは、束縛しとけばいいからね。
    こういうやりかたは、 dynamic binding じゃないとできないでしょ。


    > 現在では byte-opt.el にもあるよ
    > うにすでに足枷でしかないんだけど

    「足枷」なのは、 byte-opt.el の目的、最適化に対してでしょ。
    基本的に、静的なものは効率と安全性を、動的なものは柔軟性を提供する。
    どっちがいいかなんて用途次第。

    特に Emacs は、効率よりも柔軟性を重視した環境だよね。
    関数でできることはマクロにしないとか、 defsubst の多用も非推奨とか。
    だから ELisp には、 dynamic binding がふさわしいと思う。

    372 = :

    >>371
    > 代表的なのは、ローカル変数との絡みかな。各種 coding-system とか、 fill-column とか。
    > こういう変数を使う関数は、基本的にバッファごとに決まった値しか使わない。
    > でも、たまには違う値を使ってほしいこともある。

    このへんをバッファローカル変数として実現したのは秀逸だと思う。
    Cレベルのままにオブジェクトのプロパティなんかになってると
    unwind-protectでわざわざ復帰するコードを書かないといけない。
    それがローカル変数とすることでletで済む。
    この感覚がdynamic bindingとマッチしたとは俺も思う。

    まあfluid-letでもいいしプロパティのままでも適当にマクロ作ればいいけど、
    冴えたやり方って感じしないよね。

    373 = :

    >>371-372
    それって Common Lisp のスペシャル変数でも同じだよ。

    あと、dynamic *binding* のメリットはわかってるから、dynamic *scope* の
    メリットを教えてよ。

    375 = :

    sed と awk と perl の正規表現を比べて
    perl の正規表現の方が柔軟性があるから
    sed や awk を覚える気がしないといってるみたいに聞こえる。

    376 = :

    >>375
    どちらが何を指しているのか分からない.
    Perl だけ覚えればいい,と言っているのが 静的スコープ の側,ということ?

    あと,正直,現代は Perl だけ覚えれば済むんじゃないかと思うんだけど.

    377 = :

    ところで、lisp ってさ、必死こいて覚えると、
    Emacs がよりいっそうヲタっぽくなる以外に、
    何かいいことあるの?

    378 = :

    >>377
    とりあえずこれを嫁
    http://www.shiro.dreamhost.com/scheme/trans/beating-the-averages-j.html

    379 = :

    読むのマンドクサいから、3行で要約汁。

    380 = :

    > しかし、Lispのおかげで私達の開発サイクルは非常に速く、
    > 相手がプレスリリースを出した1日2日後にもう同様の機能を作ったこと
    > もしばしばある。

    なんだこれ。怪文書じゃないか。

    381 = :

    そろそろくさくなってきたのでまじめな議論は避けるように。

    382 = :

    >>381
    答えられなくなりそうだから、逃げるってか?

    383 = :

    >>380
    おまいは「怪文書」という言葉の意味を,辞書で引きなおすように.

    それからな,あの文書の著者の Paul Graham が,自社を売却して百万長者に
    なったのは本当だ.
    http://ascii24.com/news/i/topi/article/1998/07/10/611855-000.html?geta

    上の記事に出てくる Viaweb 社が,Paul の作った会社だ.

    まあ,Lisp で金をもうけた人間は,Paul がほとんど唯一なんだけどな.

    384 = :

    >>383
    そこに貼られているリンクはいつのものでつか?

    ここ2~3年のうちに

    > Lispのおかげで私達の開発サイクルは非常に速く、
    > 相手がプレスリリースを出した1日2日後にもう同様の機能を作ったこと
    > もしばしばある。

    という機能が実現できた企業はあるんかね?

    385 = :

    >>384
    おそらく無い.Lisp プロジェクトそのものがほとんど無いからだ.

    プロジェクトの無い理由はいろいろあるが,
    ・Lisp は多人数による大規模な開発に向かない.
    ・Lisp は投資家から実用的な言語と思われておらず,投資を受けられない.
    ・Lisp 以外の言語が発達してきて,Lisp プログラマがそちらに流れた.
    のが主因であるとされている.

    しかし,現代のプログラミング言語の多くの概念は,Lisp から生まれたもので
    ある.1950年代から80年代まで,Lisp は最も先端的な言語であり続けた.その
    蓄積は半端ではない.

    かくして,Lisp で高度な概念を身に付けたプログラマたちが,Lisp 以外の言語
    (例えば Python)でこの業界の先端を切り開いている.
    Google の Peter Norvig がその典型であろう.

    以上が一般見解で,それをまとめると,以下の Eric Raymond の言葉になる.

    http://cruel.org/freeware/hacker.html
    LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。
    この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。
    たとえ、実際には LISP そのものをあまり使わなくても。

    386 = :

    > LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。

    宗教?

    そりゃ、宗教に投資する馬鹿はいないもんな。

    387 = :

    >>386
    貴様は Eric Raymond が何者なのか知らないようだな.これではおそらく,RMS
    (Richard Stallman) をも知らないに違いない.それとも単なる釣りなのか?

    俺は馬鹿だった.>>381の言うことに従えばよかった.

    388 = :

    とりあえず半年ROMれ。

    389 = :

    >>387
    >>377 の発言では lisp を使える利点について質問しているのだから、
    Eric Raymond や RMS の活動を知っているか否かということは
    関係ないんじゃないの?

    そんなことやってるから宗教扱いされるんだよ。

    391 = :

    ID が出ないと連続カキコしてもわからないな。

    392 = :

    そうだなおれもそうおもうよどうかんだよ

    393 = :

    突然ですが,今まで私にレスしていただいた方にお詫びします.
    Emacs Lisp には興味は無かったのですが,今後きっちり学んでみようと思います.

    その理由は,
    ・Lisper を目指しているのに,Emacs Lisp が書けないのはどうかと思った.
    >>371-373 など,面白そうな話が出ているのに,よく理解できないのが残念.
    そして何より,
    >>377 以降の流れにムカついた.

    私は Emacs に思い入れはありませんが,Lisp(Scheme) には強い思い入れがあり
    ます.人が大切にしているものを,何も知らない人間に否定されると,どれだけ
    腹が立つか,身に沁みて思い知りました.私は悪気があったわけではありません
    が,おそらく私にレスしていただいた方からは,同じに見えているでしょう.
    深く恥じ入っています.ごめんなさい.

    最後に,>>377 さんへ.
    どうやらあなたは,わざとやっているのですね.最初は本物の厨房かと思いました
    が,途中で自分自身を客観視して,愕然としました.あなたは大した達人です.
    ネットでこんなに身につまされたことはありません.

    394 = :

    ちょっとした機能を elisp で作ってみたりすると面白くなると思うよ。
    emacs はいろいろ欠点もあるけど、editor 好きで lisp 好きな人には
    面白いおもちゃだと思う。

    395 = :

    >>349
    あんたみたいに普通に騙ろうとしてる人に煽り半分の
    糞レスしか出来ない肥だめ連中は相手にすんな。

    396 = :

    スレ違いだからだろ

    397 = :

    >>395
    肥溜めが何を今更。

    398 = :

    395はどっちを煽ってるつもりなんかしらん。

    399 = :

    スレ違いだけどさ。
    たーまーになんとなく思い付きでspeedbar使ってみると
    「便利だなぁ」って思うけど、結局普段は使わない。
    みんなそうだよね?

    400 = :

    speedbarって便利? 動作がしっくりこない。
    なんか勝手に使いにくく動く。


    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / emacs一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について