原文轉述:
想到要寫這篇文章的時候,心情還是有些沉重的。畢竟自己曾經在這個平臺上付出了很多精力與汗水。可以說見證Windows CE的成長,CE也見證了我的成長。但是現在,到了說再見的時候了。
嚴格來想,第一次見到Windows CE應該是在2000年左右見到世嘉的Dreamcast游戲機。Windows CE 2.x,當然,Windows CE在DC而言,很好的扮演了嵌入式操作系統的角色,退居幕后。很多年之后我才知道DC原來是用的CE的操作系統。
第一次接觸Windows CE開發是2002年,Windows CE 3.0,學院網站服務器上萬老師放了一個文件夾,是他以前在企業里面做CE驅動的時候留下的一些資料。我閑著無事就在學院服務器里面亂翻,找到了這個東西,知道了還有CE這么個系統。到微軟網站上下載了CE的開發工具跟SDK,把自己寫的windows程序沒怎么費力氣就編譯運行在了CE上,當時的感覺是跟Windows這不是一樣么。
對Windows CE的深入理解開始自2004年,我本科將要畢業的時候,參與了汽車學院的一個項目,負責CE的系統定制跟做一個車載平臺。這個項目讓我第一次接觸了OS層面的開發。也使我對CE的架構跟底層有了深入的了解,也是這個項目,把我帶上了嵌入式開發的道路。
讀研的時候比較無聊,閱讀了很多CE的資料跟源代碼,甚至花了一年寫了第一本Windows CE的教材。這本教材賣了大概3萬本,給我帶來了10W人民幣左右的收入,現在還有人買。對學生來說,還沒出校門賺到10W人民幣挺不容易了,所以讀書的時候我比較高傲。但其實并沒有把這第一桶金繼續發酵。這些錢被轉化成了在山東威海的半套房子后嘎然而止了,雖然這房子價格翻番了。
后來學院跟微軟合作開設CE的聯合課程跟培訓,我在學院上《Windows CE嵌入式系統》這門課,一直至今。
后來我還參加了微軟的認證講師培訓,甚至給好幾個公司做過CE開發的培訓。當然我個人不太喜歡培訓這個活,跟在學校的課堂上講課比,很沒趣,所以自08年以后所有的企業培訓邀請我都拒絕了。
07-10年,當了4年的微軟Windows CE方向的MVP,11年來香港之前主動放棄了。這算是對我在CE方向上貢獻的最高認可吧。
Windows CE從1996年發展至今,已經有16個年頭了。版本號從1.0翻到了7.0,據某不愿透露姓名的微軟公司員工透露,下一個版本8.0也在開發之中了。但是,Windows CE的輝煌年代已經遠去了。
簡單的回顧一下CE的歷史,自己不難作出判斷。
CE誕生于96年,當時為什么會想到要搞這么個東西出來?因為蘋果公司93年發布了Newton掌上電腦,當然,當時的蘋果已經奄奄一息了,隨時都有可能倒閉,但是Newton這個東西讓微軟看到了掌上電腦的市場。同時起步的還有Palm,也差不多是96年發布了第一個版本的PDA。CE的第一個版本就是要做一個這種掌上電腦,產品的名字就叫Handheld PC。當然,后來的結果大家都知道,蘋果的Newton跟微軟的H/PC這兩個早產兒誰也沒撈到便宜。之所以說它們早產,因為當時的軟硬件技術、電池技術(AAA5號電池)、存儲技術(內存放數據)、顯示技術(黑白屏)、網絡技術(不能聯網)等都不足以支持一個像樣的OS運行,反倒是實現比較 simple, sometimes naive的Palm賺了便宜。很長一段時間,Palm都是PDA的代名詞,國內也有不少山寨的Palm,像聯想掌上電腦。所以喬布斯回到蘋果后,一上臺就把Newton這個沒前途的東西給干掉了。
CE誕生后,嵌入式領域也慢慢開始發展起來,微軟發現在H/PC領域撈不到好處,當然,微軟財大氣粗,虧得起,再給你個幾個億美元,在其他領域玩去吧。前面提到的Dreamcast就是一個例子。為此微軟還專門開發了CE版本的DirectX。
CE最輝煌的時候是誕生10年后,隨著技術發展,軟硬件技術都慢慢成熟了,硬件越來越強大。這個時候,在跟Palm的競爭中,CE的后勁就慢慢體現出來了,這就是后發優勢。最輝煌的時刻是2005年左右我記得,Palm公司宣布采用基于CE的Pocket PC系統作為自己的Palm設備的操作系統。這無疑宣告CE與Palm的10年抗戰的徹底勝利,Pocket PC在PDA市場一統江湖。我記得很清楚,微軟甚至自豪的在自己的官網上給Palm的設備做廣告,沒關系,別買Pocket PC了,買Palm去吧,反正都是我的系統。放到今天來,這是一種什么程度的震撼呢?你就假設蘋果突然說以后我的Macbook Pro跟Air都預裝Windows 8了,我自己的OS X不要了,然后微軟的首頁廣告,去買Mac去吧,就是這么瘋狂。
可惜勝利是短暫的,PDA這個市場迅速消亡了。被洶涌而來的智能手機市場給替代了。PDA的功能成了智能手機功能的子集。PDA能做的事情智能手機都能做,兩者價格還差不多。誰會單獨去買個PDA呢?在新的智能手機系統的第一輪競爭中,CE的表現只能說勉強不讓群眾失望。微軟02年就開始開發基于 CE的手機系統,叫Smartphone,我03年在微軟實習的時候看過一些公司的內部文檔。這個系統完全是針對沒有觸摸屏的按鍵手機開發的。也推出過一些實際的產品。后來手機迅速發展到了觸屏時代,沒關系,我還有個Pocket PC系統,把PPC加個打電話功能,就成了手機系統了,當時叫Pocket PC Phone Edition。后來統一叫Windows Mobile。
為啥說CE的表現是勉強不讓群眾失望?都說不怕神一般的對手,就怕豬一般的隊友。在第一輪智能手機系統爭奪戰中,神一般的對手(谷歌、蘋果)當時還沒登場。谷歌還是個剛起步的小弟,當時還差點被微軟收購。蘋果喬布斯在忙著賣歌還債。上天給微軟安排的是豬一般的對手Nokia及其Symbian系統。對美稍微有一點追求的程序員只要寫過一次Symbian的代碼,肯定就不想再碰第二次了。搞笑的是諾基亞還拉來一群豬組團跟微軟斗,叫Symbian聯盟。一群豬加起來也還是豬,被打散了之后,諾基亞亂了陣腳,開始亂收購公司來跟微軟對抗,QT就是一個例子。其本質是諾基亞這個公司沒有軟件基因,沒有系統開發能力。反過來看微軟,其實在智能手機的戰斗中,微軟并沒有推出什么革命性的東西,只是在吃Pocket PC的老本。當然,這個老本就夠把豬對手打翻的。不是微軟強,是諾基亞太弱了。
還有一個對手是加拿大RIM的黑莓。其實黑莓跟微軟并沒有非常正面的沖突。黑莓最早壓根就不是個手機,只是個能隨手收郵件的機器。美國人嗜電子郵件如命,就像中國人嗜QQ一樣。如果2000年左右能有個賣幾百塊錢,能且只能聊QQ的移動設備,那估計也會大賣。后來才加了手機功能。黑莓主要占領了企業市場,CEO最愛。但是微軟一直篤信從大多數人那里賺少量的錢。跟我D一樣,農村包圍城市,比較惡俗的東西喜歡的人比較多,微軟喜歡下里巴人,不喜歡陽春白雪,正所謂曲高和寡。Oracle之于SQL Server,Windows之于Mac,都是一樣的道理。所有美國高管人手10部黑莓又能咋地。何況很多黑莓還是公司給配的,滋生了一批雙機黨,再買個手機私用。市場還沒發展到WM跟黑莓全面正面沖突的時候,神一般的對手就殺到了。
iPhone出來之前,大家都以為蘋果要做一個能打電話的iPod,畢竟當年蘋果能賺錢的也就是iPod。有這種觀點的人,真是把蘋果看成波導,把 iPhone看成“天語音樂手機”了。蘋果1挑n,兩記重拳把WM,Symbian等一干人等都打翻在地。第一代iPhone告訴了世人手機上的人機交互應該這么玩,籠絡了用戶;第二代iPhone及隨之而來的App Store告訴了碼農手機上的軟件發布應該這么玩;籠絡了開發者。這兩個是iPhone革命性的創新。這個時候,CE的10年積累反倒成了累贅,最主要的原因Phone is PC這個假設是不對的。這個我以前的文章分析過,就不展開了。一波未平,一波又起。被打翻在地的Windows Mobile還沒起身,又被安Google的Android踩上了一腳,永世不得翻身了。微軟畢竟是微軟,壯士斷腕。舍棄了WM,重新開發了WP7。 WP7還是基于Windows CE的,但是對CE做了層層封裝,已經根本看不出CE的樣子來了。
為什么講這么多CE在PDA跟手機領域的發展歷史,因為操作系統本身并不能創造生產力,要讓一個系統產生價值,一定要由應用來推動,CE的定位是通用操作系統,越通用越沒用,就像哲學一樣讓大家覺得很空,必須要發展出基于CE的專用系統才行。Windows CE的發展也是一直是靠應用的推動在發展。應用是科技發展的推動力。比方說你要開發一個操作系統,我想給操作系統開發一個很酷的新特性。如果開發出來這些特性沒有應用需要,你開發它干嗎?開發出來也成了太陽能手電筒了,雖然很酷,但沒用。回顧CE的發展歷程,H/PC,Pocket PC,SmartPhone還有Windows Mobile是CE發展的最大推動力,很多版本的CE的新特性都是為了這幾個應用而生的,而這些應用平臺上的一些特性又反過頭來反哺CE。比如6.0的大內存,比如arm版device emulator,比如有特色的電源管理,比如exchange/push mail等。現在,這個最大的驅動力沒了!
CE 7最大的特性是Native Silverlight,用native code(C++/COM)來寫Silverlight很酷的界面。聽著耳熟?對,這不是被某些人吹上天的Win 8上的用戶體驗救世主兼C++救世主WinRT么?可惜的是目前的Windows Phone 7不在用,而在用managed code寫界面。看上去是不是好像有點搞反了?范偉的名言,你等會,有點亂,我縷一下。本來資源受限的手機系統WP7卻在采用managed code寫代碼,資源相對充裕的desktop/laptop/tablet卻在采用native code寫代碼。這,這是什么情況?覺悟了吧,WP7用managed code僅僅是權宜之計。等待Windows 8瓜熟蒂落,下一代Windows Phone直接把底下的CE內核換成NT內核,Desktop/Laptop/Tablet/Phone,所有平臺都是用一個Windows 8!這才是微軟的構想。這才是真的Write once, run everywhere。寫一個程序,在平板,在桌面,在筆記本,在上網本,在手機,在游戲機上都能跑。
構想相當宏偉壯麗。等會,本文的主角,Windows CE怎么辦?
前文已經說過,Windows CE已經失去了最大的發展推動力。就像在海上航行的小船,沒有了動力,只能隨波逐流,隨風漂泊,一個大浪打過來,有可能就要葬身魚腹了。 而且Windows也開始支持ARM CPU了,這無疑跟自家小弟搶飯碗。好吧,我們再來重新檢視一下Windows CE還剩下多少“遺產”。
1. 可定制。定制另一個說法叫裁剪,就是把一個整系統給閹割掉一些功能。為什么要裁剪,資源不夠才需要裁剪,否則就放一個完整系統,多好。
2. MIPS跟SH CPU支持。MIPS還有人用么?SH是啥CPU,搞CE這么多年,我從來沒見過真的SH。
3. 實時性很好的內核。獨特優勢,但是實時性應用占整個應用比例很少(Linus語)。
4. Headless Device支持。沒了界面,怎么跟Linux比,Linux是天生headless。
5. 便宜。這個能便宜的過Android么?何況國內還有一堆不花錢用的。
6. Win32兼容。對于碼齡10年以上的老碼農,像我,可能還有點誘惑力。
7. 電源管理。適合電池供電設備,但是如果win8可以跑在平板上,這個也不會完全沒有考慮。
8. 部分源代碼開放。對發展本身關系不大,Windows內核的源代碼也已經以學術的名義開源了好幾年了,網上都可以下,有影響么?
如此看來,Windows CE一時半會不會掛掉,但是它的應用領域可能會被大大的壓縮。從手機/平板/PDA這個光環籠罩的大舞臺上走下來,CE也就喪失了80%的市場。剩下的呢?可能會被壓縮在工控,醫療等一些邊緣化領域。毫無疑問未來幾年,CE要從波峰滑倒波谷了。
那么有沒有可能起死回生,原地復活呢?得看未來有沒有什么像手機一樣的有巨大影響力的應用來推動了。如果有的話,還是我篤信的嵌入式發展將要攻克的三個堡壘里面的后兩個——數字電視,跟智能汽車。不過現在看來,微軟用來占領數字電視的設備似乎是XBOX,而不是CE。汽車么,微軟一直在跟福特等幾個公司在談在做。至于會不會爆發那就不是短期能看出苗頭的事情了。
還有啥要交代的么?學院那門《Windows CE嵌入式系統》的課怎么辦?我看2012年入學的培養計劃里面還有這門課,學校大綱調整總是滯后好多年。
不負責任的說,好辦,反正現在國內的大學里面凈教過時的東西,早就過時的16位的匯編語言,foxpro,VB6,Delphi,甚至 Dreamweaver都允許教,為啥不允許我教即將過時的CE?反正可以狡辯是掌握原理么,好像一扯到原理就可以瞬間變成永恒。負責任一點,可以與時俱進,兩頭肥,中間細,多講ARM跟WP7,少講CE本身。或者干脆停課把Linux/Android學扎實。
最后,必須說一句了,本文僅代表個人觀點。不代表Microsoft/Google/Apple等任何公司。
評論
查看更多