あおきです。

  In mail "[ruby-list:17087] Re: RD and internationalization "
    Toshiro Kuwabara <toshirok / yb3.so-net.ne.jp> wrote:

> Toshです。

> > あと、Tosh さんのメールにあったことを考えあわせて、
> > =begin \S+ は通常無視するけが、=begin [rR][dD] の場合だけは RD と
> > みなすようにするのはどうでしょうか?

> "=begin foo ... =end"の様な構造はなるべく使いたくないと考えています。
> "=begin ... =end"は単にRDとRuby scriptの境界線で、それ以上の意味を持たせる
> のはどうか、ってことです。
> "=begin foo ... =end"とか"=begin foo="bar" ... =end"みたいなものは簡単に
> いろいろ拡張できそうなので便利だとは思いますが、あまりLaTeXの環境やHTMLの
> エレメントじみていてRDらしくないと思います。汎用のブロックみたいのは
> 使いたくないし、HTMLの属性みたいな指定をごちゃごちゃつけるのもやりたく
> ないわけです。

その気持ちはとってもわかるのですが、しかしそれはあくまで「Toshさんの」
感じかたですよね。だから、そう感じない人もいると思うんです。
それに、この提案の動機になったのはRDの中身をいじるためというより、
RDの入っているファイルを操作するためですから、RDらしさとか、そういう
ものとは関係ないんではないでしょうか。

また逆に、=begin のあとに何も来られないと決めた場合、ブロック
ごとの情報を添付する簡潔な手段がなくなります。ヘッダに書いておくと
しても、ブロックが減ったり増えたりするたびにヘッダを修正する手間が
必要になります。
RDは基本的にソースと交互に埋めこまれるものですから、それをいろいろ
いじろうと思ったら、どうしてもブロックごとの情報を格納しておく
必要がでてくるはずです。そのときに簡単な手段がなくなるのは非常に痛い。

一方読む側に立ってみても、「=begin\s*(RD )?.* がドキュメント」
というルールは不自然とは思えないし、とくに不利益もないといえます。

書くときも、=begin をコメントにしようと思って rd なんてつけるひとは
いないと思えないので、やはりこれも不利益にはなりません。

またツールにとっても、セパレータが「^=begin\s*$」から
「^=begin(\s*|\s+RD\s+.*)$」に変わるだけで、他の部分には影響を
与えませんから、たいした手間はかけずに実装できるはずです。

そしてまた、=begin RD が使えるのであれば(今は思いつかなくても)、
とにかくなんでもできるのと同じです。もしかしたら、すごく便利な用途が
みつかるかもしれないわけです。ちょっといじるだけで拡張性がゼロで
なくなるのですから、それを許さない根拠が「らしさ」だけでは弱いと
思います。
-------------------------------------------------------------------
あおきみねろう@今月中は「集中開発モード」