微軟昨天發(fā)布了IE8的Beta 1。老劉在得到消息后馬上就下載安裝了。但我并沒有寫什么文章,原因有二。其一,關(guān)于IE8的文章已經(jīng)很多了,從數(shù)天前就開始有人“偷窺”了;其二,自己還沒用過,沒啥可說的。
今天早上看到圖靈論壇劉江老師發(fā)起了關(guān)于IE8的討論,還向我等透露了他和相關(guān)人士進(jìn)行探討時(shí)的聊天記錄。于是,我也想說一些我的看法。
IE8最大的特點(diǎn)就是,即將完整地支持Web標(biāo)準(zhǔn),號(hào)稱還通過了Acid2、Acid3什么的測(cè)試。老劉并不關(guān)心這些,只想知道——我寫的網(wǎng)站和我經(jīng)常要去的網(wǎng)站,用IE8能看不?
安裝IE8后,第一件事就是把自己平時(shí)會(huì)瀏覽的網(wǎng)站通通看一遍,看看有什么不同。結(jié)果是令人失望的——我并不知道我是安裝了一款最新的瀏覽器,還是安裝了一個(gè)已經(jīng)過氣的古董瀏覽器,總而言之,頁(yè)面一塌糊涂。
還好,IE8提供了一個(gè)“Emulate IE7”按鈕。在安裝完后IE8會(huì)導(dǎo)航到微軟的IE8站點(diǎn),上面有一個(gè)圖片箭頭明顯地指出了這個(gè)按鈕的位置。我像看到救命稻草般點(diǎn)了下去。結(jié)果IE8告訴我——你必須關(guān)閉所有的IE窗口并重新打開,才能進(jìn)入IE7兼容模式。天啦,這和“請(qǐng)重啟計(jì)算機(jī)以完成安裝”有什么區(qū)別么。
好了,以上是牢騷。下面是歌頌。
IE8給我的另外一個(gè)感覺就是,快。還有就是穩(wěn)定。在IE7中,如果Tab開多了,反應(yīng)會(huì)比較慢,而且有一些Ajax用得比較兇的網(wǎng)站經(jīng)常會(huì)導(dǎo)致我的系統(tǒng)無法創(chuàng)建新窗口(具體表現(xiàn)是,菜單彈不出,新程序打不開,對(duì)話框也不能彈出——所有這些應(yīng)該都是用CreateWindow建立的吧)。在使用IE8的24個(gè)小時(shí)里,在沒有這種情況。
IE8里還有個(gè)新東東叫“Activities”,跟過去一些流氓軟件提供的“劃詞xx”(如劃詞搜索、劃詞翻譯)類似的功能。但這個(gè)Activities只是對(duì)右鍵菜單的一種擴(kuò)展。其速度還是可以的,因?yàn)?ldquo;劃詞”以后不是立刻執(zhí)行某種操作,而是顯示一個(gè)快捷菜單,由用戶選擇進(jìn)行何種操作。(關(guān)于Activities的開發(fā),園子里的nfa2dfa朋友已經(jīng)在《IE8 Activities嘗鮮》一文里進(jìn)行了介紹[請(qǐng)參見:http://www.cnblogs.com/huazhihao/archive/2008/03/06/1093866.html]。)
再下面是“我見”。
有人提到,說微軟在IE8中全面支持Web標(biāo)準(zhǔn)是“被逼的”。老劉姑且相信這一觀點(diǎn)。那么,是被誰“逼”的呢?肯定不是您的母親或我的母親,也不會(huì)是其他廠商。是“開發(fā)者”。
開發(fā)者為什么會(huì)團(tuán)結(jié)起來逼微軟實(shí)現(xiàn)標(biāo)準(zhǔn)呢?因?yàn)樗麄兲哿耍麄冊(cè)趯懸粋€(gè)網(wǎng)站時(shí)需要考慮太多的瀏覽器了。所以,他們天真地認(rèn)為,只要瀏覽器遵從了標(biāo)準(zhǔn),開發(fā)的時(shí)候就可以“面向標(biāo)準(zhǔn)”而不是“面向?yàn)g覽器”了。然而,IE8的出現(xiàn)沉重地告訴我們——你錯(cuò)了。
IE8非但不能為我們帶來Web開發(fā)大一統(tǒng)的美好未來,恰恰相反,在短期內(nèi),還將加重開發(fā)者的負(fù)擔(dān)——對(duì)不起,又有一種完全不同的瀏覽器出現(xiàn)了。
我想,這也是為什么微軟要在IE8中添加一個(gè)“Emulate IE7”按鈕的原因。然而,這個(gè)按鈕純屬雞肋。因?yàn)榍袚Q到IE7兼容模式(包括再切換回來)都要求重啟瀏覽器,所以,老劉預(yù)言,在IE8正式面市后的很長(zhǎng)一段時(shí)間里,絕大多數(shù)的用戶都將一直啟用著IE7兼容模式,把IE8當(dāng)作“更好的IE7”來用。
當(dāng)然,這只是Beta1,我想微軟一定會(huì)在正式版中將模式切換改為無需重啟的形式。否則,Web標(biāo)準(zhǔn)將形同虛設(shè)。究竟Web標(biāo)準(zhǔn)能不能大力推行,從非標(biāo)準(zhǔn)向標(biāo)準(zhǔn)過渡是否順利,將完全據(jù)取決于按了這個(gè)小小的“Emulate IE7”按鈕后是否需要重啟瀏覽器。
很多人還天真地以為,這是一個(gè)好的開端,只要忍過一段時(shí)間,情況就會(huì)好起來的(你前面不是也說了嗎,“在短期內(nèi)”)。但老劉還得無情地打擊你一下,瀏覽器戰(zhàn)爭(zhēng),才剛剛開始進(jìn)入高潮部分。
以前在提到跨瀏覽器網(wǎng)站開發(fā)時(shí),人們的目光更多地聚集在CSS上。通常認(rèn)為,只要CSS跨瀏覽器了,網(wǎng)站也就跨瀏覽器了。于是,一些精妙的CSS HACK在開發(fā)人員之間廣為流傳。而現(xiàn)在,雖然看起來這些CSS HACK都將失效(其實(shí)不會(huì)失效,反而會(huì)更多),但大家的心理是輕松的,因?yàn)槲覀兊腃SS可以寫得更“優(yōu)雅”了,可以不用考慮跨瀏覽器了(真的不用考慮了嗎?)。
不管CSS這條戰(zhàn)線到目前為止是趨于和平熄火,還是愈打愈烈,我們都可以松一口氣了——熄火了,我們可以更輕松地編寫CSS,接著打,不怕,我們已經(jīng)有很成熟的CSS HACK了,再做少量改動(dòng)就是了。
但最為要命的是——從劉江老師透露給圖靈俱樂部的聊天記錄來看——新的戰(zhàn)場(chǎng)即將在JS領(lǐng)域展開。Mozilla和Adobe主導(dǎo)著JS2,而JS2基于ECMAScript4,這個(gè)標(biāo)準(zhǔn)使得JS不可避免地進(jìn)入“重量級(jí)”領(lǐng)域。而且,Adobe還妄想將ActionScript中的諸多特性加入JS。(記得前些日子看到報(bào)道,有人反對(duì)微軟的OOXML,原因是微軟向其中加入了太多自己專用的特性,諷刺啊諷刺。)而微軟的一貫作風(fēng)是降低開發(fā)門檻,JS的特征也是門檻低。所以看來微軟在這一戰(zhàn)場(chǎng)不會(huì)輕易妥協(xié),由此可以認(rèn)為,CSS戰(zhàn)火未息,JS戰(zhàn)爭(zhēng)又將打響。
今后還有什么呢?DOM、ActiveX,這些都是敏感區(qū)域,說不好哪天大家又打起來。等到多條戰(zhàn)線全面拉開的時(shí)候,才是Web世界大戰(zhàn)的最高潮。
不過別緊張,讓他們這些廠商去爭(zhēng)好了,我們的日子雖然沒有因?yàn)镮E8變得好過,但也不會(huì)因?yàn)檫@場(chǎng)戰(zhàn)爭(zhēng)而難過。老劉認(rèn)為,今后的Web開發(fā)將會(huì)出現(xiàn)下面這些勢(shì)態(tài)。
首先,Web應(yīng)用向兩極分化。一些低端開發(fā)團(tuán)隊(duì),如個(gè)人或小型工作室、小型公司,可能采取“降級(jí)”策略,也就是屏除當(dāng)今Web2.0大潮中令人炫目但不是很切實(shí)際的特征,才用廣泛支持的HTML、CSS、JS特性,開發(fā)看似簡(jiǎn)單但功能性和實(shí)用性較強(qiáng)的引用。而一些高端開發(fā)團(tuán)隊(duì),如比較成熟的大型互聯(lián)網(wǎng)企業(yè),將出現(xiàn)團(tuán)隊(duì)分化,即有專門的團(tuán)隊(duì)進(jìn)行功能性開發(fā)、另有專門的團(tuán)隊(duì)做諸如跨瀏覽器、性能調(diào)優(yōu)等工作。
其次,整個(gè)互聯(lián)網(wǎng)產(chǎn)業(yè)分工更加細(xì)致。大公司的一些團(tuán)隊(duì),以及很多開源組織會(huì)專注于跨瀏覽器工作,推出更為成熟的跨瀏覽器組件或解決方案。而前面提到的“低端開發(fā)團(tuán)隊(duì)”則可以免費(fèi)或以很低廉的價(jià)格使用這些組件或解決方案。其實(shí)現(xiàn)在很多公司和組織已經(jīng)開始做這件事情了,市場(chǎng)上有不少成熟的跨瀏覽器js庫(kù)。但今后,這一領(lǐng)域?qū)⒏鼮橐邸?


