Module#instance_methodsなどは引数が省略された場合、 あるいは引数として偽を指定した場合にはそのクラスで定義されているメソッドのリストを、 真を指定した場合にはスーパークラスまでさかのぼってメソッドのリストを返します。
しかし、Rubyのような言語にとって継承は単なる実装の共有が目的ですから、 興味があるのは「そのクラスのインスタンスが持っているメソッドのリスト」のはずです。 ということは、現在のデフォルトは間違っていることになります。 またやっちゃった。
そこでさっそく修正しました。
ところが直後に、この修正によってirbが動かなくなったとDave Thomasから報告がありました。 具体的にはdelegate.rbがこの変更に対応していなかったせいです。 この問題そのものはdelegate.rbを修正することで簡単に直せたのですが、 この一件で大きな矛盾が明らかになったような気がします。
つまり、言語またはライブラリのデザインに間違い(使いにくさ、一貫性のなさ)があったとき、 長期的な観点からは修正した方が良いに決まっています。 間違い、一貫性のなさは言語の良さを損ねます。 しかし、その修正の結果、非互換が生まれれば、少なくとも短期的には多くの問題が生じます。 ユーザが多ければ多いほどその問題は深刻になります。
かつて、Rubyのユーザがわずかであった頃にはこれはあまり問題ではありませんでした。 しかし、いやまRubyユーザは世界中に数えきれないほどいます。 ささいな変更でも影響がばかにできなくなっています。
短期的な視点に立って欠点を放置するか、長期的な視点に立って欠点を修正するか。
アジャイルな立場からいえば、変化を恐れず対応するべきなのでしょうが、言語の場合には
という点で、急激に変化してはいけない傾向があります。 アジャイルの指導者の一人であるDave Thomasに相談しましたが、 彼にも良いアイディアはないようです。
結局今回の問題は、
という方向で結論を出しましたが、変化に強い言語デザインとはどのようなものかということについては 結論が出ないままなのです。
ゴールデンウィークだというのに引っ越しの片付けばかりではあんまりだろう、 ということで、家族サービスに安来にある温泉プールに。
もっと近いのもあるのにここをひいきにしているのは、 親戚のうちの隣だから。もっとも、従姉とはずいぶん疎遠にしているので、 近くにいっても「思い出す」だけなのだが。思ってるだけでは通じないのは自覚してるのに。
近いうちに挨拶しに行こう。祖母の墓参りもしよう。
それはさておき。遊ぶ。 もっとも、私はプールでは目が良く見えないし(ど近眼の悲しさ)、 すっかり泳げなくなっているので、お湯につかっている時間の方がはるかに長い。 妻も似たようなものだ。もっとも彼女は数年前まで水泳教室に通っていたので、 私よりはマシだが。
前回も同じようなことをしているなあ。
すっかりふやけて帰宅する。
〆切からの開放感。なんてすばらしいんだ。
というわけで、家族で3連休を楽しむとする。 1日目は松江フォーゲルパークへ。 今はもう松江市民だから市民料金が適用されるのがちょっと嬉しい。
鳥と花がいっぱい。 駐車場がいっぱいだったので、どうなることかと思ったが、 中はそれほどひどい混雑ではなく、十分楽しむことができた。
いろんな鳥がいたけど、やはりペンギンが一番かわいいかな。 特に一番小さいのは末娘と誕生日が同じというのがいい。名前も「ももたろう」だし。
B00097D8YO
中学生のお姉ちゃんたちは休日だというのに部活だということで、 残った息子と末娘を連れて実家へ。
実家の母は、妹がプレゼントしたという 『B00097D8YO』にはまっていた。
「やってみろ」とのことだったのでチャレンジ。 脳年齢判定では 最初は42歳、数回繰り返してようやっと36歳くらい。
トレーニングでは、いくつかのものでロケット級という判定を得たものの、 残りは総じて自転車級程度。かなり脳が硬化しているらしい。 LLなんか作ってて、楽をすることにかまけているからだろうか。
確かに楽をするために人一倍努力していることは認めるが。
まあ、周囲からどう見られているかどうかはわからないが、 私の教会でも
のようなIT化が進んでいる。決して最先端というわけではないけど、 まあ、それなりにテクノロジーをキャッチアップしているということで。
どうやらRastインデックスデータベースが壊れたようで、 メールのインデックス作業が時々刺さるようになった。 こうなると当該プロセスをkillするしかないので、 なかなか具合が悪い。しょうがないので 意を決してRastインデックスを再生成することにする。 インデックス生成が遅いのがRastの欠点の一つなので なかなか躊躇していたのだが、こうなればしょうがない。 GWの休みを利用してやってしまうことにする。
数えたらメールは17万通ほどあった。 さて、何時間かかるか。
プログラミング言語誕生の地。
一番驚いたのは、「Ruby誕生の地」をズームすると 0.95リリース当時の勤務先の住所になっていること。
一体、誰が調べたんだ。他の言語はどうなってるんだろう。
追記
このエントリへのリンク元で「Ruby生誕の地は名古屋」であるとの記述を数件見たが、 実際は、Ruby誕生の地は物理的には浜松市(舘山寺町)、厳密にはネット上(名前が決まったのは 東京・浜松間のチャット上だったから)である。
Borlandからスピンアウトした(というか、個人的な印象としてはこっちの方が「ボーランド」らしい) CodeGearのイベント。
今回は「CodeGearの新しいRuby IDE」が発表されるそうだ。 最初はRailsConfで発表されるらしい。 コードネームとかも聞いたけど、公表しない方がよいだろうな。
Ext3をベースにしたバージョニングファイルシステム。 任意の時間の状態に戻ることができるらしい。 OSXに搭載されるというタイムマシン機能のようなものだな(未来には行けません)。
カーネルパッチが必要と言うことなのでまだ試していない。
なんかファイルシステムまわりのいろいろな面倒から解放されそうなので 期待している。あと、ファイルシステムそのものに全文検索機能があれば 私の生活がずいぶん楽になりそう。
後者はfamとHyperEstraierを組み合わせれば現在の技術でも十分に実現可能だと思うけど、 面倒なので放置している。