藤本です、こんにちは。

From: toyofuku / juice.or.jp
Subject: [ruby-list:8090] Re: filename
Date: Mon, 25 May 1998 18:18:58 +0900

>   豊福@パパイヤです。
> 
> 藤本さん
> > f = File.new("hoge")
> > f.unlink
> > ということが、わざわざファイルをオープンしなく
> > てもできます。(Javaに似てるなぁ、、、)

  これ、藤本じゃなくて立石@JAISTさんが書いたです (^^;

  Javaとの類似点を考える場合、RubyのFileクラスは、インスタンスの雛型と
しては、どちらかというとjava.io.FileInputStream、java.io.OutputStream
に近く、java.io.Fileに相当するクラスはないと考えるのが妥当のように思い
ます。

  この件に関連して、僕は[ruby-list:7910]あたりで「『あるファイルやディ
クレクトリを特定するクラス』と『ファイルに対する入出力を行なうクラス』
というクラス構成になっているといいと思うんだけどなぁ」というようなこと
を書きました。

  僕の考えでは、この関連の話しがややこしくなりがちな原因の一つとして、
ファイルに対する入出力を行なうための、IOクラスの派生クラスの名前が、
`FileIO'とかでなく`File'だからじゃないかという気がしています。Fileクラ
スのインスタンスに対して、そのクラス名ゆえに、入出力と無関係の役割を期
待してしまい混乱が生じてしまうように思います。
  java.io.File(Input|Output)Stream的な性格とjava.io.File的な性格の両方
を一つクラスにするのには無理がありそうなんだけど、Fileクラスに2つの性
格をごっちゃに期待してしまい混乱するという感じです。

P.S.
  「Fileクラスはファイル入出力のためのIOの派生クラス」と意識すれば混乱
が減るんじゃないかなぁという気がしているので、それが言いたくて書きまし
た。「クラス名変えて〜」って言ってるわけじゃないです (^^;

=============================================================
 藤本尚邦  FUJIMOTO Hisakuni                hisa / imasy.or.jp
=============================================================