<< 前 ホーム 次 >>

bakaid: 20060426

あははは、ほんとにbreak忘れてる。
しかも仕様は満たしてるし。

--

移譲という考えは、JavaやC++に限らず、
OOPの一般的な考えです。

Rubyには移譲を直接的にサポートする
文法みたいなのはありませんけど、
移譲をしやすくするためのライブラリが
用意されています:

http://jp.rubyist.net/magazine/?0012-BundledLibraries

それと、Rubyのような言語は
もともとDuckTypingですから
移譲しやすいということもできます。

class Foo
  def initialize(obj)
    @obj = obj
  end

  def doit
    @obj.doit
  end
end

このとき、Fooは@objにdoitの責任を移譲してるわけですけど、
その@objの型はRubyでは問われませんよね。
その@objで指されるオブジェクトがdoitという
名前のメソッドを持ってさえいればいい。

移譲のメリットは、動的にオブジェクト間の
関係を変えることができることです。

上の例でいえば、@objに入るオブジェクトは
実行時に決まります。

一方、継承を使うと、その関係というのは
コンパイル時に (静的に) 決まります。

結城さんのとこではDecoratorパターンが紹介されてますね。
Javaはもう忘れちゃいましたけど:

BufferedReader in = BufferedReader.new(FileInputReader("foo.txt"))

  # って、今java.sun.comで確認したら、まんま同じでワラタ

こんな感じで。BufferedReaderは、FileInputReaderだけ
じゃなくって、たとえばStringReaderなんかにも
移譲できるようになってます。

あと、DIコンテナなんかも移譲を使ってますね。
上の例でいえば、BufferedReaderはFileInputReaderに
依存してるわけですけど、依存する物や、
依存するタイミングを動的に変えたいというのが
DIの目的ですよね。

--

http://radar.oreilly.com/archives/2006/04/state_of_the_computer_book_mar.html
http://radar.oreilly.com/archives/2006/04/state_of_the_computer_book_mar_3.html
http://radar.oreilly.com/archives/2006/04/state_of_the_computer_book_mar_2.html

URL末尾の番号がおかしいように思うんですけど、
上から順番に1,2,3です。

自分は、3番目のは、ほとんど読み飛ばしました。

それほど難しくない英語ですから
一読することをおすすめします。

自分が覚えてるとこだけ書くと:

* RedHatはもう市場を引っぱっていない。
* それと合わせてLinux全体としても一段落か。
* ソフトウェア社会学系は、量はそうでもないけど勢いがある。
* Rubyが一番ホット。
* Javaの落ち込みが大きい。
* C/C++も伸びてない。
* VB, C#は伸びてる。
* PerlよりもPythonのほうが勢いがある。

そんなとこですか。

覚えてますかね? 前にもT.O'Reilly氏が市場分析して、
それをこのページでも取り上げたことを。

今回の結果は、前回のT.O'Reilly氏の市場分析を
裏づけた結果といってもいいでしょうね。

まぁ、上のリストは自分の興味のあるとこ
だけを取り出しただけで、他にもWeb2.0関係だとか、
iPod関係とかについても書かれてます。

--

ああ、あと上の分析って、Neilsen BookScanってとこの
データをMySQLにブチ込んで、treemapっていう
可視化ツールを使ってるんです。

でね、こういう作業を誰がやるんですか
っていう話ですよね。

分析するのは経営者だとしても、
データをMySQLに突っ込んだり
するのは誰ですか?

プログラマですよね。

だからプログラマの需要はなくならない
って自分はいってるんですよ。

本家Permlink

<< 前 ホーム 次 >>


Copyright © 1905 tko at jitu.org

バカが征く on Rails