HATWG的工作效率很高,不久就初見成效。在此期間,W3C的XHTML 2沒有什么實(shí)質(zhì)性的進(jìn)展。特別是,如果從實(shí)現(xiàn)的角度來說,用原地踏步形容似乎也不為過。
結(jié)果,一件有意思的事情發(fā)生了。那是在2006年,蒂姆·伯納斯-李寫了一篇博客,說:“你們知道嗎?我們錯(cuò)了。我們錯(cuò)在企圖一夜之間就讓W(xué)eb跨入XML時(shí)代,我們的想法太不切實(shí)際了,是的,也許我們應(yīng)該重新組建HTML工作組了。”善哉斯言,后來的故事情節(jié)果真就是這樣發(fā)展的。W3C在2007年組建了HTML5工作組。這個(gè)工作組面臨的第一個(gè)問題,毫無疑問就是“我們是從頭開始做起呢,還是在2004年成立的那個(gè)叫WHATWG的工作組既有成果的基礎(chǔ)上開始工作呢?”答案是顯而易見的,他們當(dāng)然希望從已經(jīng)取得的成果著手,以之為基礎(chǔ)展開工作。于是他們又投了一次票,同意“在WHATWG工作成果的基礎(chǔ)上繼續(xù)開展工作”。好了,這下他們要跟WHATWG并肩戰(zhàn)斗了。
第二個(gè)問題就是如何理順兩個(gè)工作組之間的關(guān)系。W3C這個(gè)工作組的編輯應(yīng)該由誰擔(dān)任?是不是還讓W(xué)HATWG的編輯,也就是現(xiàn)在Google的伊恩·希克森來兼任?于是他們又投了一次票,贊成“讓伊恩·希克森擔(dān)任W3C HTML5規(guī)范的編輯,同時(shí)兼任WHATWG的編輯,更有助于新工作組開展工作。”
這就是他們投票的結(jié)果,也就是我們今天看到的局面:一種格式,兩個(gè)版本。WHATWG的網(wǎng)站上有這個(gè)規(guī)范,而W3C的站點(diǎn)上同樣也有一份。
如果你不了解內(nèi)情,很可能會(huì)產(chǎn)生這樣的疑問:“哪個(gè)版本才是真正的規(guī)范?”當(dāng)然,這兩個(gè)版本內(nèi)容是一樣的……基本上相同。實(shí)際上,這兩個(gè)版本將來還會(huì)分道揚(yáng)鑣。現(xiàn)在已經(jīng)有了分道揚(yáng)鑣的跡象了。我的意思是說,W3C最終要制定一個(gè)具體的規(guī)范,這個(gè)規(guī)范會(huì)成為一個(gè)工作草案,定格在某個(gè)歷史時(shí)刻。
而WHATWG呢,他們還在不斷地迭代。即使目前我們說的HTML5,也不能完全涵蓋WHATWG正在從事的工作。最準(zhǔn)確的理解是他們正在開發(fā)一項(xiàng)簡(jiǎn)單的HTML或Web技術(shù),因?yàn)檫@才是他們工作的核心目標(biāo)。然而,同時(shí)存在兩個(gè)這樣的工作組,這兩個(gè)工作組同時(shí)開發(fā)一個(gè)基本相同的規(guī)范,這無論如何也容易讓人產(chǎn)生誤解。誤解就可能造成麻煩。
其實(shí)這兩個(gè)工作組背后各自有各自的流程,因?yàn)樗鼈兊睦砟钔耆煌T赪HATWG,可以說是一種獨(dú)裁的工作機(jī)制。我剛才說了,伊恩·希克森是編輯。他會(huì)聽取各方意見,在所有成員各抒己見,充分陳述自己的觀點(diǎn)之后,他批準(zhǔn)自己認(rèn)為正確的意見。
W3C則截然相反,可以說是一種民主的工作機(jī)制。所有成員都可以發(fā)表意見,而且每個(gè)人都有投票表決的權(quán)利。這個(gè)流程的關(guān)鍵在于投票表決。從表面上看,WHATWG的工作機(jī)制讓人不好接受。豈止是不好接受,簡(jiǎn)直是歷史的倒退。相信誰都會(huì)認(rèn)為“運(yùn)作任何項(xiàng)目都不能采取這種方式!”
W3C的工作機(jī)制聽起來讓人很舒服。至少體現(xiàn)了人人平等嘛。但在實(shí)踐中,WHATWG的工作機(jī)制運(yùn)行得非常非常好。我認(rèn)為之所以會(huì)這樣,主要?dú)w功于伊恩·希克森。他的的確確是一個(gè)非常稱職的編輯。他在聽取各方意見時(shí),始終可以做到絲毫不帶個(gè)人感情色彩。
從原理上講,W3C的工作機(jī)制很公平,而實(shí)際上卻非常容易在某些流程或環(huán)節(jié)上卡殼,造成工作停滯不前,一件事情要達(dá)成決議往往需要花費(fèi)很長(zhǎng)時(shí)間。那到底哪種工作機(jī)制最好呢?我認(rèn)為,最好的工作機(jī)制是將二者結(jié)合起來。而事實(shí)也是兩個(gè)規(guī)范制定主體在共同制定一份相同的規(guī)范,我想,這倒是非常有利于兩種工作機(jī)制相互取長(zhǎng)補(bǔ)短。