河端さんが紹介されていた、「エンコーディングの話 Part 1」を読んで、1996年後半から1997年前半にかけて単騎で日本語化していたCA-Visual Objects 2.0のことを思い出しました。オブジェクト指向のコンパイラ言語でありながら、マルチバイトの識別子が利用できることもあり、ODBCは遅くない: ODBCで高速にデータアクセスするための1手法(第3回) で紹介していたコードジェネレータをアップグレードして、日本語のテーブルやビュー、列名などを直接、プログラム中に記述できるように改良したものをCompu Serveで発表したのでした。日本語の識別子がプログラミング言語中に混じるのは賛否両論あるかと思いますが、可読性はあきらかに向上します。(ただし、元となるテーブルや列名が意味のある名前をつけている場合に限りますが…)。それと、これも賛否両論分かれるのですが、日本語を使うことで、コメント不要なメソッド名やクラス名の記述ができるようになります。うけねらいではなく、パイロットプロジェクトの段階では、開発者も非開発者もなんとなく意味が通じるというメリットがありました。
32bit版の日本語化は、ドイツのチームと共同で行ったのですが、日本側は私が単独で、やってました。当時、小田急線に乗っていたので、ノートPCをあけて、日ー英の用語対照表を作って、会社についたらビルドして、GUIのずれを直して、・・・。当時の悪夢は、COMCTL32.DLLの地獄でしたが…。バージョンが違うとなぜか挙動が異なり、i18n版がリリースされたときにはそのバグを直せないまま・・・。
日本語版は、1997年にComputer Associatesが100%子会社を設立したときに、Drop support, drop salesという羽目に陥り、完全にお蔵入りしました。
…
マルチバイトなりUnicodeリテラルが識別子として使えるとしても、グローバルな開発の世界では、英語が公用語になってしまいます。
プログラミング言語と自然言語とのギャップの問題なので、しばらくは解決が難しいかもしれません。
これはいたしかたないのかもしれません。ある国のみで使われるプログラムなら、何も悩まなくて済むでしょう。
Unicodeも万能とは言いがたい部分があります。円記号のマッピング問題やマイナーなIssuesがあります。
フォントの問題もあります。すべてのUnicodeを完全に表現できるフォントがWindowsに標準装備されているかどうかといえば…。
Webになれば、CSSによるスタイルの問題もあります。日本、韓国、簡体字中国語、繁体字中国語、それぞれ、微妙な差異がある。
でも私達が見ている世界はわずかなもので、世界を見渡すといろんな言語、文字(字形)、発音・・・。
少なからずとも、これからのエンジニアには国際化は少しでもいいので意識して欲しいものです。