あおきです。

  In Mail "[ruby-list:16254] Re: maillib? 0.5.0"
    matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

> まつもと ゆきひろです

> |> 個人的には英語のドキュメントをrd形式で埋め込むのかなと思って
> |> ますが、日本語(なり英語以外の言語)のドキュメントはどう持つの
> |> が良いでしょうねえ。
> |
> |MIMEっぽくBase64エンコードして埋めこむのはどうでしょうか。
> 
> ruby-talkでも話しましたが、私は少なくとも現時点ではあまり賛
> 成していません。

そうですか…


> 最大の問題はプログラムを読んだときにエンコードされたドキュメ
> ントだと読めないことです。私自身はたとえばPerlだとPODのドキュ
> メントを読むのはmanやperldocで読むよりも、スクリプトファイル
> を直接読むことの方が多いので、このやり方だとかなり不自由をこ
> うむります。

talkにも書きますが、ぼくの意見をまとめます。

まず、デコードが必要なのは確かですが、デコードはインストールの時
(例えば、make install の時に)一回すればいいので、さほど問題に
ならないのではないかと思っています。
例えば、/usr/local/lib/ruby/1.4/*.rb には、デコードしたものを
置くわけです。もちろん、展開したその場でオリジナルを置きかえて
しまってもかまいません。それなら、コードとドキュメントを
いっしょに(しかも日本語(など))で見ることができます。

また、talkでまつもとさん自身がおっしゃっているように、RDの利点と
して、別ファイルでなく、コードにうめこんであることがあります。
例えば、

=begin
=== hello
挨拶をする。
=end

  def hello
    puts 'Hello, World!'
  end

のように、メソッドとその解説を並べて書くことができればわかり
やすいですし、コードとドキュメントの乖離を防ぐことができます。
しかし、英語以外を別ファイルにしてしまうと、この利点が得られる
のは英語だけで、今度は英語ドキュメントと日本語ドキュメントの
同期を取る作業が必要になります。これでは、せっかくのRDの利点が
失われてしまうのではないでしょうか。


  In Mail "[ruby-talk:00749] Re: RD with multi charset"
    matz / netlab.co.jp (Yukihiro Matsumoto) wrote:

>  * it requires preprocesser (encoder) step for the scripts, which is
>    not desirable for me.

たしかに、エンコードと呼ぶとプリプロセッサのように感じるかも
しれませんが、あくまでエンコードは「表現の変更」で、内容を
編集するわけではないですから、役割としてはtarと同じようなものと
言ってよいと思います。

あるいは、Rubyスクリプトをメールで送るときには、MIMEマルチパートで
くみこむことも、base64されてしまうこともあります。これも
エンコードの仲間ですが、だれもこれを「プリプロセッサにかけてる」
とは思わないですよね。


それとtarで思いついたのですが、この方法を使うと、Rubyスクリプトを
単体(ファイルひとつ)で送れるというのも利点だと思います。


> |たとえば、ドキュメントを書く人はこんなものを作ります。
(略)
> そーですねえ。英語ともうひとつの言語という範囲の間はこの方法
> でも問題ないでしょうが、英語とドイツ語と日本語とか、日本語と
> 韓国語とかだと、全体でUnicodeのようなエンコーディングを使わ
> ないとファイルを編集できませんね。

mule(emacs20)は編集できないのでしたっけ?

また実際問題として、3コード以上同時編集するのはまれではないでしょうか。
たとえば、日本語と中国語と英語だったら困りますが、それはそう簡単には
ありそうもないですよね。


> そういう意味でも別ファイルの方が良いかも。私自身はまだ
> Unicodeを手放しで受け入れる気にはなれませんし。
> 
> UTF-8を使った別の国際エンコーディングがあれば良いのに。いや、
> 別に無理にUTF-8でなくても良いんだけど。たとえばMuleの
> internalコードを提案するとかいう話は無いんですかね。

個人的には iso-2022-int がひろまってほしいです。
Unicode は意地でも使いません。
-------------------------------------------------------------------
あおきみねろう