_

今後、面白そうなプログラミング言語は、*java*,python,Rubyだと思うのだが、この中で日本産のRubyだけがUNICODEに対応していない。 javaは最初からUNICODEだし、pythonも最新バージョンでUNICODE対応になった。 Rubyは、これからUNICODE対応を検討する所である。

だが、早合点してはいけない。 java/pythonUNICODE対応というのは、UNICODEだけで動くようになること。つまり、UNICODEの世界にとりこまれてしまえば、外人プログラマが日本語で動くプログラムを書けると思っている。このお気楽さが毛唐の悲しさで、世の中そんなに甘くはないのだ。現実的には、シフトJISやらEUCやらいろいろあるコード体系の中にもうひとつUNICODEというもっとややこしいコード体系が割りこんで来たくらいに考えておいた方がいい。実際、Rubyではこれに近い方向で国際化対応をするらしい。

言葉を変えると、javapythonでは「もしこのファイルがEUCだったら」とか「ここでネットから読むのは英語だけとわかってるから」というプログラムは書かなくていい(ことになっている)。それはプログラマでなく処理系の考えることだ。プログラマはそれが文字であることさえ知っていれば、何も考えなくてもいい(ことになっている)。 Rubyでは、(国際化される予定の)次のバージョンでもファイルが日本語なのか英語なのかプログラマは少しは考えなくてはいけない。

処理系が本当にやってくれるなら、もちろんそれにこしたことはないのだが、実際にはいろいろ注文つけてやらんとダメなんだよね。注文つけなきゃならんのなら、その注文のメニュー(API)をよく整理して便利にしてた方がいいのだが、javapythonではそんな注文はいらないことが建前になってるからどうしても裏口が必要になってくる。 Rubyのように現実的に最初から注文させるつもりでその注文を受けつける方法をちゃんと考えておくほうが、結局ずっと楽になるはずだ。

グローバルスタンダードに全てをあずけるのでなく、グローバルスタンダードを意固地に拒否するのでもなく、グローバルスタンダードをone of themとして受けいれるというこの方法は、プログラムやコンピュータ以外にも通用するやりかたかもしれない。