昨天,萬維網(wǎng)聯(lián)盟(W3C)宣布,經(jīng)過將近8年的艱辛努力,HTML5標準規(guī)范終于最終制定完成并已公開發(fā)布。
狹義上,HTML5是HTML的第五個版本。HTML的全稱是超文本標記語言(HyperText Markup Language),由萬維網(wǎng)的發(fā)明者蒂姆·伯納斯·李設計,是為創(chuàng)建網(wǎng)頁而設計的一種標記語言。HTML利用標簽來描述內容的語義,使計算機能夠通過識別標簽來正確處理內容。
廣義上,HTML5是HTML5、CSS3、Javascript 2.0的統(tǒng)稱,因為對于現(xiàn)在的互聯(lián)網(wǎng)開發(fā)而言,這三者是密不可分的。HTML用于描述內容,CSS用于定義樣式,Javascript用于實現(xiàn)功能。
HTML是互聯(lián)網(wǎng)的基石,目前互聯(lián)網(wǎng)上所有的網(wǎng)頁都是用HTML寫成的。但是HTML標準的演化速度卻遠遠跟不上互聯(lián)網(wǎng)的發(fā)展。事實上,上一個HTML標準HTML 4.01發(fā)布于1999年12月24日,已經(jīng)嚴重阻礙了互聯(lián)網(wǎng)的發(fā)展。
2004年,由Firefox、Opera、Apple、Google四大瀏覽器廠商組成的網(wǎng)頁超文本技術工作小組(Web Hypertext Application Technology Working Group),即WHATWG,宣布制定下一代HTML標準,即HTML5。而當時的萬維網(wǎng)聯(lián)盟(W3C)正在發(fā)展在XML和HTML基礎上設計的XHTML。
于是,W3C和瀏覽器廠商的第一次大戰(zhàn)開始。互聯(lián)網(wǎng)的未來究竟是由標準組織W3C決定還是由瀏覽器廠商決定?這場大戰(zhàn)的決定性因素在于開發(fā)者們站在哪一邊。結果很明顯,開發(fā)者們當然會站在瀏覽器那邊,畢竟瀏覽器是普通用戶接觸互聯(lián)網(wǎng)的唯一途徑。W3C于2007年接納了WHATWG的HTML5草案,并成立了新的HTML工作團隊。
然而,在2012年,W3C和WHATWG再度分道揚鑣。而兩者的分歧在于WHATWG 集中于演進“living”標準,而 W3C 堅持使用傳統(tǒng)的數(shù)字編號系統(tǒng)定義靜態(tài)的“snapshots”。
WHATWG希望構建互聯(lián)網(wǎng)的最后一個標準,即一個隨著互聯(lián)網(wǎng)發(fā)展不斷更新的HTML5標準。他們認為W3C的HTML5標準一旦制定完成,即便出現(xiàn)錯誤也無法修正。而且他們認為W3C的標準制定模式太過復雜,每一代標準的制定時間過長,不符合互聯(lián)網(wǎng)的發(fā)展速度。
所以,HTML5現(xiàn)在有兩個標準,一個由W3C制定,一個由WHATWG制定。這會導致W3C和瀏覽器廠商的第二次大戰(zhàn)嗎?
當然不會,對于瀏覽器廠商來說,贏得瀏覽器之戰(zhàn)比HTML5標準更重要。自從Google的Chrome重新掀起瀏覽器間的大戰(zhàn)之后,每一家瀏覽器都在根據(jù)自己的情況支持HTML5標準,每一家瀏覽器的廣告都在吹噓自己對HTML5標準的支持。
所以,HTML5的標準已經(jīng)成為了既成事實,W3C的HTML5標準只是對這個既成事實的官方認證而已。
那么,既然有了HTML5的官方標準,瀏覽器大戰(zhàn)總該消停了吧。事實上,這場大戰(zhàn)依然在延續(xù),而開發(fā)者們依然需要為各大瀏覽器適配網(wǎng)頁。
舉例來說,HTML5標準設計了<video>標簽,使得瀏覽器可以不借助Flash直接播放視頻文件。但是,HTML5標準卻沒有規(guī)定瀏覽器支持的視頻文件格式。現(xiàn)在,F(xiàn)irefox主推Ogg,Chrome主推WebM,Safari主推H.264。也就是說,開發(fā)者如果要使用<video>標簽,需要準備多種格式的視頻文件。好消息是現(xiàn)在似乎H.264占據(jù)了上風。
一次編寫,到處運行(Write once, Run anywhere)是每一個程序員的夢想。當年的Java沒有做到,原本程序員們指望Web標準能夠做到。然而事實上是,只要瀏覽器大戰(zhàn)沒有消停,HTML5也做不到。