后互聯(lián)網(wǎng)時代,瀏覽器的未來
通過本文,希望帶來最新的視野,和大家一起探討瀏覽器、Html5、Web的未來。
這些日子,F(xiàn)irefox總提示升級到5.0,浪費時間不說,一升級完插件這個不能用那個不能。你8.0都Beta2了,來來回回反反復(fù)復(fù)優(yōu)化那點內(nèi)存啦、啟動和腳本執(zhí)行速度這些細節(jié),要是新版本能涌現(xiàn)一絲新思維也好,不然大家很抗拒這樣被折騰。如此做下去就算升級到800.0又如何?能否接過當(dāng)今操作系統(tǒng)擔(dān)當(dāng)?shù)闹厝文兀课艺J為還不行,而且路還很遙遠。未來的瀏覽器不是這么搞的。
當(dāng)今瀏覽器發(fā)展的局限
現(xiàn)在的瀏覽器是怎么個做出來的呢?目前所有產(chǎn)品級的瀏覽器,雖然外觀、性能各異,據(jù)說都是用C++寫成,都由如HTML解析、CSS解析、JavaScript引擎、網(wǎng)絡(luò)通信、數(shù)據(jù)管理、頁面呈現(xiàn),等等許多模塊高度集成的復(fù)雜軟件。其復(fù)雜度我認為堪比操作系統(tǒng),代碼能看得懂都很難,更別說參與瀏覽器內(nèi)核開發(fā)了,那絕對是高手。瀏覽器的開發(fā)也基本上被所屬公司一手包辦,
題外話,中國做瀏覽器的廠商只會做殼,以前只做IE的殼,現(xiàn)在進步了一點兒,也做Chrome的。中國足球雖然水平可憐,至少每次都在嘗試,而中國的廠商,連做自主產(chǎn)權(quán)的瀏覽器內(nèi)核的雄心都沒有,希望中國未來能發(fā)展出自己的瀏覽器內(nèi)核。
當(dāng)然,現(xiàn)在的瀏覽器不像早期是鐵板一塊,基本都可以進行擴展和定制。最典型的是Firefox的overlay式擴展,Chrome擴展也不錯。通過擴展,可以輔助閱讀,有翻譯文字,過濾廣告,調(diào)試頁面,標(biāo)簽管理,批量下載,主題更換等等,形形色色,包羅萬象,就不具體舉例了。
看上去不錯吧,可是如果以為擴展無所不能的話,那就大錯特錯了。由于受到瀏覽器擴展機制支持擴展的靈活性和力度所限,更強大給力的擴展無法為我們所用。
很多人在想,現(xiàn)在這樣不是挺好嗎?那是因為瀏覽器一般還只被看作呈現(xiàn)Html頁面的軟件,擴展只要圍繞著輔助和增強頁瀏覽功能就可以了。絕大多數(shù)人這么想,主流瀏覽器廠商也這么想。
即使現(xiàn)在的插件可以滿足你的功能需要,也有一些不可忽視的問題,主要有:
一、擴展開發(fā)和使用的兼容性。
(瀏覽器的戰(zhàn)爭)
目前支持擴展的瀏覽器IE/Firefox/Chrome,擴展機制有天壤之別,功能相同的擴展,必須多次開發(fā),而且實現(xiàn)邏輯的代碼沒有多少可以復(fù)用的。由于瀏覽器多極化格局將長期持續(xù),對開發(fā)者和用戶這都不件好事。在Firefox和IE上,還有比較嚴重的版本兼容性問題。對比一下,無論是在Windows還是Linux上,無論用C/C++/Java/.NET,都有辦法讓程序做很少的修改就能在另一個平臺上運行。這個問題說明現(xiàn)在的瀏覽器擴展,還都是些小程序,十足的配角。雖然拍戲不能沒有配角,這些做導(dǎo)演的瀏覽器廠商,本來競爭得你死我活,壓根兒沒想過要坐下來談建立一個統(tǒng)一的擴展標(biāo)準(zhǔn),以及怎么互相兼容。
二、擴展的安全性,如對用戶隱私的保護,從機制上杜絕惡意擴展。
舉例來說,許多擴展要求能夠訪問網(wǎng)絡(luò),Chrome是安全機制做得比較好的,采用了沙箱機制。一個擴展安裝后會提示你它需要哪些權(quán)限,讓用戶確認。然而控制的粒度太粗了。像淘寶推出過一個叫折扣實時查詢的擴展,會要求可以訪問瀏覽歷史記錄,這個就相當(dāng)困擾,沒法限制它只訪問taobao的瀏覽歷史。
如果一個擴展中有惡意代碼,偷偷把你的瀏覽歷史,甚至賬戶密碼發(fā)送到某個站點,現(xiàn)在的瀏覽器表示“我管不著”。而Firefox沒有對安全上做什么控制,至于IE的BHO擴展機制,很久前就是木馬和流氓軟件的溫床。盡管Firefox和Chrome都有一套擴展審核機制,然而這樣手工鑒別,既浪費開發(fā)方和官方的時間,又容易造成漏網(wǎng)之魚。
三、擴展之間無法相互合作,只能各自為戰(zhàn),不少擴展間還有功能沖突的問題。
比如Firefox上有Image Download、PDF Download、Video Download這樣不同類別的下載擴展,其實完全可以共用相同的批量下載功能。在頁面里,我們也沒法通過html或js訪問擴展的功能。擴展安裝多了,還要小心沖突。比如火狐魔鏡的鼠標(biāo)手勢和標(biāo)簽管理功能,同多個插件有沖突。
按黨的哲學(xué),要從思想層次上認識這些問題。如今的IE/Firefox/Chrome/Safari/Opera,都還是以“瀏覽”器的思維,而不是以平臺的思維做瀏覽器。隨著設(shè)備、操作系統(tǒng)、應(yīng)用開發(fā)平臺的多樣化趨勢的發(fā)展,大家對一種能放之四海皆準(zhǔn)的應(yīng)用開發(fā)及運行平臺,望眼欲穿。本來Html5是不二的解決方案(Html5會成為移動應(yīng)用的天敵嗎),可惜由于瀏覽器的局限,目前還是一廂情愿的美麗神話。
盡管谷歌早就推出了ChromeOS,Mozilla也有類似計劃(Mozilla宣布研發(fā)移動操作系統(tǒng) 基于網(wǎng)頁運行),沒有革命性的理念,想實現(xiàn)一個真正的Web應(yīng)用平臺只能是水中撈月,緣木求魚。欲開發(fā)大型或關(guān)鍵應(yīng)用,如游戲和在線支付應(yīng)用時,可望不可及。
未來需要什么樣的瀏覽器
如果要把瀏覽器打造成一個平臺一般“超級瀏覽器”,擴展和Web應(yīng)用都亟待更給力的支持。要把擴展打造成7Zip、Macfee、搜狗輸入法一般強勢的工具軟件,要使Web應(yīng)用成為PhotoShop、暴風(fēng)影音、Visual Studio一般犀利的專業(yè)軟件。
我們要讓擴展可以操作攝像頭等硬件設(shè)備,可以訪問操作系統(tǒng)API,充分運用GPU加速等一切手段,提高Web應(yīng)用的體驗和安全性。
我們要為擴展機制提供完善的安全性控制。瀏覽器要能對擴展的敏感操作進行甄別,對瀏覽歷史、用戶數(shù)據(jù)、網(wǎng)絡(luò)訪問的控制規(guī)則,都要精確到域名甚至頁面級。Windows和Linux做不到的,未來瀏覽器也要做到,使我們可以放心地進行在線支付,輕松地管理各種賬戶。
我們要為擴展提供統(tǒng)一、向后兼容的開發(fā)模式,既能輕松上手,又能為高級開發(fā)者提供充分施展的空間。要讓瀏覽器與擴展如大腦和器官一般協(xié)調(diào)合作,成為一個有血有肉的人。
我們要讓擴展有能力擴展甚至替換瀏覽器的所有模塊,重新定義任何功能實現(xiàn)。我們可以定義新的CSS規(guī)則,新的標(biāo)簽,新的呈現(xiàn)方式,新的網(wǎng)絡(luò)協(xié)議,新的Web開發(fā)語言引擎,這些所有的一切都可以做到。
不管是Flex、Silverlight還是JavaFX,它們再也無需浪費口舌爭論孰優(yōu)孰劣,大家可以利用標(biāo)簽和呈現(xiàn)的擴展,在同一水平線上展開競爭,還要證明它們有些事可以比Html5做得更好。
無論是靜態(tài)語言如Java/C++/.Net,還是動態(tài)語言如JavaScript/Python/Lua,都有機會憑自己的優(yōu)勢在Web應(yīng)用開發(fā)上大放異彩。擺脫了操作系統(tǒng)的束縛,開發(fā)者將呼吸到自由的空氣,無限的選擇權(quán)將最大程度上解放開發(fā)者的生產(chǎn)力!偏靈活性要求的應(yīng)用人們喜歡動態(tài)語言,高性能要求的應(yīng)用靜態(tài)語言唱主角。有利于編程語言之間借鑒彼此的思想,吸收彼此的先進特性。
相信屆時,那些充斥著論壇博客、徘徊在初學(xué)者心頭的陰霾-無謂的語言之爭,便會少得多了吧。編程語言會獲得更快發(fā)展,優(yōu)勝劣汰,甚至有可能催生新一代語言的革命。
十年過去了,互聯(lián)網(wǎng)時代依舊在洶涌奔流,前方隱隱有一座山脈在擋住去路。一個個要求變革的聲音逐漸匯集起來,終將成為時代的主流,帶我們開辟峽谷,沖出群山,奔向我們憧憬已久的美好未來。
或許有人說,醒醒吧,別白日作夢了。好吧,我承認這是一個白日夢,是一些人做了很多年的白日夢。這些人中的佼佼者,已經(jīng)開始行動了。來了解下他們搞的一個現(xiàn)在進行時的有趣項目吧,現(xiàn)在我可是很清醒的。
神秘的C3
這是微軟Redmond研究院的一個研究項目。如果說微軟中國研究院已經(jīng)是匯集中國最頂尖的研究人才的話,那Redmond研究院就應(yīng)該是全世界的頂尖人才的樂園,里面的人物不一定為我們熟知,可他們都是大師級人物,可能我們許多使用產(chǎn)品的技術(shù)正是他們創(chuàng)造的,如Windows Azure、Kinect等等。
大家有興趣可以到Redmond研究院網(wǎng)站去看看,感受大師們的思想,把握未來的技術(shù)走向。這里是C3的鏈接。
C3是什么意思?我也沒查到。叫C3還是C4不重要,反正什么都是個臨時代號,重要的是它的概念:An Experimental, Extensible, Reconfigurable Platform for HTML-based Applications(一個可擴展、可重構(gòu)的基于HTML應(yīng)用程序的試驗平臺)。
C3正是前面提到多次的未來超級瀏覽器的雛形,它也認為自己是平臺而非瀏覽器。C3是完全基于面向?qū)ο笤O(shè)計思想,瀏覽器的模塊之間,通過類型安全的接口實現(xiàn)了松耦合,每個模塊都可以被擴展、被替換。C3完全用當(dāng)前最高效的靜態(tài)語言-C#開發(fā),充分利用了.NET的安全機制和類庫。
不僅如此,它的擴展也將用托管語言開發(fā)。有些經(jīng)驗的朋友馬上會明白,瀏覽器將是一個宿主,寄宿了許多擴展程序,每個擴展都運行在一個獨立的AppDomain中。 讓擴展更開發(fā)更快,運行更安全、更高效,不至像Chrome出現(xiàn)同時運行著N個進程的情況,擴展扮演角色更是身價倍增。
再想想吧,當(dāng)Facebook不再需要成千上萬的服務(wù)器支持Fbml應(yīng)用的解析,只要發(fā)布一個擴展。我們甚至可以把Asp.Net的控件、Web Form、Razor模板,完全放在客戶端解析,這將是何等的革命性突破?
這樣的平臺,能不被應(yīng)用開發(fā)者推崇嗎?有木有潛力,統(tǒng)一各種智能終端上的開發(fā)和界面體驗?zāi)兀?/strong>
除了前面提到的許多想法似乎都可以在C3中得到實現(xiàn)外,更令我們鼓舞的是,.NET將大大降低瀏覽器的開發(fā)門檻,打破少數(shù)人的壟斷。而且我們可以先入手相對容易的擴展的開發(fā),再過渡到內(nèi)核開發(fā)。
十年磨一劍,霜刃未曾試。今日把示君,誰有不平事?長期以來,很多C++程序員總是瞧不起.NET,把.NET程序員看作低人一等。面對新一代瀏覽器平臺的需求,C++已經(jīng)是心有余而力不足,經(jīng)過長期的臥薪嘗膽,我相信.NET實現(xiàn)出生的使命,為自己正名的那一天,已經(jīng)為時不遠了。
這也是微軟為自己正名的機會,更是廣大.Net程序員正名的機會。你,準(zhǔn)備好了嗎?
原文地址:http://www.cnblogs.com/XmNotes/archive/2011/07/24/2115645.html
【編輯推薦】