first-class component model

WicketのIntroductionを読んでいたら"first-class component model"という言葉が出てきました.first-classというのはScalaでも出てきた言葉で,よく分からないなーってことで調べてみました.
first-class objectで調べたところ以下のような意味でした.

 第1級オブジェクトなどとも訳されるが、単にファーストクラスオブジェクトとも言われる。
 定義としては、数学的オブジェクトとしての権利を全て取得しているオブジェクトのことである。詳細には、以下の能力を持つプログラム言語要素のことである。
 1.オブジェクトに名前がつけられる。
 2.引数として関数・手続に渡すことができる。
 3.結果値として関数から帰って来ることができる。
 4.データ構造に組み込むことができる。
 通常は、単純なデータ又はデータ構造しかこのような身分を持つことはないのだが、関数型言語では、関数にもこのような身分を持たせている。

http://sky.zero.ad.jp/~zaa54437/programming/concepts/index3.htm#f0

あとはMatzさんがこんな感じで答えていたり

first class objectっていうのは変数に格納したり,関数(メソッド)の引数や戻り値にできるようなオブジェクト(このオブジェクトはK&Rに出て来るような意味でとらえてください)のことです.

http://java-house.jp/ml/archive/j-h-b/001927.html

Wicketでは無名クラスとか使うからそういうところが"first-class component model"って言うのかな.とりあえずそういう理解で進めていこう.