近日,微軟對外首次介紹並提供了Windows 10操作系統的預覽。此次“預覽會”,最令人吃驚的消息是Windows 8之後的下一代操作系統,不叫Windows 9,而是直接命名為Windows 10。
按照微軟的歷史慣例,這一版本的操作系統,應該命名為“Windows 9”。
微軟為何打破這一慣例,科技媒體做出了各種分析猜測。有一種觀點認為,微軟如此命名,是希望表明該版本操作系統距離Windows 8做出了巨大的改進和更新,因此“連升兩級”,可以體現新系統的創新價值。
不過,這種分析站不住腳。實際上,在這次媒體吹風會上,微軟負責系統演示的高管也明確表示,Windows 8操作系統在觸摸操控和鍵盤鼠標操控上並未做好平衡,新系統要做出改變。
Windows 10系統中,出現了更多傳統Windows 7用戶熟悉的界面。這一系統的“返古”的特點,更大於創新。
近日,多業IT業內人士在Twitter和媒體上指出了微軟跳過“Windows 9”的最重要原因——和十多年前發布的Windows 95和Windows 98存在技術沖突。
多位人士指出,在當年開發的一些軟件中,曾經用相關的函數檢查操作系統版本,而Windows 95和Windows 98,以及“Windows 9”前面的字符部分一致,由於當年開發的應用軟件考慮並不周全,因此可能導致錯誤和問題。
換言之,當年的程序員判斷,如果操作系統名稱中包含有“Windows 9”,則判斷為是Windows 95或者Windows 98。由於這些軟件沿用多年,已經無法為新版系統修改代碼。如果微軟使用“Windows 9”,將導致大量的歷史遺留軟件集中發生問題。
據分析,基於這一原因,微軟才決定直接跳過“Windows 9”,命名為“Windows 10”。
從技術角度解釋為什麼微軟沒有使用 Windows 9
那麼從技術角度考慮,為什麼微軟跳過了9而直接使用10呢?據微軟內部開發人員流傳,是為前操作系統的版本號考慮。
實例代碼如下:
復制代碼代碼如下:
if ( version.StartsWith("Windows 9") )
{ /*Windows 95, Windows 98 */</p>
<p>} else{</p>
<p>}
當軟件開發人員使用:“ 如果 版本號開始於xxx,就 執行yyy” 時,會出現兩種情況的正確判斷
Windows 9
Windows 9* ( Windows 95 Windows 98 ) 95和98也是開頭包含Windows 9的
綜上所述,在早期測試時,微軟發現很多第三方軟件開發商使用了如上的方法去判斷操作系統,這樣會造成對當在Windows 95和 Windows 98上運行使用上述代碼的程序時,程序會誤判為WIndows “9″。
所以微軟開發者為了避免出現這種不穩定因素,只好命名為Windows 10 。
覺得怎麼還會這麼寫代碼的?甲骨文還真的在openJDK裡這麼寫了。
http://cr.openjdk.java.net/~simonis/…c.java.sdiff.html
第602行
同樣的寫法竟然還有大名鼎鼎的jEdit編輯器!
https://searchcode.com/codesearch/view/1393856/
第48行