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