From: Akinori MUSHA Date: 2002-05-09T02:57:58+09:00 Subject: [ruby-dev:17022] Re: 標準添付案 At Thu, 9 May 2002 00:47:46 +0900, GOTO Kentaro wrote: > >  devel ってどういう意味のカテゴリでしょうか。 > > 少なくとも devel/which に関しては、「開発のためのユーティリ > ティ」を意図していたので devel にしたのが真相です。Devel と > いう名前自体は FreeBSD の ports/devel からとりました。すなわ > ち software development utilities and libraries のつもりです。  FreeBSD ports の devel カテゴリはごった煮状態です。他に適切な (プライマリ)カテゴリが見当たらないライブラリはみなここに入るので、 Ruby のライブラリを分類する際の参考になるものではないと思います。  もし「開発時にしか使わず、最終製品には使われないもの」という 意味であれば、ある程度線引きも明確で意味があるかもしれません。 しかし、すでに Devel::Logger のようにこれに当てはまらないものも あります。  人によって使い方が違うなら分類の意味がないので、標準として採用 するならば曖昧でない定義と周知徹底が必要と思います。 > 僕が名前空間を分けたいと思う一番の理由はやっぱり名前の衝突を > 回避するためです。古くからあるものについてはその名前が知られ > てるのでそれを避けることがユーザの間で習慣化されていると思い > ますが、新しく追加されるものについては、新参の方が避けるのが > 良いのではないかと考えます。  私の考え方は少し違います。トップレベルは標準に予約されていると 考える方が自然ではないでしょうか。一般的な名前は、 Ruby 本体や 標準ライブラリにいつクラス名やライブラリ名として使われるか分から ないわけです。  したがって、予め衝突を避けたければ自分用のローカルな名前空間を 設けて使うべきでしょう。自分の名前、組織名、プロジェクト名など、 いくらでもユニークなものは考えられます。 # まあ、私も一般的な名前を使うのが好きなのでよくぶつかっては # 直していますが。 ;)  身近な例では、 Java はドメイン名のコンポーネントを逆順に並べた ものをパッケージ名にすべしというガイドラインがありますよね。 (com.ms.* みたいな確信犯はおいといて) > もっといえば既存のものについても徐々に整理分類してディレクト > リに分けていくのが良いと僕は思っています。その方が衝突しにく > いだけでなく説明的だと思うからです。例えば、debug や pp も > devel/ に移すのが適当と僕は感じます。しかしこれは感じ方の問 > 題かも知れません。  その「感じ方の問題」というのが、分類の難しさの根源でしょう。 定義の明確でないカテゴリは(あるいは明確なものさえ)、どうにも 分類しかねるものが出てきます。カテゴリの論議に時間を取られる上、 新しいカテゴリを作るとなれば既存ライブラリの移動や再編を迫られ ます。  名前の衝突はユーザが上記の通り自分で避けることができますが、 移動は否応なく影響を受けてしまいます。それを嫌ってより適切な カテゴリへの移動を怠れば、一貫性の低い分類という望ましくない 状態に陥るでしょう。  中には非常に有効な分類もあると思いますが、曖昧なカテゴリの 導入はメリットよりも煩わしさの方が大きいように思われます。 -- / /__ __ Akinori.org / MUSHA.org / ) ) ) ) / FreeBSD.org / Ruby-lang.org Akinori MUSHA aka / (_ / ( (__( @ iDaemons.org / and.or.jp "Somewhere out of a memory.. of lighted streets on quiet nights.."