Rubyネタ ― 2007年01月08日 19時14分53秒
ASAHIネット(http://www.asahi-net.or.jp)のjouwa/salonからホットコーナー(http://www.asahi-net.or.jp/~ki4s-nkmr/ )に転載したものから。
---
おれが勝手にALGOLシンタックスのLispだとわめているRubyネタ。
http://www.itmedia.co.jp/enterprise/articles/0612/22/news012.html
まつもとゆきひろ――第1回:オープンソースという「お仕事」
http://www.itmedia.co.jp/enterprise/articles/0612/28/news025.html
まつもとゆきひろ――第2回:Rubyを開発するということ
をどうぞ。
Common Lispの仕様をよくみているんだ。やっぱり。\(^O^)/
http://itpro.nikkeibp.co.jp/article/COLUMN/20060825/246464/
まつもとゆきひろのプログラミング言語論 目次
も面白い。
Plankalk?lという言語、知りませんでした。
Ruby以前に、()だらけのS式じゃない文法をもったLispの有力候補として、
たとえば、昔、Appleが著名Lispハッカーに作らせていたDylanがあります。
Appleが手を引いてからどうなったのかと思っていたら、ちゃんとあります
ね。
http://www.opendylan.org/
をどうぞ。
本もオンラインで読めます。
http://www.opendylan.org/books/dpg/db_1.html
Dylan Programming
この本、amazon.comじゃ見つからない。日本だと、
http://www.amazon.co.jp/exec/obidos/ASIN/0201479761/showshotcorne-22/ref=nosim
にあって、9300円以上します。
原著の値段を知らないが、ひょっとして、言語オタクのコレクター向けにプ
レミアがついているのか。\(^O^)/ 物欲が刺戟されそう。^^;
コード例をみると、DylanはほとんどLispだというのがよくわかるんだけど、
見た目はちょっとRubyっぽいでしょ。^^;
でも、メソッドがクラスに属しておらず、総称関数(generic function)に属し
ているところは、まさにLispのオブジェクト指向システムであるCLOS(Common
Lisp Object System)的ですね。マクロもあるし。
個人的には、Dylanより、やっぱりRubyのほうが普及する要因がいろいろあ
ったと思いますし、そういう言語を設計・実装した松本さんもすごいし、育て
たコミュニティも立派ですよね。
あ、Rubyの特異メソッドがとても評価されているようだけど、あれ、メソッ
ドがクラスに属してしまうオブジェクト指向だからああいうのが苦肉の策とし
て必要になったんじゃないかと思うんですよね。実は、同じものがCLOSにはあ
るけど、メソッドがクラスに属していないから、そんなにありがたい気がしな
いんですよね。この話は、改めて書ければ。
Rubyにほしいのは、あとはやっぱ、マクロとネイティブコンパイラですかね。
あまりにLisp的色眼鏡でみた希望でしょうか。
それとも、Oz/Mozartのような細粒度スレッドと並列・分散を言語に取り込
むことですかね。そこまでいっちゃうと、別の言語にしたほうがいいのかもし
れないが。
そういえば、
http://iiyu.asablo.jp/blog/2006/06/01/389616
のコメントに、かすたさんから、ライブラリで提供するほうがいいという話が
ありましたが、おれはいい計算機構は、いいことがわかったら、ライブラリよ
り言語そのもの、さらにいえばハードウェアでサポートすべきという考えの持
ち主なんです。
たとえば、クロージャなんてRubyはうまくイテレータやブロックという形で
くるんで言語の中に入れちゃってるでしょ。あれでクロージャだと知らずに使
っているRubyプログラマってとっても多いと思うんですよね。あれがライブラ
リだったら、こんなにRubyが流行っただろうかと思うんですよね。
Oz/Mozartの細粒度のスレッドや並列・分散なんて言語でサポートしているか
ら、楽に使えるわけですし。
昔、おれも、PascalとCを対比してみたとき、Pascalは入出力も言語仕様の
中にあってなかなか改訂されないから進化が遅いんだなと思ってました。そう
いうアカデミックな停滞を、標準がどうのこうのは知らんケンシュタインじゃ
けん、勝手に拡張しちゃうもんねで大ヒットしたのが、Turbo Pascalなんです
よね。
その点、Cは言語仕様が小さめで、入出力などはライブラリ任せだったんで
す。それで、あ、この方法のほうがいいなと思っていたんだけど、そんなのは
おれがバカだったゆえの錯覚でしたね。
Cのライブラリにお任せ方式がうまくいったのは、Unixというリファレンス
の実装があったからで、Unix以外の世界にCを移植しようとしたら、途端にラ
イブラリの互換性やらの問題が出て、標準化するとなったら延々と時間がかか
る話になっちゃいましたからね。
いま、何をもって言語仕様と呼ぶかは、かなりあいまいに思いますね。
Common LispやSchemeなんて言語仕様といっても、シンタックスはS式なんで
ほとんどないし、大半はマクロや組み込み関数の仕様と意味論なんですよね。
いい計算機構でいえば、スタックだって、大昔のCPUにはなかったんですも
ん。おれらが昔の人はどうやっていたかと演習でやらされた1970年ころのNEC
のミニコンのアセンブラプログラミングだと、ブランチ&リンク命令なんてい
って、戻り番地を飛んだ先にメモリを用意して埋めておいて、それで元に戻る
んですよね。
メモリに関しては、ガベージコレクション(GC)もなんでOSがサポートしてな
いのかと思うし、それをサポートする命令があってもいいんじゃないかと思う
し、仮想記憶はなんとかそれ用の命令もあるし、OSもサポートするようになっ
てますが、なぜ、GCもやらないのかなんて、つい、思っちゃいます。
昔はLispマシン、Prologマシンなど高水準言語マシンの研究や実装もいろい
ろあったし。
ま、そういう思いがいろいろあるわけです。
Rubyに比べて、Lispのコミュニティって、頭が抜群にいい連中が多いせいか、
あるいは、アスペルガー症候群的な連中が多いなんていわれるせいか、みんな
で支えあって伸びていこうという雰囲気がないみたいに思いますね。出てくる
奴は勝手に出てくるんだから、ほっとけみたいな。それだと、おれみたいなバ
カは困る。^^;
http://ja.wikipedia.org/wiki/アスペルガー症候群
こういうのは、普及にはよくないんだけど、Lispは死なないのが決まってま
すからね。
なぜなら、仏教哲学でいえば、Lisp=ブラフマン(梵)であり、プログラマ=
アートマン(我)であり、梵我一如である以上、宇宙と人類がなくならない限り、
Lispは死なないんです。\(^O^)/
これが我々の宇宙の数理構造として決まっているんです。\(^O^)/
もし、Lispが死んでいたら、おれが56億7千万年後に弥勒として復活して
Lispも復活するんです。\(^O^)/
はいはい。中村さーん、煩悩吐き出すのはそれくらいにして、おむつ替えて、
おっぱい飲んで、ねんねしましょうね。
あーい。\(^O^)/
---
おれが勝手にALGOLシンタックスのLispだとわめているRubyネタ。
http://www.itmedia.co.jp/enterprise/articles/0612/22/news012.html
まつもとゆきひろ――第1回:オープンソースという「お仕事」
http://www.itmedia.co.jp/enterprise/articles/0612/28/news025.html
まつもとゆきひろ――第2回:Rubyを開発するということ
をどうぞ。
Common Lispの仕様をよくみているんだ。やっぱり。\(^O^)/
http://itpro.nikkeibp.co.jp/article/COLUMN/20060825/246464/
まつもとゆきひろのプログラミング言語論 目次
も面白い。
Plankalk?lという言語、知りませんでした。
Ruby以前に、()だらけのS式じゃない文法をもったLispの有力候補として、
たとえば、昔、Appleが著名Lispハッカーに作らせていたDylanがあります。
Appleが手を引いてからどうなったのかと思っていたら、ちゃんとあります
ね。
http://www.opendylan.org/
をどうぞ。
本もオンラインで読めます。
http://www.opendylan.org/books/dpg/db_1.html
Dylan Programming
この本、amazon.comじゃ見つからない。日本だと、
http://www.amazon.co.jp/exec/obidos/ASIN/0201479761/showshotcorne-22/ref=nosim
にあって、9300円以上します。
原著の値段を知らないが、ひょっとして、言語オタクのコレクター向けにプ
レミアがついているのか。\(^O^)/ 物欲が刺戟されそう。^^;
コード例をみると、DylanはほとんどLispだというのがよくわかるんだけど、
見た目はちょっとRubyっぽいでしょ。^^;
でも、メソッドがクラスに属しておらず、総称関数(generic function)に属し
ているところは、まさにLispのオブジェクト指向システムであるCLOS(Common
Lisp Object System)的ですね。マクロもあるし。
個人的には、Dylanより、やっぱりRubyのほうが普及する要因がいろいろあ
ったと思いますし、そういう言語を設計・実装した松本さんもすごいし、育て
たコミュニティも立派ですよね。
あ、Rubyの特異メソッドがとても評価されているようだけど、あれ、メソッ
ドがクラスに属してしまうオブジェクト指向だからああいうのが苦肉の策とし
て必要になったんじゃないかと思うんですよね。実は、同じものがCLOSにはあ
るけど、メソッドがクラスに属していないから、そんなにありがたい気がしな
いんですよね。この話は、改めて書ければ。
Rubyにほしいのは、あとはやっぱ、マクロとネイティブコンパイラですかね。
あまりにLisp的色眼鏡でみた希望でしょうか。
それとも、Oz/Mozartのような細粒度スレッドと並列・分散を言語に取り込
むことですかね。そこまでいっちゃうと、別の言語にしたほうがいいのかもし
れないが。
そういえば、
http://iiyu.asablo.jp/blog/2006/06/01/389616
のコメントに、かすたさんから、ライブラリで提供するほうがいいという話が
ありましたが、おれはいい計算機構は、いいことがわかったら、ライブラリよ
り言語そのもの、さらにいえばハードウェアでサポートすべきという考えの持
ち主なんです。
たとえば、クロージャなんてRubyはうまくイテレータやブロックという形で
くるんで言語の中に入れちゃってるでしょ。あれでクロージャだと知らずに使
っているRubyプログラマってとっても多いと思うんですよね。あれがライブラ
リだったら、こんなにRubyが流行っただろうかと思うんですよね。
Oz/Mozartの細粒度のスレッドや並列・分散なんて言語でサポートしているか
ら、楽に使えるわけですし。
昔、おれも、PascalとCを対比してみたとき、Pascalは入出力も言語仕様の
中にあってなかなか改訂されないから進化が遅いんだなと思ってました。そう
いうアカデミックな停滞を、標準がどうのこうのは知らんケンシュタインじゃ
けん、勝手に拡張しちゃうもんねで大ヒットしたのが、Turbo Pascalなんです
よね。
その点、Cは言語仕様が小さめで、入出力などはライブラリ任せだったんで
す。それで、あ、この方法のほうがいいなと思っていたんだけど、そんなのは
おれがバカだったゆえの錯覚でしたね。
Cのライブラリにお任せ方式がうまくいったのは、Unixというリファレンス
の実装があったからで、Unix以外の世界にCを移植しようとしたら、途端にラ
イブラリの互換性やらの問題が出て、標準化するとなったら延々と時間がかか
る話になっちゃいましたからね。
いま、何をもって言語仕様と呼ぶかは、かなりあいまいに思いますね。
Common LispやSchemeなんて言語仕様といっても、シンタックスはS式なんで
ほとんどないし、大半はマクロや組み込み関数の仕様と意味論なんですよね。
いい計算機構でいえば、スタックだって、大昔のCPUにはなかったんですも
ん。おれらが昔の人はどうやっていたかと演習でやらされた1970年ころのNEC
のミニコンのアセンブラプログラミングだと、ブランチ&リンク命令なんてい
って、戻り番地を飛んだ先にメモリを用意して埋めておいて、それで元に戻る
んですよね。
メモリに関しては、ガベージコレクション(GC)もなんでOSがサポートしてな
いのかと思うし、それをサポートする命令があってもいいんじゃないかと思う
し、仮想記憶はなんとかそれ用の命令もあるし、OSもサポートするようになっ
てますが、なぜ、GCもやらないのかなんて、つい、思っちゃいます。
昔はLispマシン、Prologマシンなど高水準言語マシンの研究や実装もいろい
ろあったし。
ま、そういう思いがいろいろあるわけです。
Rubyに比べて、Lispのコミュニティって、頭が抜群にいい連中が多いせいか、
あるいは、アスペルガー症候群的な連中が多いなんていわれるせいか、みんな
で支えあって伸びていこうという雰囲気がないみたいに思いますね。出てくる
奴は勝手に出てくるんだから、ほっとけみたいな。それだと、おれみたいなバ
カは困る。^^;
http://ja.wikipedia.org/wiki/アスペルガー症候群
こういうのは、普及にはよくないんだけど、Lispは死なないのが決まってま
すからね。
なぜなら、仏教哲学でいえば、Lisp=ブラフマン(梵)であり、プログラマ=
アートマン(我)であり、梵我一如である以上、宇宙と人類がなくならない限り、
Lispは死なないんです。\(^O^)/
これが我々の宇宙の数理構造として決まっているんです。\(^O^)/
もし、Lispが死んでいたら、おれが56億7千万年後に弥勒として復活して
Lispも復活するんです。\(^O^)/
はいはい。中村さーん、煩悩吐き出すのはそれくらいにして、おむつ替えて、
おっぱい飲んで、ねんねしましょうね。
あーい。\(^O^)/
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※なお、送られたコメントはブログの管理者が確認するまで公開されません。
※投稿には管理者が設定した質問に答える必要があります。