Windows 8為什么會是開發人員的2012
原創【51CTO 6月20日外電頭條】在一周前微軟剛剛發布Windows 8的***公開展示版本時,來自各界的反響普遍較為積極。Winodws 8提供的新用戶界面看起來簡潔、有吸引力、功能全面,而且這也是微軟推出的***款被廣泛認為具備友好外觀的桌面操作系統。然而,負面的聲音也同時出現。該展示版本在Windows開發者群體中飽受詬病,原因非常明確:開發人員們被告知,他們一切固有的經驗、知識體系以及過去所編寫過的全部程序在Winodws 8中都毫無用武之地。
難倒Windows 8將要成為開發人員的2012么?
問題的關鍵在于Windows 8為了使Windows系列操作系統能夠推廣到平板設備上而過分追求外觀與感受方面的要求,這使其不得不為那些充滿強烈“浸入式”體驗以及新鮮風格的全屏應用提供支持。隨之而來的情況是,Windows 8將針對這類應用程序的開發而囊括各種新的API,癥結就在這里。其實擁有全新的API本身并不算大問題(但Windows系統平臺上從來就沒有支持過這類平板風格的應用程序,所以當下既有的各類資源顯然無法發揮作用),不過最令人抓狂的是微軟所公布的這類API的使用方式。主管Windows系統體驗的微軟副總裁Julie Larson-Green簡要對一款新的“浸入式”天氣預報程序進行了介紹,整個說明中最為重要的內容是該應用程序用到了“我們全新的開發平臺,也就是,呃,基于HTML5及JavaScript。”
此言一出,開發業界立時哀鴻遍野、天怒人怨。
開發人員們過去已經在Windows開發平臺上投入了大量的時間、精力與資金。多年來,大家學會了Win32、COM、MFC、ATL、Visual Basic 6、.NET、WinForms、Silverlight、WPF等等工具的使用技巧。所有這些技術都能在特定時間、特定項目中發揮作用,為Windows桌面系統的應用程序創建提供幫助。而除了Visual Basic 6,其它各種工具時至今日仍然或多或少得到當前Windows系統的支持,而且這些工具也無法單獨應對所有需求;也就是說,除了Visual Basic 6及WinForms,其它工具在當下的Windows開發工作中仍然扮演著各自不同的角色。
在聽聞Windows 8將為其新型“浸入式”應用程序引入HTML5及JavaScript后,Windows開發者們毫不掩飾內心的失落與恐慌。這種“一刀切”式的方針意味著完全放棄近二十年來苦苦積累起來的Windows開發知識及經驗——還要加上為學習微軟那些******大的技術所付出的海量時間——此外,也許同樣重要的是,我們不得不放棄內容全面、功能豐富的固有框架及強大、普及率極高的Visual Studio開發環境,轉而將陣地遷移到一套更為原始、系統簡陋且充斥著大量劣質開發工具的平臺。#p#
合理的反應
微軟拋棄一切既有經驗的念頭看起來相當瘋狂,但人們同樣可能覺得開發人員們的反應有些過激——不過毫無疑問的是,微軟未來的發展方向已經初現端倪:大力支持HTML5,盡管它在許多方面弱于其它技術。Larson-Green就Windows 8所做的評論令人震驚,沒錯,但這其實只是證實了開發人員們此前的一些猜想。開發者當然不愿意為微軟的決定買單,然而如今各種跡象表明Larson-Green所表達的觀點正一步步變為現實;如果想要用到***的開發平臺,我們終究需要面對HTML5與JavaScript。
微軟可以說從來沒有為其開發戰略規劃出什么上佳的前進方向并一直堅持貫徹。發展過程總是充滿混亂的內斗,新的技術潮流帶來大量跳躍式革新,而這些***型的新軟件又鮮有成功的范例。直到大約一年半之前,情況終于有所改觀,一切似乎開始塵埃落定,.NET、Windows Presentation Foundation(簡稱WPF)與WPF的Flash類分支Silverlight三者緊密協作。WPF與.NET相互配合,提供了一個用于編寫GUI應用的更為靈活、高效且結構明晰的方式,而Silverlight則作為WPF的精簡版本為Windows及Mac OS X系統上的瀏覽器提供功能多樣的各類插件。
這些技術都談不上***——WPF的執行效率從未達到用戶們的預期,而Silverlight的跨平臺支持能力也一直沒有***發揮出來——但軟件開發在這個階段至少在產品層面上表現出了令人欣慰的一致性。WPF與.NET應付大型應用程序,Silverlight則專攻移動版本。
希望落空
然而好景不長,IE9出現了。這一次微軟選擇了HTML5,伴隨著該決定,各種麻煩也接踵而至。在IE9出現之前,Silverlight一直是微軟較為偏愛的跨平臺應用程序開發方案。廣泛支持平臺的缺乏使得Silverlight根本無法對競爭對手Flash造成嚴重威脅,但至少它占有一席之地,并且在支持它的平臺上表現良好。而從IE9得勢之時開始,Silverlight就立馬淪為板凳選手,而HTML5則成了指路的明燈、航行的舵手。在這種情況下,即使Silverlight仍有出場的機會,也只能在那些HTML5實在應付不了的方面發揮作用,例如處理流媒體視頻。除此之外,開發人員們不得不接受這樣一個事實——改用HTML5吧。
微軟這么做也有自己的道理。如果我們真的想讓廣大用戶將注意力集中到某個平臺上來,HTML5是不可或缺的。對于面向網頁的應用程序來說,對DRM視頻之類并不存在特殊的需求,因此HTML5的優勢從長遠來看還是相當明顯的。但第三方開發人員們對微軟的這種定位方式極為不滿,這也是可以理解的。對于一位長期通過流水線式作業編寫內部應用程序的開發人員來說,對某款瀏覽器插件產生依賴并不算是什么問題,而且Silverlight過去是,現在也仍然是一款具備相當多亮點的輔助工具。
HTML5如今還是專注于提高其較為擅長的文本處理能力;而相應的架構及語義表達也傾向于對結構化文本文檔的創建進行完善,而非針對應用程序中的用戶接口。在按鈕、圖標、列表框、樹狀視圖及其它接口控制等等Silverlight程序能夠發揮良好作用的方面,基于HTML5的應用程序則依然只能靠基本的文本框來應付,而沒有更高層次的處理概念可供選擇。JavaScript函數庫正在試圖彌補這種差距,但這些函數庫不具備Silverlight所能提供的功能及控制力。***,如果某位開發人員打算為用戶接口的創建設計一套架構,該架構成品看起來將非常接近Silverlight的產物,而非其真正生母HTML5。
HTML5的另一個薄弱環節在于工具。HTML5所對應的設計與開發工具并不像Silverlight的工具那樣成熟和強大,這使得基于HTML5的開發工作變得更為復雜,特別是在當前應用程序自身的復雜程度也在不斷增加的前提之下。到目前為止,盡管HTML5仍在繼續被當作部署于瀏覽器中的應用程序的***開發平臺,但微軟實際上幾乎沒有為這款平臺的諸多問題付出任何實質性努力。
無論如何,Redmond總部的確已經為HTML5做了點事情,相對于之前對Silverlight及WPF所采取的完全袖手旁觀的態度,現在的情況還算是略有改善。IE9的創建基于名為Direct 2D的API。這是一款2D圖形函數庫,采用了Direct3D 10作為加速手段。其實Direct2D API甚至比HTML5還要低端;至少HTML5的頁面基本上是由文本框所構建,而這些框體自身都具備一些“智能”屬性,且擁有布局規劃、邊框、背景及其它更多內容。與此相對應的是,Direct2D能夠在為開發人員留出布局空間的前提下,處理稍微復雜些的項目,例如各類曲線或是曲線組。此外,不同于WPF在利用Direct3D方面所表現出的低下效率,IE9及Direct2D在利用效率方面都得到了大幅度的優化。
對于IE9,微軟在向其開發社區公布的通告中提到兩點:HTML5是***技術,無論其是否真正合適或好用;如果大家對性能有較高要求,可以直接在C++中使用低端的Direct2D(這當然也很令人反感)或是中端的HTML5。如果大家想使用高端且專用的高性能API(例如某個基于Direct2D的WPF版本),這事兒沒戲,還是盡早放棄此類念頭吧。
因此針對Windows 8所公開的說明應該是微軟在對過去幾年所采取的策略進行綜合匯總的結果。盡管HTML5因為缺陷眾多而成為一款口碑很差的開發平臺,但Windows 8的開發人員們只要決定制作新的“浸入式”應用程序,他們就沒有更好的選擇。這項策略無疑是瘋狂且***毀滅性的,但至少它保證了開發要求的一致性。IE9的登場與Silverlight的退隱只是貫徹這套方針的***步;“浸入式”應用程序必須使用HTML5則是接下來必須接受的條件。#p#
莫名的沉默
鑒于由合理原因造成的恐慌情緒正在開發者社區中逐漸蔓延,人們可能會期望微軟站出來做點什么以安定人心。畢竟,如果微軟有辦法保留工作人員們當前具備的、基于Windows系統的開發知識及經驗,那么整件事情似乎還有斡旋的余地。
然而與之相反,微軟卻堅持認為歷史趨勢已然證明D9不能再作為開發工作的專注重點,而且其企業整體也將于今年九月舉行的開發大會上深入討論下一步開發平臺。還有其它消息嗎?答案是否定的,甚至連句“別擔心,我們肯定會想辦法讓大家繼續通過.NET及本機代碼來編寫‘浸入式’應用程序,大家還是能夠用上自己最為熟知的開發技能”這樣的安慰性話語都沒有。
重新選擇陣營
這種戰略無疑非常危險。Windows仍然會在很長一段時間內充當企業級桌面系統中的帶頭大哥,因此以商業應用為主的開發人員們別無選擇,只能聽任微軟的擺布。也就是說,雖然前路崎嶇,市場的實際風險卻并不大。但對于那些將著眼點放在平板設備及智能手機市場的開發商來說,事態就完全不同了。微軟Redmond總部不得不承認,在以下兩方面他們正面臨窘境:Windows Phone還不滿一歲,啟動步伐也極為緩慢;而在Windows 8成熟之前,整個企業也沒有可以依賴的平板設備平臺。要在商務及移動市場上兩路開花,微軟需要嶄新的“浸入式”應用程序。而且只具備這一個條件也還不夠好——只有應用產品還不能算成功,用戶也得買賬才行——但如果連這個條件都不具備那就完全沒戲唱了。如果Windows 8平板設備沒有足夠多的對應程序,那么它將永遠在iPad的威勢下被壓得抬不起頭來。
Windows Phone 7自發售以來的市場占有率圖示
微軟最為重視的要素之一仍然是其開發工具以及龐大的開發人員社區。Windows Phone明確反映了這個社區的價值所在:至少在可用的應用程序數量方面,它的表現將競爭對手手遠遠甩在身后。超過兩萬款應用程序可供使用,這一數字足以傲視webOS在線商店,更不用說黑莓的BlackBerry App World。事實上Windows Phone擁有這樣驕人的發展態勢,正是因為采用了Silverlight作為其開發平臺。這類開發工作上手輕松、容易熟悉,甚至開發人員會在用戶群體相對較小的情況下仍舊為其研制軟件產品,因為工作過程充滿趣味。
那些有過為手機開發軟件經歷的開發者們,當然很希望能夠在為Windows 8制作產品時讓相關經驗派上用場。蘋果與谷歌的平板設備操作系統都可以直接把對應的智能手機上的軟件拿來使用,因此Windows 8需要具備同樣的特性幾乎可以說是板上釘釘。即使是那些還沒有鼓搗過手機應用的技術人員,也一定會對利用自己既有的Windows開發技能為平板設備制作應用程序產生興趣。
然而,如今開發人員們被告知,要將注意力轉移到平板設備上,他們必須要拋棄以往全部的知識儲備,這無異于當頭一棒。這些微軟本應極力拉攏的開發者們現在有充分的理由質疑這款平臺的發展前景。而且他們真的為此憤怒且擔憂。這種強迫大家必須使用HTML5及JavaScript的行為簡直可以說是在鼓勵我們重新選擇支持陣營。
應用程序的重生
這其中***諷刺意味的是,微軟長久以來一直把網頁應用程序作為威脅其企業生存的死敵。如果網頁本身轉化為平臺,那么人們將不再需要Windows系統中的各類程序,甚至會進而拋棄Windows系統本身。這種觀念的直接后果就是微軟對Netscape公司所實施的毀滅性打擊以及在瀏覽器之爭中不顧一切奪取勝利的做法;微軟認為,只要成功實現上述戰略,即使網頁本身真的變成平臺,至少也要通過使用微軟產品的方式將其保持在自己的控制之下。
微軟贏得瀏覽器之戰至今已經過去了十年,相對于當時對網頁應用程序取代本地客戶端的擔憂,當下的現狀幾乎是完全相反:客戶端應用程序領域獲得了爆炸式的發展。豐富的應用程序——其中許多的前端都是云托管之下的網頁應用程序——正在蓬勃成長,而這一切都要歸功于智能手機及平板設備市場的興起。蘋果App Store與Android Market來勢之迅猛有效扼制了網頁應用程序的囂張氣焰,并同時提高了人們投入客戶端應用程序開發工作的決心和熱情。因為比起單純的網頁應用,開發人員們通過客戶端可以為用戶奉上功能更多、使用體驗更好的產品。
雖然這種趨勢可能無法一直持續下去——例如金融時報認為,為了刻意規避蘋果App Store策略而設計的網頁應用程序表明這類應用模式仍然具備很廣闊的前景——但不可否認,當前實體類應用程序的發展態勢及重要作用超出了任何人在五年前所做出的預測。
智能手機與平板設備再次將應用程序推向時代的***,而微軟,作為世界上應用程序方面最為重量級的巨鱷級企業,理應***程度地利用這種趨勢。微軟擁有***的開發工具以及資金充裕、只待在其新的平板設備上大展拳腳的眾多第三方開發商——萬事俱備,只欠東風。
瘋狂,但并不愚蠢
微軟依然在保持沉默,他們似乎很樂于看到目前的局面,即無論這項決定會造成多大的損失及麻煩,將HTML5與JavaScript作為Windows 8“浸入式”應用程序開發惟一工具的方針將決不動搖。而微軟這種沉默保持得越久,就越是能說服人們放棄那些不切實際的幻想,踏踏實實地認清事實:微軟并不是刻意不發言,而是沒有什么可說的。HTML5和JavaScript可能真的是“浸入式”應用程序開發的僅有途徑。因為如果微軟還留有后手,那么目前這長時間的沉默就變得莫名其妙了。但必須承認,微軟當下的態度非常傷人,開發商們在逐漸開始動搖并喪失信心,麻木地等待將于今年九月正式發布的、會令人徹底抓狂的最終結論。
但微軟絕不愚蠢,在這個問題方面的通告及公共關系處理貌似瘋狂,開發商們的激烈反應也在預料之中。但這家龐大的企業不可能忘記過去的教訓,因此強迫開發商們拋棄一切經驗并因此徹底喪失開發支持優勢的情況應該不會發生。Windows 8將提供一個新的API,而且大家不必通過編寫頁面的方式來使用它。
微軟可能不會針對新API作出任何相關的官方聲明,但已經有蛛絲馬跡逐漸曝光,近來還出現了作為證據的截圖。目前具體細節尚不明了,但我相信隨著時間的推移,整個謎題將越來越趨于清晰。屆時,我們將徹底了解到Windows 8會如何擺脫HTML噩夢的糾纏。
原文鏈接:
【編輯推薦】