From: "NARUSE, Yui" Date: 2008-09-30T08:18:09+09:00 Subject: [ruby-dev:36626] Re: Encoding.default_internal のためのパッチ 成瀬です。 Yukihiro Matsumoto wrote: > |ある程度再利用を考えたプログラムではそもそも、可能かも分からない特定のエ > |ンコーディングへの変換を可能な限り避けてエンコーディング独立なコードを書 > |くべきです。 > > 「書くべき」というのは一つの見識であるとは思います。ひとつの > アプリケーションが取り扱うべき文字コードがひとつしかない時に > はその方が良いでしょう。 文字コードが一つしかないときというよりは、 どんな文字コードでデータがくるかわからないが、 別の文字コードのデータとは混ぜないときでしょうね。 # 混ぜないだけで、同じプロセスで異なる encoding がくる場合はあり得る そのような場合は encoding には触れず、変換もせず、 普通の文字列操作だけを行っていれば問題はないはずです。 このような場合には default_internal はない方がありがたい。 まぁ、これってフィルタとかその類の話ですね。 > |考えてみると、default_internalが嬉しいケースというのは、やはり短いスクリ > |プトを書く場合でしょう。ところが、そのようなケースでは外界のエンコーディ > |ング(default_external)をそのまま内部で処理すればよいのであって、つまり > |default_internalはnil(無変換)で良いのです。 > > |してみると、「完璧な振る舞いを定義できないならば不要」というのは1つの答 > |えではないでしょうか。 > > それも否定はしません。フィルタのようなプログラムならほとんど > の場合、default_intenalのようなものが必要になることはないで > しょう。 > > が、たとえばGUIツールキットを使ったデスクトップアプリケーショ > ンを書こうと思ったら、なんにしても内部エンコーディングのよう > なものが欲しくなるのではないでしょうか。 思うに、このようなケースにおいて、default_internal によって 1 つの宣言以上の メリットが出せるのかが重要な点なのでしょう。 -- NARUSE, Yui