あおきです。

  In mail "[ruby-ext:01611] Re: require 'dir/...'?"
    matz / zetabits.com (Yukihiro Matsumoto) wrote:

> まつもと ゆきひろです

> 高橋さんの論理はひとつの目安に過ぎません。すべての当てはめて
> うまくいくとは限りません。あおきさんがそう思うのでしたら、きっ
> とtmailは当てはまらないケースなんでしょう。

ええ、それはわかります。ぼくが気になってるのは

  In mail "[ruby-ext:01586] Re: require 'dir/...'?"
    TAKAHASHI Masayoshi <maki / inac.co.jp> wrote:

> なのだから、使えなくても別に仕方ないかと。実際に使うのは個々の
> Foo::Bar や Foo::Baz なのですし。素直に、
> 
> require 'foo/bar'
> require 'foo/baz'
> 
> でいいんじゃないでしょうか。
> 
> もし、それをまとめて提供するべき、という判断があるなら、その時は
> foo.rb を用意する時です。

この一点です。まとめて提供する時の名前が foo.rb か別の名前かっていう
のは別にどうでもいいんですが、もともとのメールの

  Foo だったら foo.rb、Foo::Bar は foo/bar.rb、自然じゃん!

という流れで(これ自体はわかる)、なんで foo/bar(Foo::Bar) と
foo/baz(Foo::Baz) をまとめるのが foo.rb になるのが同様に自然と言え
るのかわかんない、ということです。クラスパスとディレクトリパスが
対応してるってとこが元の論理の「自然さ」を支えてるわけでしょう?
(違うの?)

ライブラリのエントリポイントを foo.rb にすることそれ自体が変だと
言ってるわけじゃなくて、パスが対応して自然でいい、という流れで
foo.rb も自然だろう、というのが変だということです。

ライブラリ foo に対して foo.rb が適切なのは、まつもとさんが
おっしゃっていたように、「提供する機能の名前」として考えるとか、
あるいは単に「短くて見た目いいから」でしょう。クラスパスと対応
するからじゃなくて。

ということをはっきりさせたいわけです。

# まあハタから見ればどーでもいい違いですが。
-------------------------------------------------------------------
青木峰郎