[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000932] name problem



堀之内 @ 名前問題です。

長くなりそうだったので、ごとけんさんに個人的に話を聞いたのを、
まとめて流します。

結論は、パッケージ名、tarボール名はそのままに、require の引数と 
include の引数名にブランドを冠せよ、です。

それがいいと思うようになりました。あとはブランド名を具体的に
どうするかです。

# 既にテストを始められている方をまた泣かせてしまいます。すみま
   せん。

NumRu か Davis。

NumRu で行きますか?



=================================================================
From horinout Thu Oct 25 09:28:15 +0900 2001
From: Takeshi Horinouchi <horinout@xxxxxx>
To: gotoken@xxxxxx
Subject: Re: NetCDF

ごとけんさん

# 皆さんうざいかなと思って個人メールに切り替えました。

昨日dennou-rubyに出したように悩める子羊状態ですが、

パッケージ名: RubyDCL
中身: DCLのRubyバージョン
require "dcl"

となっているものを、require だけブランド名(要するにディレクトリ
名)を冠するようにするのはどう思いますか。各パッケージのドキュメ
ントやホームページの冒頭に、NumRu(?) ブランド製品であることを目
立つように書いて、RAA の1行説明にも冒頭に (a NumRu library) と
か書けばいいかなという気はしますが、どうでしょう。私としては、ま
だ Ruby ユーザーでない NetCDF ユーザーetcに、Ruby での「唯一で標
準的に使われるべき」 インターフェースであることを印象づけ、Ruby 
に乗り換える不安を少しでも軽減するような名前にしたいので、
NumRu/NetCDF は抵抗あります。require になると "numru/" が入るの
は、最初はとまどっても、「あそこから出てるのはとにかく require
"numru/なんとか" すればいい」、と納得して貰えるんじゃないかと思
いますが...。ごとけんさんが紹介されたJava のように、パッケージ名
とは別に、名前の重なりを防止する文字列 (java の URL もどき)を冠
するというのが、今後 Ruby での一つの慣習になって行きそうだと思い
ます? それなら、いいやり方と思いますが。

堀之内

=================================================================
Subject: Re: NetCDF
From: GOTO Kentaro <gotoken@xxxxxx>
To: horinout@xxxxxx
Date: Thu, 25 Oct 2001 10:27:41 +0900 (JST)
X-Mailer: Mew version 1.95b126 on Emacs 20.7 / Mule 4.0 (HANANOEN)

From: Takeshi Horinouchi <horinout@xxxxxx>
Subject: Re: NetCDF
Date: Thu, 25 Oct 2001 09:28:15 +0900 (JST)

> # 皆さんうざいかなと思って個人メールに切り替えました。

この議論はオープンにしても構わないと思うんですけど ^^;;

> パッケージ名: RubyDCL
> 中身: DCLのRubyバージョン
> require "dcl"
> 
> となっているものを、require だけブランド名(要するにディレクトリ
> 名)を冠するようにするのはどう思いますか。

tarball名はバージョンが分かればある意味なんでもいいでしょう。
require と include の引数は対応をとるべきです。require はイ
ンストール位置を反映しますが、include は名前空間の取り込みで
す。この二つが乖離するとユーザのディレクトリが複雑になり、ア
ンインストールなどが面倒になります。

> 私としては、ま
> だ Ruby ユーザーでない NetCDF ユーザーetcに、Ruby での「唯一で標
> 準的に使われるべき」 インターフェースであることを印象づけ、Ruby 
> に乗り換える不安を少しでも軽減するような名前にしたいので、
> NumRu/NetCDF は抵抗あります。require になると "numru/" が入るの
> は、最初はとまどっても、「あそこから出てるのはとにかく require
> "numru/なんとか" すればいい」、と納得して貰えるんじゃないかと思
> いますが...。

こっちは難しい問題ですね。例えば、最近目立つものにはOpenSSL 
があり、これらは複数のRubyバインドが存在します。これらは将来
的には淘汰なり統合なりして欲しいと思いますが、それはもう少し
利用者の評価が出てからだと思います。

この辺はポリシーの問題でもあるのですが競合しうるものを
shippingする場合は、

 - 融通が効くライセンスで提供すること(LGPLのみは後で困るとか)

 - あんまり唯一っぽく名乗らない方がいい(MPIみたいにベンダー
   のお膝元で出てるのは別にして)

というのが僕の考えです。

> ごとけんさんが紹介されたJava のように、パッケージ名
> とは別に、名前の重なりを防止する文字列 (java の URL もどき)を冠
> するというのが、今後 Ruby での一つの慣習になって行きそうだと思い
> ます? それなら、いいやり方と思いますが。

RAAが混乱してて何とかしてくれという論調は世界的に高まってい
るので今後何らかの階層化は起こるでしょう。さすがにJava方式は
ないと思いますが。

問題は、require の引数をどこで予約するかということですね。こ
れを予約するのがまず大事で、同じく大事なのはモジュール名(名
前空間)の予約です。理想的にはrequireの引数か、それに対応する
モジュール名をソフトウェアの名前としてRAAに登録するのがもっ
ともシンプルな解決法だ思いますが、それをみんなが受け入れるか
どうかは分かりません。

# RAAに最近入ったBioRubyはなんかすごそうです。元気な若者がい
# たら是非レビューして欲しいと思います。

-- Gotoken

=================================================================
Subject: Re: NetCDF
From: Takeshi Horinouchi <horinout@xxxxxx>
To: gotoken@xxxxxx
Cc: horinout@xxxxxx
Date: Thu, 25 Oct 2001 10:49:37 +0900
X-Mailer: Mew version 1.94.1 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)

堀之内です。

> > # 皆さんうざいかなと思って個人メールに切り替えました。
> 
> この議論はオープンにしても構わないと思うんですけど ^^;;

ですね。あとでまとめて流しましょうか。

> > パッケージ名: RubyDCL
> > 中身: DCLのRubyバージョン
> > require "dcl"
> > 
> > となっているものを、require だけブランド名(要するにディレクトリ
> > 名)を冠するようにするのはどう思いますか。

> tarball名はバージョンが分かればある意味なんでもいいでしょう。
> require と include の引数は対応をとるべきです。require はイ
> ンストール位置を反映しますが、include は名前空間の取り込みで
> す。この二つが乖離するとユーザのディレクトリが複雑になり、ア
> ンインストールなどが面倒になります。

考えてませんでしたが、言われてみると確かに。ところで、
require "numru/hogehoge" はできるとして、include はどうするんで
しょう。名前なんで include NumRu/HogeHoge にはならないような気が。
include NumRu::HogeHoge かしらん。要するに NumRu というモジュー
ルの中で HogeHoge モジュールを定義する? クラス名はどうしましょ
うね。HogeClass クラスがあったとして、obj = HogeClass.new でいい
のか、obj = NumRu::HogeClass.new かということですが。

> 問題は、require の引数をどこで予約するかということですね。こ
> れを予約するのがまず大事で、同じく大事なのはモジュール名(名
> 前空間)の予約です。理想的にはrequireの引数か、それに対応する
> モジュール名をソフトウェアの名前としてRAAに登録するのがもっ
> ともシンプルな解決法だ思いますが、それをみんなが受け入れるか
> どうかは分かりません。

良さそうですね。今までの話を考えると、少なくとも一覧になってて欲
しい。

> # RAAに最近入ったBioRubyはなんかすごそうです。元気な若者がい
> # たら是非レビューして欲しいと思います。

ホームだけみてみました。確かに。

堀之内

=================================================================
Subject: Re: NetCDF
From: GOTO Kentaro <gotoken@xxxxxx>
To: horinout@xxxxxx
Date: Thu, 25 Oct 2001 11:13:00 +0900 (JST)
X-Mailer: Mew version 1.95b126 on Emacs 20.7 / Mule 4.0 (HANANOEN)

From: Takeshi Horinouchi <horinout@xxxxxx>
Subject: Re: NetCDF
Date: Thu, 25 Oct 2001 10:49:37 +0900

> require "numru/hogehoge" はできるとして、include はどうするんで
> しょう。名前なんで include NumRu/HogeHoge にはならないような気が。
> include NumRu::HogeHoge かしらん。要するに NumRu というモジュー
> ルの中で HogeHoge モジュールを定義する? クラス名はどうしましょ
> うね。HogeClass クラスがあったとして、obj = HogeClass.new でいい
> のか、obj = NumRu::HogeClass.new かということですが。

その通りです。::NumRu::HogeClass があったときは、ユーザの選択で

  include NumRu

することで、単に HogeClass.new とすることができるわけですね。

さらにいえば、例えばWEBrickというwebサーバツールキットでは、
webrick/ ディレクトリの他に webrick.rb もインストールし、
require "webrick" することで webrick.rb をロードして、そいつ
が webrick/ 以下のライブラリをすべてロードするようになってい
ます。

http://www.jin.gr.jp/~nahi/RWiki/?cmd=view;name=WEBrick


> > 前空間)の予約です。理想的にはrequireの引数か、それに対応する
> > モジュール名をソフトウェアの名前としてRAAに登録するのがもっ
> > ともシンプルな解決法だ思いますが、それをみんなが受け入れるか
> > どうかは分かりません。
> 良さそうですね。今までの話を考えると、少なくとも一覧になってて欲
> しい。

ですよね。ちなみに、CPANは大体そういう風になっています。

http://www.perl.com/CPAN-local/modules/
http://www.perl.com/CPAN-local/modules/by-authors/
http://www.perl.com/CPAN-local/modules/by-category/
http://www.perl.com/CPAN-local/modules/by-module/

-- Gotoken