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