«前の日(05-02) 最新 次の日(05-04)» 追記

Matzにっき


2003年05月03日 憲法記念日

_ [Ruby]アジャイルな言語デザイン

Module#instance_methodsなどは引数が省略された場合、 あるいは引数として偽を指定した場合にはそのクラスで定義されているメソッドのリストを、 真を指定した場合にはスーパークラスまでさかのぼってメソッドのリストを返します。

しかし、Rubyのような言語にとって継承は単なる実装の共有が目的ですから、 興味があるのは「そのクラスのインスタンスが持っているメソッドのリスト」のはずです。 ということは、現在のデフォルトは間違っていることになります。 またやっちゃった。

そこでさっそく修正しました。

ところが直後に、この修正によってirbが動かなくなったとDave Thomasから報告がありました。 具体的にはdelegate.rbがこの変更に対応していなかったせいです。 この問題そのものはdelegate.rbを修正することで簡単に直せたのですが、 この一件で大きな矛盾が明らかになったような気がします。

つまり、言語またはライブラリのデザインに間違い(使いにくさ、一貫性のなさ)があったとき、 長期的な観点からは修正した方が良いに決まっています。 間違い、一貫性のなさは言語の良さを損ねます。 しかし、その修正の結果、非互換が生まれれば、少なくとも短期的には多くの問題が生じます。 ユーザが多ければ多いほどその問題は深刻になります。

かつて、Rubyのユーザがわずかであった頃にはこれはあまり問題ではありませんでした。 しかし、いやまRubyユーザは世界中に数えきれないほどいます。 ささいな変更でも影響がばかにできなくなっています。

短期的な視点に立って欠点を放置するか、長期的な視点に立って欠点を修正するか。

アジャイルな立場からいえば、変化を恐れず対応するべきなのでしょうが、言語の場合には

  • インタフェースが大規模かつ複雑
  • その直接の利用者がプログラム
  • ユーザがとてつもなく多い

という点で、急激に変化してはいけない傾向があります。 アジャイルの指導者の一人であるDave Thomasに相談しましたが、 彼にも良いアイディアはないようです。

結局今回の問題は、

  • 2004年1月まで変更は先送り
  • その間はwarningを出す

という方向で結論を出しましたが、変化に強い言語デザインとはどのようなものかということについては 結論が出ないままなのです。


2004年05月03日 憲法記念日

_ [家族]温泉プール

ゴールデンウィークだというのに引っ越しの片付けばかりではあんまりだろう、 ということで、家族サービスに安来にある温泉プールに。

もっと近いのもあるのにここをひいきにしているのは、 親戚のうちの隣だから。もっとも、従姉とはずいぶん疎遠にしているので、 近くにいっても「思い出す」だけなのだが。思ってるだけでは通じないのは自覚してるのに。

近いうちに挨拶しに行こう。祖母の墓参りもしよう。

それはさておき。遊ぶ。 もっとも、私はプールでは目が良く見えないし(ど近眼の悲しさ)、 すっかり泳げなくなっているので、お湯につかっている時間の方がはるかに長い。 妻も似たようなものだ。もっとも彼女は数年前まで水泳教室に通っていたので、 私よりはマシだが。

前回も同じようなことをしているなあ。

すっかりふやけて帰宅する。


2005年05月03日 憲法記念日

_ [家族] 松江フォーゲルパーク

〆切からの開放感。なんてすばらしいんだ。

というわけで、家族で3連休を楽しむとする。 1日目は松江フォーゲルパークへ。 今はもう松江市民だから市民料金が適用されるのがちょっと嬉しい。

鳥と花がいっぱい。 駐車場がいっぱいだったので、どうなることかと思ったが、 中はそれほどひどい混雑ではなく、十分楽しむことができた。

いろんな鳥がいたけど、やはりペンギンが一番かわいいかな。 特に一番小さいのは末娘と誕生日が同じというのがいい。名前も「ももたろう」だし。


2006年05月03日 憲法記念日

_ 米子訪問

東北大学未来科学技術共同研究センター 川島隆太教授監修 脳を鍛える大人のDSトレーニング(-)

中学生のお姉ちゃんたちは休日だというのに部活だということで、 残った息子と末娘を連れて実家へ。

実家の母は、妹がプレゼントしたという 『脳を鍛える大人のDSトレーニング』にはまっていた。

「やってみろ」とのことだったのでチャレンジ。 脳年齢判定では 最初は42歳、数回繰り返してようやっと36歳くらい。

トレーニングでは、いくつかのものでロケット級という判定を得たものの、 残りは総じて自転車級程度。かなり脳が硬化しているらしい。 LLなんか作ってて、楽をすることにかまけているからだろうか。

確かに楽をするために人一倍努力していることは認めるが。

_ 次のキラーアプリは宗教か?--盛り上がりを見せる「教会関連技術」市場

まあ、周囲からどう見られているかどうかはわからないが、 私の教会でも

  • 年に2度開かれる総大会の様子はほぼリアルタイムにmp3, wmv, wmaで公開される(通訳つき)
  • またその内容は1週間以内に各国語吹き替えつきDVDに焼かれ、全国(たぶん衛星放送が届かない全世界)の教会に配布される
  • 系図探求用ソフトウェアを配布している
  • Palm用聖典(+聖書辞典)データを配布している(英語のみ)

のようなIT化が進んでいる。決して最先端というわけではないけど、 まあ、それなりにテクノロジーをキャッチアップしているということで。

_ Rastインデックス生成開始

どうやらRastインデックスデータベースが壊れたようで、 メールのインデックス作業が時々刺さるようになった。 こうなると当該プロセスをkillするしかないので、 なかなか具合が悪い。しょうがないので 意を決してRastインデックスを再生成することにする。 インデックス生成が遅いのがRastの欠点の一つなので なかなか躊躇していたのだが、こうなればしょうがない。 GWの休みを利用してやってしまうことにする。

数えたらメールは17万通ほどあった。 さて、何時間かかるか。


2007年05月03日

_ [原稿] 日経Linux 2007年7月号

今月のテーマは「スレッド」。

今までネットワーク関連が続いたので、 ちょっと目先を変えて。

とはいえ、5日〆切なのに終わる気配がないのは正直しんどい。

_ [言語] The World of Hello World

プログラミング言語誕生の地。

一番驚いたのは、「Ruby誕生の地」をズームすると 0.95リリース当時の勤務先の住所になっていること。

一体、誰が調べたんだ。他の言語はどうなってるんだろう。

追記

このエントリへのリンク元で「Ruby生誕の地は名古屋」であるとの記述を数件見たが、 実際は、Ruby誕生の地は物理的には浜松市(舘山寺町)、厳密にはネット上(名前が決まったのは 東京・浜松間のチャット上だったから)である。

_ [言語] 第5回 CodeGearデベロッパーキャンプ開催のお知らせ

Borlandからスピンアウトした(というか、個人的な印象としてはこっちの方が「ボーランド」らしい) CodeGearのイベント。

今回は「CodeGearの新しいRuby IDE」が発表されるそうだ。 最初はRailsConfで発表されるらしい。 コードネームとかも聞いたけど、公表しない方がよいだろうな。

_ [OSS] Ext3cowファイルシステム

Ext3をベースにしたバージョニングファイルシステム。 任意の時間の状態に戻ることができるらしい。 OSXに搭載されるというタイムマシン機能のようなものだな(未来には行けません)。

カーネルパッチが必要と言うことなのでまだ試していない。

なんかファイルシステムまわりのいろいろな面倒から解放されそうなので 期待している。あと、ファイルシステムそのものに全文検索機能があれば 私の生活がずいぶん楽になりそう。

後者はfamとHyperEstraierを組み合わせれば現在の技術でも十分に実現可能だと思うけど、 面倒なので放置している。


«前の日(05-02) 最新 次の日(05-04)» 追記