在PC上很容易把向後兼容視為理所當然,以至于我們甚至很少使用"向後兼容"這個短語。大多數老遊戲都能簡單地運行,而對于其他的東西,通常有一個内置于Windows或DOSBox的兼容模式來讓它運行。這并不是偶然發生的,正如一位前微軟程序員的舊博文所解釋的那樣。
例如,當微軟希望用戶切換到Windows95時,他們甚至未操作系統添加了特定的代碼來尋找《模拟城市》,如果它正在運行,就改變内存分配的方式,這樣遊戲就不會崩潰。
這篇博文是Joel Spolsky在2000年5月寫的,但最近被播客和遊戲制作人Kal Yoshika在Twitter上重新發現了。Spolsky寫的是"雞和蛋的問題",即讓用戶采用沒有大量軟件的平台,以及讓軟件制造商為沒有大量用戶的平台生産軟件。他說,微軟的解決方案是确保舊的軟件能夠運行--包括《模拟城市》。
"Windows 95?沒問題。漂亮的新32位API,但它仍然可以完美地運行舊的16位軟件。微軟對此非常着迷,花了一大筆錢來測試他們能找到的每一個使用Windows 95的舊程序,"Spolsky寫道。"喬恩·羅斯(Jon Ross)為Windows 3.x編寫了《模拟城市》的原始版本,他告訴我,他不小心在《模拟城市》中留下了一個錯誤,即他讀取了剛剛釋放的内存。是的。它在Windows 3.x上工作得很好,因為内存從來沒出現過洩露。?
"驚人的是,在Windows 95的測試版本中,《模拟城市》在測試中并不正常工作。微軟追蹤到了這個錯誤,并在Windows 95中加入了特定的代碼以在計算機中尋找《模拟城市》。如果它發現《模拟城市》正在運行,它就會以一種特殊的模式運行内存分配器,不會立即釋放内存。這就是那種對向後兼容性的執着,使人們願意升級到Windows 95"。
諸如此類的例子并不鮮見,例如,初代版本《最終幻想7》如果運行在Windows NT而不是Windows 95上就會崩潰,所以Windows會對遊戲謊報其實際運行的操作系統。
,