1. 程式人生 > >Silverlight與微軟技術(上):微軟拋棄Silverlight了麼?

Silverlight與微軟技術(上):微軟拋棄Silverlight了麼?

話說,在最近的PDC上,微軟的副總裁Bob Muglia說了類似的話“我們對Silverlight的策略改變了,我們要用HTML5來實現跨平臺的應用程式”,於是乎,社群鋪天蓋地響起了“微軟要拋棄Silverlight”的調調。出現這個說法並不奇怪,媒體轉述一遍,再給社群理解一下,很正常。但是我覺得奇怪甚至有些噁心的是,當事實愈發明朗化的時候,冒出的一些莫名其妙,興災樂禍,事後諸葛還在愈演愈烈。這兩天我在社群裡看的很多說法,某些“評論家”連一些基本概念,如“Silverlight是Windows Phone 7的開發平臺”都不清楚,就來捕風捉影,實在讓我難以繼續旁觀。

"Silverlight will continue to be a cross-platform solution, working on a variety of operating system/browser platforms, but HTML is the only true cross platform solution for everything, including (Apple's) iOS platform.

Silverlight將繼續是一個跨平臺的解決方案,未來Silverlight將持續工作在各種作業系統/瀏覽器平臺上,但是HTML才是目前一切運用真正跨平臺解決方案,包括蘋果的iOS平臺。

這句話的問題在哪裡?我看不出任何要放棄Silverlight的意思。微軟從一開始就說Silverlight將會跨作業系統及瀏覽器執行,目前是,將來也是,包括Windows,Mac OS及這些平臺上的各種瀏覽器。但是,對於移動裝置又能怎麼辦呢?蘋果的iOS上已經拒絕Flash進入,因此拒絕Silverlight也是可以預料的,因此Silverlight方面就算盡再大努力也無法實現這點。而蘋果是支援HTML 5的,因此微軟為了發展,將HTML作為“跨所有平臺”的手段,在我看來十分順理成章。可能Silverlight以後不會進入iOS,但並不表示它不會進入Android等其他手機平臺,而就目前來說,Silverlight本身已經是Windows Phone 7的開發平臺了。

Silverlight之於Windows Phone 7,WPF之於Windows,就好比CocoaTouch之於iOS及Cocoa之於Mac OS,它們都是十分正常的產品及開發平臺策略。就拿蘋果來做例子吧,CocoaTouch只能工作在iOS系統上,您擔心CocoaTouch被蘋果拋棄嗎?誠然,微軟的手機才剛剛起步,平板電腦更是沒有蹤影,從商業上來說遠不如iOS裝置成功,但是人人都能看到微軟對Windows Phone 7的重視,WP7是微軟不斷強調的“三屏一雲”戰略的重要組成部分,而Silverlight就是WP7上的開發環境,那麼您為什麼會擔心它會被微軟拋棄?我看到有些文章的標題類似於:“Silverlight失敗,未來屬於移動網際網路”,於是我就轉不過腦子了,Silverlight對於微軟來說,就幾乎等同於“移動網際網路”,您一邊看好移動網際網路,一邊覺得Silverlight掛了,你讓微軟情何以堪?

有人說,這次的PDC 2010都沒有Silverlight的內容了,可以看出微軟不要Silverlight了,否則怎麼沒有Silverlight 5的訊息?我也覺得很奇怪,PDC是有主題的,這次的主題是Azure,IE 9和WP 7,因此強調的是雲端計算,HTML 5和移動網際網路開發,最後一個其實就是Silverlight。事實上Silverlight的內容本就沒少,只是換了個名字叫做WP 7。我不知道嚷嚷著PDC沒有了Silverlight的同學有沒有真正看過PDC,不過我在看,看了很多,感覺很爽。我看到了PDC的Keynote演講上ScottGu就在現場操練Silverlight開發,分會場裡也在大談“基於Silverlight開發面向Azure平臺的WP7應用程式”、“優化WP7中Silverlight程式效能”,“早該知道的WP7開發注意事項”,還有與WP7幾乎無關的“使用Silverlight 4開發商業應用”,“如何在WPF和Silverlight中共享程式碼”等等太多內容。半年前的Mix 10大會上微軟還在大談Silverlight和WP7,只不過打得是Silverlight的旗號,而僅過了半年,微軟打著自己正在全力推廣的WP7的旗號來談幾乎相同的話題,您怎麼就突然崩潰了呢?

PDC是微軟專業會議,議程及其有限,而微軟的技術實在太多,沒有登上PDC講臺的話題實在太多太多了。去年的PDC還有關於CLR、虛擬化、Windows Server的話題呢,這次都看不到了,莫非微軟要拋棄這些了?如果像某些同學希望的這樣,微軟釋出了Silverlight 5的訊息,我估計對於微軟鋪天蓋地的譴責之聲就要變成“技術發展太快”了。

如果說CocoaTouch只是在iOS裝置上執行,而Silverlight除了Windows Phone 7以外,之前Windows和Mac OS上該有的還有,已經在的還在。Silverlight對於微軟的重要性,不會比CocoaTouch對於蘋果的重要性來的差。作為一個Silverlight開發人員原本該幹什麼,現在還是幹什麼,除此之外,退可開發WPF,進可出手WP7。ScottGu在PDC上接受Scott Hanselman採訪時說,微軟將開發語言、框架、工具進行統一,讓開發人員可以很自如地進入WP7的開發領域。我對WPF和Silverlight一竅不通,但我從沒像現在這麼羨慕您已經掌握了這部分技術(當然其實也沒那麼羨慕啦,我相信自己會學得很快),因為在移動網際網路的大潮下,我可能以後還真要去學習WP7上的Silverlight開發,而您已經可以順利過渡了。

如果您還是對Bob的那段話表示糾結的話,其實也可以繼續看看他的說法了。他和微軟Silverlight團隊估計也沒想到,當然現在也意識到事態的嚴重性,於是連續發表了兩篇宣告,一是微軟對Silverlight未來的擔保,二是關於PDC上關於Silverlight那些表態的後續解釋,其中寫到:

I said, "Our Silverlight strategy and focus going forward has shifted." This isn't a negative statement, but rather, it's a comment on how the industry has changed and how we're adapting our Silverlight strategy to take advantage of that.

我之前說到:“我們的Silverlight策略和前進的重心轉移了”,這不是一個負面的說法,它只表示業界的現狀改變了,我們調整Silverlight的策略希望可以利用這種改變。

在我看來,業界現狀的表現之一,就是之前我所說的蘋果不會接受Silverlight和Flash,但它對HTML 5友好。微軟不強求Silverlight進入iOS——這是Bob之前所特地強調的裝置——而是讓Silverlight去迎合HTML 5大潮。例如,Adobe在剛剛結束的MAX 2010大會上展示了一款Flash至HTML 5的轉化工具,那麼我猜想,微軟今後也會這麼做嗎?利用Flash和Silverlight所配備的高度生產力與HTML 5相抗衡也不失為一種競爭手段。當然,誰知道呢。此外,文章裡還談到過幾個月就有下一代Silverlight的訊息了,不知道這能否讓某些朋友鬆一口氣。

討論和爭議是好事,但是在這個過程中出現了一些聲音讓我很不滿。例如某些同學連Silverlight與WP7的關係都不知道就來指點江山。Ivony寫到過類似的意思:社群裡有一些人,看著某個事物不斷髮展卻無力接觸,一遇任何風吹草動卻跳出來幸災樂禍,正如這次Silverlight事件,還有上次微軟於LINQ to SQL等等。我不知道上次的那些認為微軟放棄LINQ的同學,看到.NET 4.0中LINQ to SQL的更新,LINQ to Entity在最近兩屆PDC中的表現,以及本次PDC上隨Azure出現的“LINQ to Azure,LINQ to Everything”的演講是什麼感覺。

微軟的技術一定是有問題的,但是我們完全可以用合適的方式來對待,受用無窮。當然,這方面內容就下次再展開了。