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