UTF8は妥協の結果・・・かも

文字コードと文化と言語

そうなのか、最近の日本語圏のソースコードUTF-8で書かれているのか...。それは正直、知らんかった。ひょっとしてNetBeansEclipseも標準エンコーディングUTF-8で出荷されていたりするのかな!?

NetBeansは6.0からデフォでUTF8になりましたね。それまではプラットフォームのエンコーディングでした。

なぜUTF8になっていったかというと一番の理由はマルチバイト圏側の妥協の結果でしょう。Shift_JISEUCを理解させるのは難しいので、7bitで収まっている限り影響が出ないので、何も考えずキャラクタセットの指定にUTF8を使ってくれ、という叫びだと思います。

Linuxを見ているといまやプラットフォームのエンコーディングはUTF8が標準です。EUCになっているほうがもはやマイナー。javaが普及したおかげでunicodeへの抵抗がなくなったというのも大きいでしょうか。

僕の記憶では、10年前も同じようにひどかったと思う。英語圏で書かれたASCII/iso-8859-1圏向けソフトウェアはかなり手を入れないと使えなかったし(e.g.,「表」問題)、今もそうかもしれないけど、日本国内だけで3つのエンコーディングが使われていた。

言葉が足りませんでした。今のほうがひどいという理由は、キャラクタセットを考慮したコードの品質そのものをさすのではなく、オープンソースのプロダクトや英語のソフトを使う割合が半端じゃないくらい増えたため、問題も増えてきたということですね。10年前ならほとんどのプロジェクトで使われた環境は日本語版、つまり商用ソフトのみでしたよね。

DBだけみても当時はPostgreSQLなんてまず使われていないでしょう。OSを見てもLinuxだって趣味の領域でした。今と比べると選択肢が少ないというのもありますが、苦労することも少なかったと思います。



ここから話がそれます

選択肢が多いことも楽しいのですが、正直新人が一から勉強するにはつらい時代だなぁと思います。自分がはじて言語を触ったときはオブジェクト指向なんてものはなくて、構造化プログラミングもまださほど言われてないときでしたし。

まず、動くものをBASICで適当に作って、その後高速化のためにアセンブラに手を出し、効率化のためにCに手を出し、構造化、オブジェクト指向、と段階を踏んできた身だとそれぞれ敷居はそんなに高くはないのですが、今はこれを1年目の新人が求められるんですよね。正直よほどの人じゃないとやってられないんじゃないかと思ってしまいます。

最近は趣味のプログラミングの初心者の質問でも真っ先にオブジェクト指向デザインパターンを指摘されていたり、そりゃ衰退するのもわかるかも、とちょっと思ってしまったのでした。

今後も言語は進化を続けるでしょう。敷居も高くなるでしょう。