Officeのバイナリファイルフォーマットはなんでこんなにややこしいのか

Joel On Software私訳
先日Officeのバイナリファイルフォーマット仕様が公開されたわけですが、バイナリ直接解析してなんか処理しようというアプリを作るというのは考え直した方がよいという話。そもそもこのバイナリ構造はPCが今よりももっと遅かった時代、1MのRAMに20MHzのCPUとかいう次元で高速に読み書きできるように考えられたもので、文字列を解析してデータ構造を組み立てなおすなんて高等テクは使えず、ほとんどメモリ上のデータ表現をそのままバイナリに落とし込んだようなもんだと。しかも度重なるバージョンアップでも互換性を維持し続け、現在ほとんど使ってなさげな過去のバージョンのマイナーなオプションまでサポートしようとするとすんごいことになる。そして、MSOfficeは正気の沙汰とは思えないそれを実現してるんだと。つまりまじめにすべてのバージョンのあらゆるOfficeファイルを開けるような完全互換のアプリを作るためには、Officeチームの20年ぐらいの歴史をなぞるぐらいの人月が必要になるわけで、それが如何に無謀な挑戦であるかということがわかるだろうと。Officeファイル扱うんだったらそこだけVBAのコードで書いて、自分のプログラムからコールするのが妥当な選択という話。
まぁ昨今のPCは速いですからOffice2007よりもっと早い段階でXML移行もできただろうけど、独占といってもよいシェアを持ってしまうとそれもなかなか難しくて、結局後方互換を保ち続けて貫き通したというのは、M$はすごいんだかなんなんだかよくわかんないですねぇ。とりあえず言えることは、昨今のGoogle信仰やApple信仰に対してM$はもっと評価されるべきじゃないかなぁということ。OfficeとOpenOffice比べたら操作のレスポンスの違いは歴然だし、VisualStudioとEclipse比べてもそう。まぁ隠しAPIとかマニュアル化されてない仕様が使えるからここまで高速化できるというのもあるかもしんないけど、改めてやっぱすごいなーとか思ってしまう。てか、ExcelVBAを仕込んだ時点でもはや神。