ちょっとオフトピ気味ですが、Microsoft 自身もこれは分かっているようで、下位互換性を維持するための涙ぐましい対処が Windowsプログラミングの極意 歴史から学ぶ実践的Windowsプログラミング! (大型本) [amazon.co.jp] (THE OLD NEW THING - PRACTICAL DEVELOPMENT THROUGHOUT THE EVOLUTION OF WINDOWS の和訳。和訳タイトルは不適切だと思います) に載っています。そんなことまでやってるのかと思った一例を挙げておきます。
「13.2 プログラムがドキュメントに載っていない構造に進入するとき」より [エクスプローラ] ウィンドウの振る舞いをシェル拡張から変更したいと考えたベンダーがいた。(中略)彼らはドキュメントに載っていないウィンドウメッセージを使用して、シェル拡張からエクスプローラの内部構造の1つへのポインタを取得した。(中略) ベンダーが認識したものと探していたものは、偶然にも多重継承クラスの基本クラスだった。複数の基本クラスを持つクラスがある場合、コンパイラがそれらの基本クラスをメモリに割り当てる順序は保証されない。たまたま、このベンダーがテストしたすべてのバージョンの Windows では、それらは X、Y、Zの順序で割り当てられていた。 Windows 2000 を除けば。 Windows 2000 のコンパイラは、X、Z、Yがその順序であると判断した。(中略)しばらくして、システムはクラッシュした。 プログラムが (Yをつかむために) X を探しにいったら、最初に偽の X が見つかるように、「偽のX、Y」を作成しなければならなかった。 その方法を考え出すために週の大半がつぶれた。
笑うしかない人と、笑うに笑えない人と (スコア:4, 参考になる)
本文に自分の感想をつらつら書くのもアレだったので省きましたが、個人的には、スライド [impress.co.jp]にある というのが印象的でした。最後のはともかく、上の2つは大変ごもっともで。
また、本文には とありますが、どちらかというと「APIのバグを直したら、そのバグに依存して異常動作を免れていた他のコンポーネントが動かなくなった」という、これまたありがちな事態なのではないかと思います。
Re:笑うしかない人と、笑うに笑えない人と (スコア:1)
これは、非常に納得できるような。
「msが……」とか「winが……」という話ではなくて、
トラブルの原因を、自分たち以外の何かに求める傾向というのは、あるような気がします。
初めから、「自分の作ったコードにエラーが無い」と確信している人は居ないと思います。
ですが、隅々まで把握できている(つもりの)自分のコードが、
問題となっている現象を発生させない、という確信を持ってしまったら、
「osのせい」とか「hwのせい」とか「隣のセクションが担当しているモジュールのせい」とか、
自分以外の悪者をでっちあげてしまう事はよくあります。
osって、そういう時に憎しみの対称にするには、手頃で便利なアイテムのような。
悪口や罵詈雑言を言っても、聞こえる範囲に関係者は居ないし。
「俺様はosにケチを付けられる程のスキル持ちなんだぜぇ」みたいな、自己拡大感も味わえるし。
// そして「何をツボってるのさ?」と聞いてきた、通りがかりの同僚に、
// 単純なスペルミスを指摘されてしまう罠。
Re:笑うしかない人と、笑うに笑えない人と (スコア:3, 興味深い)
ちょっとオフトピ気味ですが、Microsoft 自身もこれは分かっているようで、下位互換性を維持するための涙ぐましい対処が Windowsプログラミングの極意 歴史から学ぶ実践的Windowsプログラミング! (大型本) [amazon.co.jp] (THE OLD NEW THING - PRACTICAL DEVELOPMENT THROUGHOUT THE EVOLUTION OF WINDOWS の和訳。和訳タイトルは不適切だと思います) に載っています。そんなことまでやってるのかと思った一例を挙げておきます。
Re:笑うしかない人と、笑うに笑えない人と (スコア:0)
Re:笑うしかない人と、笑うに笑えない人と (スコア:2, 興味深い)
だからこそ、色々互換性を保つための仕組みを組み込むという。
過去の遺産が全部動きません、流用できませんってなったら全て新規開発しなおし。
それなら別のOS、例えばLinuxとかでイイヤってなるでしょ?
Re:笑うしかない人と、笑うに笑えない人と (スコア:0)
それを旧チップを無理矢理載せてまでしても実現できなかったSONYの技術力は本当に落ちぶれましたな