«前の日記(2005-01-23) 最新 次の日記(2005-01-25)» 編集

Matzにっき

迷惑メール対策なら Dr.WEB
『Dr.WEB メールデーモン』、MTA 用迷惑メール対策製品です!


2005-01-24 [長年日記]

_ [Ruby]文法の意味

先日の「Python Optional Typechecking Redux」で、

特に良くないと思うのは、「新文法」の持つ「意味」が、 __typecheck__()関数の定義によってさまざまに変化することだ。

と書いたら、「丁稚な日々」で

Rubyのfor文におけるeachメソッドの立場と、GuidoたんのこのOptional Typechecking機構における__typecheck__メソッドの立場って、あんまり変わらないような気がするんですが、どうなんでしょう?

  1. 同じ。Rubyのfor文はよろしくない例である。
  2. 違う。これとあれとは別の次元の話である。
  3. その他。

どれなのかしらん。

と突っ込まれていた。正解は2番。

for文におけるeach(caseにおける === でもいいけど)は、 eachは「各要素に対して繰り返す」という共通の「意味」を持つことが、 仕様と実装(既存のクラスのeachはすべてそうなっているという意味で)で示されている。 多態というのは「実装は違うが意味は同じ」であるからこそ成立する概念だ。

一方の、__typecheck__()だが、こちらはまず第一に多態ではない。 「オブジェクトに適した動作」を選択する「オブジェクト」がないのだから。 また、「モジュールごとに適した型チェック」なるものも存在しない。 「モジュール作者が望んだ型チェック」ではあるだろうが。

また、もっと悪いことに「型チェックする」という「大まかな意図」こそ指定されているが、 それが意味するものが、

  • isinstanceof()のチェックなのか
  • signature conformanceのチェックなのか
  • object adaptationなのか
  • そもそもなんにもチェックしないのか(これも合法)

であるかは、決められておらず、逆に「好きなのを選んで」と任せてしまっている。 これでは共通の「意味」があるとは認められないだろう。

_ [知財]Transmeta、経営再建へ - 知財と技術ライセンス重視へ

企業業績の知財原則

「業績が傾くと、企業は途端に知財とライセンシングに熱心になる」

_ 知っておきたかったこと --- What You'll Wish You'd Known

Paul Grahamの新作。川合さんによる訳。

共感を持った言葉:

実際のところ、もし16歳のシェークスピアやアインシュタインが君と同級生だったとしたら、たぶん彼らは才能を現しているだろうけれど、それ以外は君の他の友達とさほど変わらないはずだとぼくは思う。

こう考えるのは、おっかないことだ。彼らがぼくらと同じなんだとしたら、彼らはすごいことを成し遂げるためにものすごい努力をしたってことになる。そう思うのはこわいから、ぼくらは天才というものを信じたがるんだ。ぼくらが怠けている言い訳ができるからね。もし彼らが、魔法のシェークスピア属性やアインシュタイン属性のせいで素晴らしいことを成し遂げたんだとすれば、ぼくらが同じくらいすごいことをできなくてもぼくらのせいじゃないことになる。

そうなんだよ。「彼らは違う」というのは簡単だけど、実際はそんなに違わない。

今、ぼくは素晴らしい仕事をした人を何人も知っているけれど、みんな同じなんだ。自分を律するということをほとんどしない。延ばせることはぐずぐず先に延ばすし、興味のないことをやらせようとしても全くの無駄だ。そのうちの一人ときたら、自分の結婚式に出席してくれた人へのお礼の手紙をまだ半分しか出してない。結婚して4年経つのに。もう一人は、メールボックスに26000通のメールをため込んでる。

あはは。私もよく妻から「あなたって全然自制心がないのね」って言われてる。

自律心が全くのゼロだったら困るよ。走りに行こうかなと思うくらいの自律心は必要だ。ぼくも時々、走るのが面倒だなあと思うけれど、一度走り出せばあとは楽しめる。そして何日か走らないと具合が悪くなる。

そうか、「走りに行こうかなと思うくらいの自律心は必要」なのか。 体重も増加傾向だし、走ろうかなあ。

しかし、川合さんは、ばりばりプログラムも書くし、翻訳もうまいし、すごいなあ。 梅田さんも注目している。

_ [Ruby][ANN] Ruby 2.0!

[ruby-talk:127803]

「知られざるRuby 2.0のリリース」という話ではなくて、 Chris Pineのところに二番目の娘(Rubyちゃん)が産まれたという話。

ちなみに、Chris Pineの長男は「Cくん」だそうだ。

一昨年のOSCONに会った時、「娘が産まれたらRubyって名前にする」って言ってたけど、 本気だったらしい。

一番おかしかったフォローアップは

Congratulations to both of you!

The post was really neat and funny... thank goodness you don't program in PYTHON! ;-)

であった([ruby-talk:127818])。やっぱ、リアルで「Pythonちゃん」はマズいだろう、いくらなんでも。

_ [Ruby] Ruby-on-Rails Effect

ことの発端はO'Reilly ONLampのCurt Hibbsの記事であった。主にWindowsユーザを対象にRuby on RailsをMySQLのインストールからはじめて丁寧に解説する記事。

これが本家スラッシュドットに取り上げられた

さらに、PHPとMySQLで実装されていた音楽配布サイトCD Babyが、 Ruby on RailsとPostgreSQLで再実装することを決定するニュースが。

その結果、RailsのRubyGemのダウンロードが1月21日の一日だけで935を記録。 同日、One-Click Installerのダウンロードも1499を記録した

予想以上のインパクトだ。

本日のツッコミ(全4件) [ツッコミを入れる]
_ yyamano (2005-01-25 02:41)

こまかい事ですが、CD Babyは音楽配布サイトではなく、independentなCDを扱うオンラインショップです。

_ AC (2005-01-25 13:57)

1.オブジェクトの有無と多態は関係ありません。多態はOOより古い概念です。<br>2. eachや===も、単に約束に過ぎず、どう使われるかわからない(プログラマの自由)という点では__typecheck__と同じでは。「意味」は単なる慣習であって、言語に「意味」を強制する仕組みは何もないでしょう。どちらもad hoc polymorphism。

_ まつもと (2005-01-25 14:08)

多態がOOPよりも古い概念であることには同意しますが、それでもなおオブジェクト(OOP的な意味ではなく、Lisp的な意味での)がなければ多態はありえないのではないでしょうか。<br>__typecheck__の方では、モジュールをオブジェクトとみなすことができないことはありませんが、自然ではないと思います。<br><br>「どちらも約束に過ぎず、ad hoc polymorphism」という指摘にも同意しますが、__typecheck__が「意味と呼ぶには具体性が足りなすぎる」ことが違いを生んでいると思います。

_ rnd (2005-01-26 11:55)

子供の命名ネタでは、<br>「ヤフーと名づけられた赤ちゃん」はでっちあげ記事だった<br>http://www.excite.co.jp/News/odd/00081106602965.html<br>とかいう二重にわけの分からないニュースも。<br><br>この人、解雇されちゃってるし。

お名前:
E-mail:
コメント:
[]

«前の日記(2005-01-23) 最新 次の日記(2005-01-25)» 編集

RSS feed meter for http://www.rubyist.net/~matz/ track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.