[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Unicode, or die



塩崎です。

# tech-misc-ja@jp.netbsd.org や freebsd-tech-jp@jp.freebsd.org にも Cc します。


昨日、お仕事で Linux World なる「もよおし物」に行ってきたついでに、
Li18nux BOF を見てきて、クイズに答えて T シャツもらってきました。

昨日は、年に 1 回の重要なミーティング(小鳥週間に焼き鳥を食べる会)が
あったので、最後の方は抜けてしまったのですが、
聞いた中で技術的にもっとも興味深かったのは、
「wchar_t の encapsulation を捨てる」という選択でした。
つまり、「wchar_t 内部が UCS4 であることを前提としてプログラムを
組んでよいことを保証する」という選択ですね。

彼らの主張としては、そういう「裏口」を使うのはあくまでも GTK+ などの
ライブラリだけで、一般のプログラムはあいかわらず CSI を意識して欲しい
らしいのですけど、そんなのは「なし崩し」的に無視されることは決まってるし、
どーせ「裏口使ったライブラリ」を使ったプログラムでは legacy locale が
使えなくなるので、これは実質的に、XPG 的国際化モデルの大きな特徴の
一つであるところの CSI (charset independent) の原則を捨てることを宣言した、
ということを意味しています。

それなら、wchar_t は現状のままで放っておいて、これとは独立な Unicode
前提の API セットを作ったほうが、互換性の観点から正しいことは彼らも
分かってるはずなのだけど、何でそうしないのでしょうね。
互換性を考えたら、なし崩し的に互換性のない wchar_t の使い方をされるよりも、
ISO C locale まわりを全部「obsoleted」にして、使わないよう勧告をしてくれた
方がはるかにマシなんですが、時間なくてそこのところを質問しそびれたのが残念。
どーせ wchar_t の正しくない使い方に対してお墨付きを出すんだから、
いまさら ISO C のご威光にこだわるわけでもないだろうし、それに、
ちょっと実装の手間が増えるだけで互換性が保てるのですし。

ちなみに、speaker は、かつて CSI の権化であった、あの Sun の樋浦さんでごんす。


んで、別に Linux だけの世界で済むのならどーでもいいんですが、
どうやら X.org や GNOME、KDE あたりはこれに乗っていきそうな気配があるので、
放っておくといろいろなものが使えなくなるかもしれません。

別の API になってるなら、GNOME や KDE にまわりを包囲されたとしても、
Linux あたりからそこだけライブラリをもらって来るという気軽な方法が
取れるけど、wchar_t でそれをやられると、各 OS ごとに libc に手を
入れることを強制させられてるという点で、思いっきり私の思考が
拒絶反応を示してるのですが、でも動かないと困るので、とりあえず Tru64 の
ja_JP.eucJP@ucs4 みたいな locale は実装しないといけなくなるでしょう。
sigh...

幸い、4.4BSD の locale システムは、皮肉にも、もともと CSI を視野に
入れたものになっているがゆえに、後からこういう変な locale を
追加することは非常に実現しやすいです。
XPG4DL では、既に ISO-2022 の汎用的な encoding scheme を実装している、
という似たような実績もあるので、単に Legacy ⇔ Unicode なメカニズムを
mb ⇔ wc の部分に追加するだけで済むでしょう。
# 本当は Citrus framework に移行してからにしたいのだが。

まあ、私としては単に「無視」でもいいんですけど、でも、せっかく
使えるものを使えるようにしないのはもったいないですよね :-)
# 逆に、使えなくなる前に先手を打っておかないとエラい目に遭いそう…

ちなみに、Li18nux2000 のドラフトはここです:
http://www.li18nux.net/root/LI18NUX2000/index.html


また、「新しい Rendering & Printing Model」なんて話が出てて、
私の興味と重なるところだし、そこはなかなか興味深かった。

これに関しては、Keith Packard (MIT で X を作った一人、
現 XFree86 core の一人で SuSE の人)がこんな文章書いてます:
http://www.xfree86.org/~keithp/talks/usenix2000/render.html
今一つ具体性がない文章ですが :-)


では。

--
Takuya SHIOZAKI - Chair of IMOU.
The I18n/M17n project On Unix environments (IMOU), Japan.

感想:
実質的に CSI は棄ててるのに、それを明言しなかったのは言い訳じみてて残念。
あと、ああいう「強者の理論」は単なる反感の元にしかならないので残念。