最近關(guān)于html5吵得火熱,很多人認(rèn)為html5出現(xiàn)會(huì)秒殺Flash,以至于在各大web前端開(kāi)發(fā)論壇吵得不可開(kāi)交。論壇里三言兩語(yǔ)說(shuō)的不夠 盡興,只好在自己一畝三分地里敞開(kāi)了說(shuō)說(shuō)。也當(dāng)一次神棍,展望一下web前端開(kāi)發(fā)的未來(lái)。首先這里所說(shuō)的html5也不僅指html5本身,而是泛指html5、CSS3、 JavaScript以及新的瀏覽器API所包含的整 個(gè)web端技術(shù)。
誰(shuí)需要html5?
Google最需要!Apple的Jobs也需要。但這兩個(gè)肯定各懷鬼胎。微軟無(wú)所謂了,反正他還有Silverlight。
Mozilla/Firefox非盈利組織,目標(biāo)可能會(huì)高尚些,是w3c標(biāo)準(zhǔn)就要支持。Opera那點(diǎn)瀏覽器市場(chǎng)占有率估計(jì)還沒(méi)敢有太多想 法。
Google的云計(jì)算帝國(guó)就差一個(gè)支持 RIA(Rich Internet Applications)富互聯(lián)網(wǎng)應(yīng)用的客戶端了,試想 html5得到普及,更多的應(yīng)用轉(zhuǎn)向BS模式時(shí),微軟帝國(guó)的桌面軟件生態(tài)環(huán)境必定受到很大威脅,垂涎多年的Google一定是最大受益者。當(dāng)在一臺(tái)操作系 統(tǒng)免費(fèi)的電腦上使用和MS Word差不多功能的免費(fèi)Google Doc時(shí),你還會(huì)掏錢買微軟的Word嗎?當(dāng)你所有的辦公應(yīng)用都只需要打開(kāi)瀏覽器窗口 時(shí),你還會(huì)花錢買操作系統(tǒng)嗎?Google的Chrome OS操作系統(tǒng)界面已經(jīng)說(shuō)明了這個(gè)意圖。
Jobs也需要html5,他是打著小算盤,想讓瀏覽器原生支持視頻音頻,這樣iPhone、iPad就不用嵌入Flash,Jobs當(dāng)然 不能讓Flash進(jìn)iPhone OS,要不然App Store里的游戲誰(shuí)去買?同時(shí),如果大量的應(yīng)用都能基于瀏覽器實(shí)現(xiàn)時(shí),用戶就不會(huì)被 Windows的桌面應(yīng)用套牢了。漂亮的Mac電腦誰(shuí)不喜歡。
Macromedia和后來(lái)的當(dāng)家Adobe把握住了互聯(lián)網(wǎng)應(yīng)用的發(fā)展需求,不斷的完善的Flash,使之已經(jīng)超越了瀏覽器本身的功能。各 大瀏覽器廠商也看到這種應(yīng)用的需求,不甘于一個(gè)本該瀏覽器實(shí)現(xiàn)的功能,由一個(gè)幾兆大小的 Plugin實(shí)現(xiàn)了,并玩的風(fēng)生水起。于是不遺余力的推進(jìn) html5,并且矛頭直指Flash。
用戶想要html5嗎?用戶要的不是技術(shù),是應(yīng)用,是體驗(yàn)。如果你能拿Ajax實(shí)現(xiàn)一個(gè)開(kāi)心農(nóng)場(chǎng),我想沒(méi)誰(shuí)會(huì)在乎它是不是Flash做的。
開(kāi)發(fā)者想要 html5嗎?那需要一個(gè)成熟的html5+CSS3+JS的開(kāi)發(fā)環(huán)境,需要各個(gè)瀏覽器提供統(tǒng)一的用戶體驗(yàn),即標(biāo)準(zhǔn)的完全兼 容。還需要增加新的學(xué)習(xí)成本。
Flash 的優(yōu)勢(shì)?
Flash比html5強(qiáng)在哪?性能,功能?如果說(shuō)html5將擁有和Flash所有內(nèi)置對(duì)象類似的DOM 呢,還有GPU的2D、3D加 速呢?這不是沒(méi)可能,畢竟html5還只是草案。當(dāng)然Flash也能不停的更新。
開(kāi)發(fā)群體:
我認(rèn)為Flash的優(yōu)勢(shì)是在開(kāi)發(fā)人員上,十多年的積累,有眾多優(yōu)秀的藝術(shù)家、程序員和互動(dòng)設(shè)計(jì)師集中在Flash平臺(tái)上做互動(dòng)媒體開(kāi)發(fā)。也 使無(wú)數(shù)的類庫(kù)有了AS版,如FLARToolKit,Touchlib,OpenCV這些互動(dòng)、圖像分析的c++庫(kù)都移植到了Flash平臺(tái)。在RIA應(yīng) 用上有相對(duì)成熟且開(kāi)源的Flex框架,越來(lái)越多的企業(yè)在嘗試使用Flex替代Ext等 Ajax框架,為客戶提供更好RIA應(yīng)用體驗(yàn)。
持續(xù)發(fā)展:
FlashPlayer 是一個(gè)封閉的系統(tǒng),是由Adoeb獨(dú)家控制,相對(duì)于開(kāi)放的html5標(biāo)準(zhǔn)這是弱勢(shì),也是技術(shù)上的優(yōu)勢(shì),它可以很靈 活,可以隨時(shí)加入新技術(shù),新功能。而 html5是一個(gè)公開(kāi)標(biāo)準(zhǔn),既然是標(biāo)準(zhǔn)就意味著不會(huì)經(jīng)常改動(dòng)。Flash的改進(jìn)升級(jí)只需要用戶升級(jí) FlashPlayer插件,插件的升級(jí)相對(duì)用戶來(lái)說(shuō),是輕量級(jí)的。HTML標(biāo)準(zhǔn)的改進(jìn)意味著升級(jí)瀏覽器,這是相對(duì)重量級(jí)的用戶操作,尤其是還有很多人不 明白什么是瀏覽器。
html5開(kāi)放標(biāo)準(zhǔn)一旦確定下來(lái),就會(huì)有一個(gè)很長(zhǎng)的使用周期,今天看是足夠先進(jìn)的功能,十年后呢。就像當(dāng)年我們用著 HTML4+CSS2+JS沾沾自喜以為足夠表現(xiàn)Web應(yīng)用時(shí),誰(shuí)能想到今天Flash不斷改進(jìn)所開(kāi)拓的天地呢。或許十年后我們又該討論HTML6秒殺 Flash的話題了。
超越web應(yīng)用:
如果當(dāng)時(shí)SUN能重視Java Applet,或許就沒(méi)有Flash的今天,SUN也不會(huì)淪落到被收購(gòu)的境地。而如今Adobe AIR更 是讓Flash超越Java Applet,讓Flash超越了web,脫離了瀏覽器。Flash到如今功能不斷增強(qiáng),在多媒體領(lǐng)域也在不斷地壓縮自家老 大哥Director的應(yīng)用空間。多點(diǎn)觸摸、人臉識(shí)別、Socket通訊同步、AR增強(qiáng)現(xiàn)實(shí)、實(shí)時(shí)視頻等等功能在Flash平臺(tái)上的實(shí)現(xiàn),讓越來(lái)越多的互 動(dòng)多媒體項(xiàng)目采用Flash方案。
希望Adobe繼續(xù)能擴(kuò)展Adobe AIR平臺(tái)的功能,提高性能。能有越來(lái)越多的跨平臺(tái)桌面應(yīng)用在AIR上實(shí)現(xiàn)。
Flash 的劣勢(shì)?
FlashPlayer版權(quán)私有。
swf文件的內(nèi)容相對(duì)封閉,搜索引擎不友好。
插件的安全隱患。
相對(duì)與Ajax技術(shù)的學(xué)習(xí)曲線及學(xué)習(xí)成本。
FlashPlayer 94%裝機(jī)率!=100%。
iPhoneOS明確不支持Flash,而iPad首日12萬(wàn)的訂單,預(yù)計(jì)將會(huì)開(kāi)啟一個(gè)大市場(chǎng)。
不支持3D硬件加速。FlashPlayer如果支持3D硬件加速,必將重寫(xiě)現(xiàn)有的2D矢量引擎,鑒于ShockWave 3D的 表現(xiàn),F(xiàn)lashPlayer 硬件3D,很難有很好的用戶體驗(yàn)!
html5拿什么取代Flash
功能:
html5目前還只是草案,從已提交的內(nèi)容來(lái)看,增加了許多更具語(yǔ)義的標(biāo)簽,新的標(biāo)簽意味著在DOM中增加新的類,如果把瀏覽器比做一個(gè)大 的 Flashplayer,html5無(wú)非就是在增加新的類,新的API。然后由JavaScript來(lái)調(diào)用這些API。
如果html5要完全取代Flash,至少要提供和Flashplayer10相似的功能。
這應(yīng)該不是問(wèn)題,添加WebSocket 、WebSQL、WebGL……甚至WebQt、WebMFC都是可以無(wú)盡暢想的。或者干脆把瀏 覽器就做成一個(gè)大虛擬機(jī),完成Java的桌面遺愿。如果有足夠的需求動(dòng)力,這些都不是問(wèn)題。
性能:
在很多 html5激進(jìn)派的文章里,都痛指目前Flash的效率低下,導(dǎo)致瀏覽崩潰。真的是Flash效率低到如此不堪嗎?肯定不是,只是 Flash的濫用和參差不齊的Web前端開(kāi)發(fā)人員造成的。同樣如果用IE的JS引擎寫(xiě)一個(gè)Ajax版的XX農(nóng)場(chǎng),如果所有頁(yè)面廣告動(dòng)畫(huà)都用JS來(lái)寫(xiě),我想 那才叫效率低下。如果真的Flash效率低,為什么那么多網(wǎng)頁(yè)游戲都不是Ajax做的呢?為什么很多優(yōu)化的很好的Flash3D游戲場(chǎng)景都很流暢,而一個(gè) 2D的XX農(nóng)場(chǎng)就能拖慢你的酷睿2呢?不明真相的半吊子開(kāi)發(fā)人員總是把瀏覽器不響應(yīng)和崩潰歸結(jié)于Flash效率低下。
所以未來(lái)html5要取代Flash 必須有一個(gè)高效的2D/3D圖形文字渲染引擎,和一個(gè)高效的JavaScript引擎。這樣 才能帶來(lái)更好的用戶體驗(yàn)。這些,眾瀏覽器廠商都準(zhǔn)備好了嗎?Chrome和Opera似乎正在走這條路。
兼容性:
HTML4標(biāo)準(zhǔn)已經(jīng)十多年了,今天我們還會(huì)寫(xiě)下fxckIE6的CSS樣式名。瀏覽器的兼容性會(huì)是最大的問(wèn)題,尤其是加入n多特性后的 html5和CSS3。IE,F(xiàn)irefox,Chrome,Safari這些瀏覽器背后的大佬們,怎么去協(xié)調(diào)呢?這有個(gè)矛盾,開(kāi)發(fā)差異化的產(chǎn)品,卻要提 供同質(zhì)化的功能。JS性能、標(biāo)簽瀏覽,同步收藏,插件這些提高用戶體驗(yàn)的功能,都是這些差異化的方向。如果再出現(xiàn)類似ActiveX這類IE only的 東西,那還不如維持HTML4這種方式不變。
開(kāi)發(fā)模式:
Flash IDE將無(wú)數(shù)優(yōu)秀的藝術(shù)家、UI設(shè)計(jì)師和互動(dòng)程序設(shè)計(jì)師團(tuán)結(jié)在一起,最終成就了Flash,這也與Macromedia和 Adobe在圖形設(shè)計(jì)和互動(dòng)設(shè)計(jì)群體中的號(hào)召力不無(wú)關(guān)系。
html5的互動(dòng)會(huì)將JavaScript提高到一個(gè)新的高度,這必將需要一個(gè)成熟的開(kāi)發(fā)環(huán)境。繼續(xù)DW+Firebug?或者DW升級(jí)為 全新的html5互動(dòng)開(kāi)發(fā)IDE,或者微軟VS來(lái)干這件事,或者是Eclipse?
成熟的開(kāi)發(fā)環(huán)境才能聚攏人才,才能激發(fā)無(wú)窮的創(chuàng)造力,帶來(lái)更多的內(nèi)容。豐富的內(nèi)容自然帶來(lái)更多用戶。
部署:
這是最重要的一個(gè)問(wèn)題,沒(méi)有這一步,一切都是零。
Flash新版本怎么部署?在90%多桌面占有率的基礎(chǔ)上更新插件就OK。html5怎么部署,更新瀏覽器,這個(gè)有點(diǎn)難,看看頑強(qiáng)的 IE6。聽(tīng)到有人建議微軟在系統(tǒng) ServerPack里包含IE更新,只能說(shuō)這想法很好,但是反壟斷的大錘一定會(huì)把微軟砸死。
那怎么引導(dǎo)用戶去升級(jí)瀏覽器呢?對(duì)于互聯(lián)網(wǎng)“Core User”來(lái)說(shuō)不是問(wèn)題,目前支持html5和CSS3部分特性的Chrome開(kāi)發(fā) 版,很多人都在用了。但是那些“Light User”呢,可能連天天看網(wǎng)頁(yè)用的這個(gè)窗口跟瀏覽器是什么關(guān)系都不明白。
這需要一個(gè)html5的殺手級(jí)應(yīng)用去引導(dǎo),“Light User”幾乎不會(huì)以技術(shù)為導(dǎo)向去升級(jí)瀏覽器的,他們只會(huì)以應(yīng)用需求為導(dǎo)向去升 級(jí)。比如YouTube不再支持IE6用戶,這樣喜歡YouTube視頻的用戶會(huì)去升級(jí)IE6再來(lái)訪問(wèn)。用戶不會(huì)是因?yàn)镮E6的HTML標(biāo)準(zhǔn)兼容差而選擇 更新IE6,這是必然的。
那html5的殺手級(jí)應(yīng)用在哪里呢?或者說(shuō)都有Youtube這樣的影響力和號(hào)召力嗎?而沒(méi)有這種號(hào)召力的網(wǎng)站,誰(shuí)會(huì)貿(mào)然率先支持 html5來(lái)要求用戶升級(jí)瀏覽器嗎?這些網(wǎng)站之間必定會(huì)陷入囚徒困境中,在重復(fù)的囚徒困境中,博弈被反復(fù)地進(jìn)行。最終才會(huì)全面進(jìn)入 html5時(shí)代。這個(gè) 過(guò)程或者很短,也可能很長(zhǎng)。畢竟現(xiàn)存的Web前端還沒(méi)到不堪的地步,反倒是由于Flash這些插件和jQuery這些JS框架弄的有聲有色。
總結(jié)
html5不是用戶應(yīng)用的迫切需求,更多是廠商試圖改變軟件生態(tài)格局的戰(zhàn)略需求。
html5的兼容性鑒于各大瀏覽器的以往表現(xiàn),有待觀望,不宜立即遷移應(yīng)用。
html5需要一個(gè)成熟完整的開(kāi)發(fā)環(huán)境,記事本+瀏覽器對(duì)付不了。
html5功能的暴增,瀏覽器必須有一個(gè)高 效的圖形引擎和腳本引擎。
Flash是一個(gè)不斷在發(fā)展的技術(shù),有很強(qiáng)的靈活性,html5不可能完全取代Flash,眾多的開(kāi)發(fā)人員也不會(huì)斷然拋棄Flash。
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過(guò)測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。