2007年08月30日

巨大で身近なドラマ

 Raymond Chen『Windowsプログラミングの極意』(アスキー)を読んだ。
 最初のWindows(バージョン1.0、1985年)は、ゲームボーイアドバンス並みのハードウェアで動いた。そのときにはすでにGlobalAllocがあり、GetWindowTextがあった。どちらもハードウェアに密着した仕様になっていた。この密着がのちにWindows 3.1の成功をもたらす。Windows 3.1は、当時のボリュームゾーンのPCから最高の実行速度を絞り出して、OS/2とMacを叩きのめした。
 Win64にもGlobalAllocとGetWindowTextがある。
 途方もないことが――途方もないことが起きたのだ。
 
 本書はそのドラマの端々をエピソード的に垣間見せてくれる。バイナリ互換性、ソースコード互換性、セキュリティ、ユーザビリティ、サードパーティの糞ドライバ。天文学のスケールと歴史学の身近さを兼ね備えたエピソードの数々に、ため息の連続だ。
 
 しかし391ページ、「UTF-8をANSIコードページとして設定できないのはなぜか」は納得できない。
 「UTF-8をANSIコードページに設定しても、MBCSのソフトウェアが即Unicode対応になるわけではない」という著者の説明は正しい。しかし別の利点、「MacOS XなどのUTF-8対応OSとのソースコードの共有」はどうなのか。Windows以外の環境では、wchar_tによるUnicode対応はとっくの昔に放棄された。
 UTF-8をANSIコードページに設定できないのは、.NET移行のための怠慢か、それともソースコードの共有に対して分断を図っているか、あるいはその両方としか考えられない。それを言おうとせず、「それほど利益があるわけではない」という説明だけで済ませる態度に、不信感を覚える。

Posted by hajime at 2007年08月30日 20:57
Comments