«前の日記(2006-11-09) 最新 次の日記(2006-11-11)» 編集

Matzにっき


2006-11-10 [長年日記]

_ DS Lite

松江のヤマダ電機で売ってた。

やはり、人が少ないところの方が有利なのか。

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

なんか、Railsの近くを旋回しているような(前回はMVC)連載だが、 さらに同じような傾向で、今回は「オープンクラス」について。

Lispの経験があれば、わりと自然なのだと思うけど、 Javaスクール出身者にしてみれば、 トンでもないことなのかもしれない。

で、オープンクラスのメリットとデメリットについていろいろ。 特にActiveSupportがどんなに「スゴイこと」してるのかについて。 この「スゴイ」は、いい意味も悪い意味も両方ね。

っていうか、このオープンクラスもなにか手当てを考えたい領域ではある。 2.0(3.0?)では、クラスボックスかなにかでもうちょっとなんとかしたい。

本日のツッコミ(全10件) [ツッコミを入れる]
_ ささだ (2006-11-25 04:31)

いいなぁDS.

_ (2006-11-25 09:31)

ついでにPS3も手に入れて、バリバリ並列演算するRubyもこさえてください。

_ m2n (2006-11-25 12:54)

『前4日分』、頁のおしりに(も)あるとウレシイです。

_ みずしま (2006-11-27 06:02)

最近はJava界隈でもAspectJとかオープンクラスな言語が<br>知られて来ているので、そんなにトンでもではない気がします。

_ dai (2006-11-27 10:52)

オープンクラスって何ですか?<br>一般的な語呂すぎて、ググってもノイズ多くて。

_ まつもと (2006-11-27 17:22)

後から定義が追加できるクラスのことです。<br>C#のpartial classにちょっと似てるかも。もっと原始的ですが。

_ dai (2006-11-27 18:04)

なるほど。<br>ruby だと extend とか、c++ でも<br>template <class BASE> class Foo: public BASE { ... };<br>なテンプレートも一種かな。<br>好みの機能だけれど、多用すると読むのが大変になって苦労します。

_ まつもと (2006-11-27 18:07)

RubyのextendもC++のテンプレートも、オリジナルが変化しないでオープンクラスとは呼ばないと思います。<br>ただ、「多用すると読むのが大変」という点についてはまさにその通りで、その辺が将来の課題です。selector namespaceとかclassboxとかアイディアだけはあるのですが(私の中では)実用レベルまで消化できてません。

_ dai (2006-11-27 20:03)

すいません、C# 調べるのサボったせいで早とちりしちゃいました。<br>パーシャルクラスは、クラス定義を分離して書ける機能のようで、Ruby はそういえば既にあるクラスも普通にクラス定義書けますね。Lisp もクラスは知らないけれど、関数の束縛は変更できるし。<br>ユーザーレベルで標準クラスの機能を変更できちゃうやつですね。確かにこれはオープンクラスという名でしっくりきます。<br><br>これをやられると、アプリのあずかり知らぬところで勝手に動作が変わってしまうという。うまく使うと動的なことが簡単に書けそうですが、読む以前に使いこなすのもかなり難しそう。というか、使いこなせたことが無いかも。日経Linuxの記事には期待です;-)<br><br>C++ は言語レベルだと無理っぽいですね。アセンブラでごちゃごちゃやるか、Binary2.0よろしくリンクを差し替えるくらいでしょうか。プリプロセッサやテンプレートの特殊化でも似たようなことができそうだけど、拡張されるクラスの方で拡張されるために何かしてないとダメかな。

_ to dai (2006-11-28 01:50)

いうなればオープンクラスは元のクラスを書き換えることです。拡張して別のクラスを作ることではありません。<br>したがってC++ではどうやっても実装できません。そもそもコンパイルできないのでアセンブラ云々は問題外です。

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

«前の日記(2006-11-09) 最新 次の日記(2006-11-11)» 編集

track feed Matzにっき Creative Commons License This work is licensed under a Creative Commons License.