自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Flash:涅磐與重生

開發(fā) 前端
Silverlight成不了Flash的競爭對手,主要原因是商業(yè)層面的原因。HTML 5還是初生嬰兒,需要進(jìn)一步觀察。這些在本文后半部具體分析,本文重心還是Flash。

10月3號,F(xiàn)lash Player 11 和 AIR 3.0正式提供下載,一片安靜。最近這兩年來,關(guān)于Flash的新聞一向是以負(fù)面為主,先是 Silverlight 的挑戰(zhàn),然后是 iphone和ipad的不支持及HTML 5的良好預(yù)期,F(xiàn)lash 看似風(fēng)雨飄搖,明滅不定。實(shí)則不然。我個(gè)人觀點(diǎn):Silverlight成不了Flash的競爭對手,主要原因是商業(yè)層面的原因。HTML 5還是初生嬰兒,需要進(jìn)一步觀察。這些在本文后半部具體分析,本文重心還是Flash。

51CTO推薦專題:HTML 5 VS Flash 誰是海賊王?

 

下面先詳細(xì)闡述:

(1)什么是Flash平臺

(2)Flash平臺的兩次涅磐與重生

(3)Flash平臺的商業(yè)策略及這種策略的優(yōu)勢和劣勢

我個(gè)人只有3年的Flash開發(fā)經(jīng)驗(yàn)和2個(gè)月的HTML 5開發(fā)經(jīng)驗(yàn),受經(jīng)驗(yàn)所限,本文若有事實(shí)錯(cuò)誤還請指正。

(1)什么是Flash平臺

什么是Flash平臺?這個(gè)問題絕大多數(shù)人、甚至絕大多數(shù)程序員都不知道,因?yàn)镕lash一直游離在主流開發(fā)人群之外,大家對它的印象:最開始是網(wǎng)絡(luò)動畫和網(wǎng)絡(luò)廣告,后來是網(wǎng)絡(luò)視頻,接著是現(xiàn)在的網(wǎng)頁游戲。

下面用一句話來介紹什么是Flash平臺:

Flash平臺是與.Net和Java類似的運(yùn)行時(shí)平臺,有虛擬機(jī)、有GC、有比較成熟的快速開發(fā)語言、有比較成熟的IDE。它們之間的不同是:

◆ Java是從Server端起家的

◆ Net是從桌面起家的

◆ Flash是從Web起家的

Java 現(xiàn)在統(tǒng)治了Server端的快速開發(fā)。.Net 統(tǒng)治了Windows下的Web開發(fā)、是桌面快速開發(fā)(還未統(tǒng)治)的重要選擇。誰會統(tǒng)治Web和移動APP的快速開發(fā)?目前只有兩個(gè)選項(xiàng)——JS和Flash。雖然目前JS的呼聲比較高,但我覺得Flash的勝機(jī)更大,或者是兩者的寡頭壟斷,后面比較html5和flash時(shí)再詳細(xì)分析。

Flash有一個(gè)運(yùn)行時(shí),現(xiàn)在叫avm2,相比Java和.Net的大個(gè)頭來說,這個(gè)運(yùn)行時(shí)很小,只有很少的功能,甚至連線程都沒有。Flash Player 10的安裝包為2M+,F(xiàn)lash Player 11的安裝包為3M+。Flash 的可執(zhí)行文件格式是swf,庫是swc,字節(jié)碼是abc(ActionScript Bytecode)。Flash的主流開發(fā)語言是actionscript 3.0,它是一種ECMAScript語言,我私下叫它javascript ++。actionscript 3.0 既有靜態(tài)語言的特性,又有動態(tài)語言的特性,什么屬性啊、事件啊、元數(shù)據(jù)啊等都有,是一門快速的開發(fā)語言。Flash的其它的開發(fā)語言有haXe,C,C++。順便說一句:haXe也能開發(fā)html5應(yīng)用。

Web是Flash平臺的起家之地,以Flash Player為核心。在桌面上,F(xiàn)lash的解決方案是AIR(你可以把它看作WPF的類似物),在移動平臺上,F(xiàn)lash的解決方案也是AIR,在Android上,AIR是以虛擬機(jī)機(jī)制運(yùn)行的,在ios上,是直接編譯成二進(jìn)制執(zhí)行的。

也就是說,目前的Flash已經(jīng)從以前的Web平臺擴(kuò)充到三個(gè)平臺:

◆ Web平臺

◆ Windows/Linux/Mac osx桌面平臺(這次AIR 3.0的發(fā)布,大幅度增強(qiáng)了桌面平臺的能力)

◆  移動平臺(Android,ios,黑莓)

Flash是目前唯一一個(gè)可以快速開發(fā),然后經(jīng)過簡單的修改(連UI都是公用的)就可以在上面幾個(gè)平臺上跑的技術(shù)。就我個(gè)人的體驗(yàn),actionscript 3.0的開發(fā)速度比java高得多,比C#要略低。

好吧,順便在這里說一句,為什么我說Silverlight和Flash看似一樣,卻是截然不同的。

雖然從技術(shù)上Flash能做到的,Silverlight是都可以做到,但是微軟是絕對不會放縱Silverlight跨這么多平臺的,因此在商業(yè)上是絕對做不到的。隨著AIR 2.7的出現(xiàn),以及微軟現(xiàn)在對win8、html5的態(tài)度,Silverlight已經(jīng)提前出局了。Silverlight將是windows上的開發(fā)利器,但,僅僅限于windows平臺。這種層面的戰(zhàn)爭是商業(yè)戰(zhàn)爭,而不是技術(shù)戰(zhàn)爭。Silverlight雖然是微軟自己搞得,但現(xiàn)在看起來是后媽養(yǎng)的。Flash雖然是買來的,但和Adobe的發(fā)展習(xí)習(xí)相關(guān),就像親兒子一樣。

Adobe有一個(gè)開源項(xiàng)目叫Alchemy,可以用C/C++寫Flash程序,這一方面會繼續(xù)增強(qiáng):

We released Alchemy on Labs over two years ago as an experimental prototype that allowed developers to leverage C/C++ code in Flash Player and AIR. We have not updated the original Alchemy prototype, and while we noted from the beginning that it should not be relied upon for production content, we’ve received persistent requests from developers asking for official support in the Flash runtimes.

We’ve been listening and have decided to invest in creating an improved version of Alchemy, which we plan to release as part of a paid production offering for commercial development. We intend to make non-commercial use free of charge.

The production release will offer significantly better performance and productivity over the Labs prototype. By re-architecting major portions of the technology, we aim to enable code execution approaching native performance, scalable support for large code bases, full debugging support, up to 75% reduction in code size, and seamless integration with ActionScript – all while reaching virtually every connected computer on the web.

出處:http://blogs.adobe.com/flashplayer/2011/09/updates-from-the-lab.html

如果這一個(gè)目標(biāo)實(shí)現(xiàn)了,直接在Flash平臺上寫高性能程序不是奢望。

(2)Flash平臺的兩次涅磐與重生

Flash平臺經(jīng)過了兩次涅磐與重生。

第一次是2006年 Flash Player 9的發(fā)布。從Flash Player 8到 Flash Player 9的進(jìn)步是質(zhì)的飛躍,在虛擬機(jī)層面由 avm1 變?yōu)?avm2,性能的大幅度提高及由 actionscript 2 演化到 actionscript 3,使得Flash 平臺具有了挑戰(zhàn)其它平臺的可能性。

第二次就是這次Flash Player 11 及 AIR 3的發(fā)布。Flash Player 11 有一個(gè)重大的特性就是硬件加速的 3D API。雖然Silverlight 5也提供了硬件加速3D API,但是Silverlight 蝸牛般的推進(jìn)速度令人遺憾。

這里再強(qiáng)調(diào)一下,這種戰(zhàn)爭是商業(yè)戰(zhàn)爭。Silverlight為什么安裝率不高?我認(rèn)為有兩大原因:

(a)強(qiáng)行推行Silverlight 存在一定的法律風(fēng)險(xiǎn),這個(gè)不是主要原因;

(b)就算Silverlight占有率是99.5%,微軟也得不到什么好處,反而需要花費(fèi)巨大的推廣費(fèi)用,這個(gè)應(yīng)該是最主要的原因。除非微軟能夠把每臺機(jī)器上的Flash 給卸載掉,那個(gè)時(shí)候才能從Silverlight獲得巨大利益。能做到這一點(diǎn)的,只有我們天朝的周大先生,微軟沒有這樣的人物,a8m也不會讓他這樣干。

再看看Flash Player的成績。Flash Player 10是2008年發(fā)布的,現(xiàn)在的占有率是99+%。我在前幾個(gè)項(xiàng)目時(shí)還要考慮Flash Player 9,現(xiàn)在根本不用考慮了。而如果Flash Player 11能延續(xù)這個(gè)速度,2-3年之后,幾乎每一個(gè)機(jī)器的瀏覽器上就有了硬件加速3D API,這比普及瀏覽器還快得多。3D Web應(yīng)用,3D 網(wǎng)頁游戲的首選技術(shù)呼之欲出了。

AIR 3的意義比Flash Player 11的意義更大。

AIR 3可以調(diào)用native api了(之前,只能和可執(zhí)行文件通訊),這樣一來,在桌面開發(fā)就可以將界面和邏輯部分用AIR開發(fā),而性能攸關(guān)部分用c/c++開發(fā)。

AIR3 支持桌面和移動平臺。印象中,從AIR 2.6已經(jīng)支持移動平臺了,但是那個(gè)版本的性能表現(xiàn)很差勁。AIR 2.7表現(xiàn)還可以,這個(gè)是今年6月發(fā)布的,沒幾個(gè)月,目前用AIR開發(fā)的移動應(yīng)用已經(jīng)10000+了。并且,市面上已經(jīng)有眾多的Flash游戲,這些游戲可以以很小的成本遷移到移動平臺上去。而游戲,是移動平臺上最主流的應(yīng)用。

OO、快速開發(fā)、IDE、跨平臺、3D、native invoke,這些加起來,意味著什么呢?雖然移動平臺讓Flash Player 插件遭到了滑鐵盧,但是也給了Adobe一個(gè)崛起的契機(jī),AIR3 就是吹響的號角。

(3)Flash平臺的商業(yè)策略及這種策略的優(yōu)勢和劣勢

總體來說,F(xiàn)lash的平臺策略是小運(yùn)行時(shí)+類庫擴(kuò)展和源生擴(kuò)展。這個(gè)運(yùn)行時(shí)的核心是UI。UI是開發(fā)中工作量非常大的部分,能夠簡化這一部分的開發(fā)是Flash的核心優(yōu)勢,而因?yàn)槭切∵\(yùn)行時(shí),跨平臺的工作量不大。因此Flash可以輕輕松松隨隨便便的跨平臺,而.Net,Java這種重量級的選手跨平臺的代價(jià)就大多了。Silverlight也可以做這一點(diǎn),但不會傻到真去做。

Flash平臺的三個(gè)核心優(yōu)勢:

(a)廣泛的安裝基礎(chǔ)(這個(gè)拜網(wǎng)絡(luò)動畫、視頻而賜)

(b)統(tǒng)一的UI模型(兩個(gè)層面:基于Sprite層面的和基于mxml/data bindding/style層面的)

(c)跨平臺(主流平臺都跨了——各大桌面操作系統(tǒng)、各大web瀏覽器(桌面)、各大移動應(yīng)用平臺)

Flash平臺的劣勢也是在于小運(yùn)行時(shí),運(yùn)行時(shí)不完美,缺乏一些能力,對于大型應(yīng)用不適合,只適用于中小型應(yīng)用,而這類應(yīng)用,恰恰是移動應(yīng)用和Web應(yīng)用的主流。

Flash、Silverlight和html5的比較分析

上面說了,F(xiàn)lash有三個(gè)核心優(yōu)勢:安裝基礎(chǔ)、統(tǒng)一的UI模型和跨平臺。

對于Silverlight來說,.Net在技術(shù)上比Flash更為成熟,不過缺陷在于安裝基礎(chǔ)和跨平臺,這導(dǎo)致了Silverlight只能是Windows平臺上的移動應(yīng)用和Web應(yīng)用的可選方案。

對于html5,需要詳細(xì)的分析:

(1)安裝基礎(chǔ):html5在移動平臺上的安裝基礎(chǔ)比較高,但是在桌面上的安裝基礎(chǔ)還很弱;

(2)UI模型:html + css + js 比較成熟,雖然瀏覽器兼容問題也客觀存在,但注意一下還是可以解決,js的話是個(gè)短板,它和C#,Java這種現(xiàn)代語言來說,生產(chǎn)力差距是明顯的,但如果要寫大型應(yīng)用的話,可以用haXe這種萬能語言來補(bǔ)充;

(3)跨平臺:目前主要是跨移動平臺,桌面平臺的話,ie7,8的消滅還需要時(shí)日,對于中國來說,還得先干掉ie6。

html5最重要的優(yōu)勢是它不是私有技術(shù),受各大廠商歡迎。它的最重要的缺點(diǎn)有兩個(gè):

(1)性能:這個(gè)性能有兩個(gè)限制,第一個(gè)是由于是公開的技術(shù),各種實(shí)現(xiàn)上的性能不一樣,js在不同平臺上性能差距10倍100倍是常事。移動平臺不支持Flash是因?yàn)镕lash應(yīng)用在移動瀏覽器上幾乎跑不動。這并不表示Flash平臺比html5 平臺性能低下,反而目前,根據(jù)我的項(xiàng)目經(jīng)驗(yàn),flash平臺的性能要遠(yuǎn)遠(yuǎn)高出html5平臺的性能,且是數(shù)量級的差異。同等的Flash 2D應(yīng)用,如果用html5實(shí)現(xiàn)的話,在移動平臺上的性能簡直不忍目睹,即使是在桌面平臺上,IE9的Canvas有硬件加速,跑起來也還是顯得慢。當(dāng)然,這些會隨著時(shí)間發(fā)展慢慢完善,但是,想想多瀏覽器,等每個(gè)廠商都完善是個(gè)漫長的過程。而對于私有技術(shù)來說,AIR 2.6在移動平臺上慢得像蝸牛,僅僅翻了個(gè)年,AIR 2.7在移動平臺上的性能就有了數(shù)量級的提升,這是私有技術(shù)的好處。第二個(gè)限制是js,js不是強(qiáng)類型的,這不利于大規(guī)模開發(fā)和高性能開發(fā),會成為瓶頸。對于前者,由于js非常靈活,我們可以通過haXe這類語言引入強(qiáng)類型,但高性能,卻是實(shí)打?qū)嵉膯栴}。

(2)解決方案:出于發(fā)展初期,各種解決方案欠缺。

因此,未來的RIA可能三分天下:

◆ 50K以下的和50K以上的用戶眾多的非計(jì)算密集性應(yīng)用,html + js統(tǒng)治

◆ 50K-2M之間(Windows平臺)、50K+(其它平臺)Flash統(tǒng)治,并會在桌面和移動應(yīng)用上有一塊不小的領(lǐng)地

◆ 2M之上的(Windows平臺),Silverlight統(tǒng)治

IT界,新的競爭者總是出現(xiàn)在意想不到的地方升起。

原文:http://www.cnblogs.com/xiaotie/archive/2011/10/05/2199234.html

【編輯推薦】

  1. Adobe Flash 11高調(diào)挑戰(zhàn)HTML 5
  2. 17個(gè)基于HTML 5和CSS3開發(fā)的優(yōu)秀應(yīng)用程序
  3. HTML 5:最后的火種?
  4. 淺析HTML 5在移動應(yīng)用開發(fā)中的使用
  5. 學(xué)習(xí)HTML 5的10個(gè)頂級資源
責(zé)任編輯:陳貽新 來源: xiaotie的博客
相關(guān)推薦

2009-12-31 17:35:45

2010年服務(wù)器市場

2010-07-27 10:54:22

Flex

2015-07-29 16:42:17

2011-07-01 10:29:15

2010-08-12 12:55:02

FlexFlash

2015-04-14 11:08:47

寬帶

2009-10-12 16:20:15

2011-06-13 09:04:39

QT Flash 交互

2011-11-15 09:38:01

黑莓移動開發(fā)開發(fā)者

2010-08-06 09:24:44

FlexFlash

2009-08-06 09:37:09

Silverlight

2012-05-08 16:34:10

小米

2009-03-19 09:01:53

Silverlight微軟Flash

2013-01-31 17:23:20

RIM黑莓BB10

2009-05-13 15:46:30

FlashSilverlight大比拼

2010-03-17 09:22:06

FlashSilverlight

2016-03-30 11:54:20

2013-07-09 22:22:25

分布式電子商務(wù)

2020-12-15 10:40:14

CentOSRockyLinux

2012-09-10 09:47:42

云計(jì)算云應(yīng)用云應(yīng)用架構(gòu)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號