«前の日記(2005年03月09日) 最新 次の日記(2005年03月11日)» 編集

Matzにっき


2005年03月10日 [長年日記]

_ [OSS] Rast ファーストリリース

N-gram 方式の全文検索システムRastのソースコードがとうとう公開された。 ここ数ヶ月の後輩たちの成果を見てやってほしい。 ただ、まだ最終版からはほど遠いのでお手柔らかに。

_ [OSS] The Power of Blocks in Ruby is accepted

OSCON 2005へのプロポーザルが採択された。 テーマは「Yield to the Block: The Power of Blocks in Ruby」とするつもり。 Rubyの特徴であるブロックの活用方法をいろいろと語る45分のセッション。

さて、これで行く方法を算段しないといけなくなったな。 夏休み期間にアメリカ行くのにどのくらいかかるかな。

_ [OSS] FOSS企業を成功に導く7つのヒント

  • FOSSコミュニティを馬鹿にしてはいけない
  • ビジネス・プランに集中せよ
  • FOSSの再パッケージングでは力不足
  • 人材の必要性は変化する。それを見越した雇用計画を作れ
  • プログラマと非プログラマの分裂を避けよ
  • 全員が製品とコミュニティを理解せよ
  • ビジネス・コミュニティとFOSSコミュニティの両方に企業を売り込め

ごく当たり前のことが書いてある。 ただ、翻訳はあんまり良くないような。「?」と思ったら原文を参照。

_ [Ruby] 思いつき

Rubyではレシーバが省略された関数的形式で呼ばれたメソッドはselfのメソッドと見なされる。 ただし、privateと設定されたメソッドがエラーにならないという違いがある。

これはこれで便利なものだが、ちょっとだけ欠点があって、 単にユーティリティとして使いたい関数的メソッドで名前空間が消費されてしまう。 ただ単に手続きをまとめるためにだけ作ったメソッドでも、 重複するといけないのでサブクラスで同名の関数を使うことはできない(正確には可能だが、トラブルになる)。

そこで、関数形式で呼ばれたメソッド呼び出しでは、メソッド探索を当該クラスからはじめる、 というのはどうだろう。仕様はより複雑になるが、再定義されたメソッドを利用しないので、 サブクラスの都合によりメソッドの動作が変化してしまう事態や、 メソッド名が偶然衝突してしまう危険性を避けることができる。

当該クラスからのメソッド検索に必要な枠組みはすでにsuperの実現のために用意されているので、 実装もそんなに難しくないはずだ。

仕様が複雑になることと、関数的メソッドをオーバライドできないこと、がデメリットだが、 そんなに悪い取り引きではないと思う。

1.9で実装してみようかなあ。

_ [Ruby][言語] 「Regarding Ruby (and Ruby on Rails)」または初心者向け言語の落とし穴

RubyをPHPやJavaと比較するという話。

「Ruby is too easy to be used as a first language」という観点は面白い。 つまり、最初Rubyでプログラミングを学んでしまった人は、 それがあまりに楽で簡潔なので、 他の言語に移行する時の学習曲線が急勾配になりすぎるということ。

そういわれれば、そういうこともあるかもしれない。 私だってRubyでプログラミングを学んだわけじゃないものなあ。

しかし、同じ論理はより強力に「なでしこ」や「ドリトル」にもあてはまりそうな気がする(HSPにも?)。 これらの言語で学んでしまった人は他の言語に移行するのが大変になるかもしれない。 ずっとその言語で閉じていればいいけど、いざ他の言語が必要になったら...。

いや、人間の柔軟性はそれくらいなんなく克服するのだろう....と、信じたい。


«前の日記(2005年03月09日) 最新 次の日記(2005年03月11日)» 編集