Silverlight與Flash的未來

  • 4921
  • 0

Silverlight與Flash的未來

今天Adobe丟出了一個震撼消息,未來將不再繼續開發移動裝置的Flash Player.

對於持續關心Flash與Silverlight發展的人而言,這是可以預期的結果,只是想不到來得這麼快.

 

早在去年,微軟就不小心說出,Silverlight已死的消息,雖然後續持續澄清此問題,但對於長期使用Silverlight的開發者其實心裡都明白,Siverlight的確已經陣亡.我在另一篇Windows 8的初探文章中(http://www.dotblogs.com.tw/programlin/archive/2011/10/05/38787.aspx)由Windows 8的架構更可以看出此點.底下再進一步整理說明我的看法.

 

而Silverlight其實也是相同狀況,Siverlight當初出現的原因打的口號是Flash killer,但Siverlight的野心並不止於此,熟悉Flash的清楚,一開始的Flash是做給美工人員使用,主要用來呈現傳統Web所做不到的事情,但又不會像Java Applet那樣複雜.所以Flash推出的初期,很快的被大多數美工人員接受,快速蓬勃發展,而因為Web的走向越來越偏重與使用者互動,Flash也開始慢慢的加入一些程式開發要素,ActionScript因此出現,但慢慢的Flash慢慢轉型變為一種RIA(Rich Internet Application)應用程式,尤其是後來的版本,程式開發的比重越來越大於美工設計,但不幸的因為Flash的基礎並不是一個開發工具,歷史的包袱導致Flash的開發應用受到很大的限制,這也是為什麼很難看到Flash應用在企業應用開發.而Silverlight剛好顛倒,與其說Silverlight是Flash Killer到不如說Silverlight的目的是想成為RIA的一哥.但不幸的Silverlight還沒打死Flash就先出現了瓶頸.

Silverlight與Flash都有個很大的先天性問題,就是Runtime的依賴性,而早期Web應用上這個問題並不大,因為OS種類與Browser並不多,但好景不長,這幾年移動式裝置快速發展,導致Silverlight與Flash需要投入很大的資源才能達到跨平台的普及程度,而大多數的人都以為這是Silverlight與Flash受限的主因.不過這是可以克服的事情,只要錢多多還是可以克服.

而真正打擊到Silverlight與Flash的死穴是因為目前普及程度比重較高的OS越來越封閉,像是Ios,Windows Phone(忽略….)與未來的Windows 8,這兩個OS在設計之初就幾乎已經宣告,如果不經OS公司的允許,根本無法開發可運行的Runtime版本,間接宣告死亡.其實未來的Java也將會面臨相同的問題.我想Sun現在應該也是很頭大,如果真的成真,未來Java將會開始受限.

雖然微軟一再Silverlight未死,但在我的觀點這只是為了消彌目前Silverlight開發者的抱怨.如同.Net早期推出時定義了CLS規範,讓VB開發者轉向.Net有個VB.Net看起來熟悉的語言可用,多多少少對於VB轉.Net產生了一助力.不過到了現在,我相信對於已經接觸.Net多年的開發者而言,都應該會清楚,VB與VB.Net是個截然不同的語言,目前在.Net,VB.Net的開發人員很多都已轉向C#.

微軟也一再說明Silverlight在未來將會是大多數Windows相關平台開發的主角,會有更多的應用採用Silverlight,但我認為Silverlight已不存在的原因是,當初的Silverlight是為了實現WPF技術運行於Browser之上,而現在所有微軟推出的未來Silverlight版本沒有一樣跟Web有關,與其說是Silverlight到不如說是戴上Silverlight帽子的WPF應用程式.就如同上面所說的VB.Net是同樣的,有沒有發現微軟最近很少提到WPF??

HTML5的出現是這些事情的導火線,畢竟如果不是HTML5我相信Apple或Microsoft不敢斷然就封鎖掉Flash這類以Plugin型態出現的應用程式,畢竟HTML有太多東西做不到,雖然Apple一再說會封鎖Flash的原因是因為Flash效能不彰,但背後的原因是可以探討的,仔細想想就可以發現這是策略性問題.我在另一篇Windows 8文章中可以看出端倪.

但好在Silverlight對於未來Windows開發並不是像VB轉VB.Net是兩個截然不同的東西,大多數的Silverlight學習在未來還是可以持續使用,所以在未來真正

存活的是WPF,而被消滅的是Siverlight與WinForm跟Win32應用程式.