重要提示:以下的文章是我個人的觀點,不是為了表現自己或為我的老闆而寫。
雖然現在我認為web標準值得關注,但在我了解有關web標準的主題之前,對於web標準我毫不關心,也沒有意識到我下面要討論的這些問題的存在。而這些問題正是每個人都應該關心web標準、以及他們在高科技產品和服務中扮演的角色的真正原因。
一.W3C的集會
2004年6月1日和2日,我在(美國)聖荷西市中心的Adobe團體總部參加了W3C的一個集會。 (坐在我邊上的是Donna,一位新加入adobe團體的朋友,她覺得很驚奇,為什麼參加W3C集會的多是女士。好問題,她僅從表面上看屋子裡的都是女士。)如果你有時間花幾分鐘時間閱讀集會說明,你會發現Tantek Celik和Hakon Lie都在這裡,同樣,有來自Sun、Microsoft、IBM、Adobe、Nokia、Sony、OpenWave大公司的代表,還有許多獨立顧問和其他公司參加。
伴隨許多有趣的演示,在會議期間討論更多的是web標準的現狀以及如何發展。討論的焦點更多是如何在下一代的web應用軟體上使用web標準。我非常渴望站起來陳述我的兩個觀點,但是我克制了自己。在會議休息間隙,我和Dean Jackson以及Jon Ferraiolo說了我的觀點,他們非常贊同並建議替我去把麥克風搶過來,我阻止了他們。也許我害怕人們從我的RTFM rant認識我,天知道?這時候,我想我應該做的只是坐著和聆聽。
二.一些背景狀況
在我們開始正文之前,允許我先回憶一下。
上個月,我曾寫信給一個團體,問:是否值得努力設立一個"web標準推廣日"。這一天盡可能多的blog的網站同時關閉以加強效果,同時在首頁上放置相同的一頁來解釋web標準真正的目標。並說明一些事情:微軟不願意修改它的IE以建立統一的基準平台,那樣的話開發者可以建立輕量級的程式碼就工作在IE、Safari, Mozilla, Firefox 以及Opera等多個瀏覽器之間。 ---這樣做至少引起人們對首頁內容的注意。
這個建議仍未確定,可能發生可能不會發生,我們需要看看有多少人有興趣這樣做。拋開這件事不說。其實已經有許多關於web標準益處的好的文章和相關的討論。如果你沒有看過,以下是一些快速連結清單:
The Business Benefits of Web Standards 本站已經翻譯
About Web Standards
Web Standards ROI
Web Standards for Business
An Interview With Mike Davidson of ESPN
Eric Meyer Interview on Web Standards
The Way Forward with Web Standards
Developing With Web Standards
Embracing Best Practice
當然,Zeldman的《Designing with Web Standards》是關於這個主題最好的書籍,非常易於理解地說明了web標準應用和技術要點。
所有的文章都討論web標準的益處:簡化程式碼、加速開發、壓縮檔案尺寸、提高下載速度、更好的易用性、獲得更多用戶、更易於維護、多平台相容。而這些益處僅僅停留在技術層面,也有一些ROI的討論。
以上都是關於web標準正確的、非常重要的觀點,我假設你之前已經都聽過、了解。
三.摘要
出於本文討論的緣故,我希望你暫時忘記上面文章提到的所有技術益處;忘記你的內容可以在不同瀏覽器、操作系統或者電腦、和移動設備之間的兼容和輕便協同的夢想;忘記高科技巨頭100%支援標準(而不是90%支援)後,開發者採用標準可以節省多少的時間和金錢。那些都是透過標準可以達到的最完美的目標,但它們並不是web標準對世界真的很重要的真正原因。
一般而言,標準化意味著對企業的應用壓力。他們要改變行為習慣,不只是使股東得益,也要使所有人得益。
而最終,標準最重要的目的很少能透過程式碼、ROI或日復一日的爭論而實現。當你開始認真考慮,你發現那些在商業中不斷創新和互相競爭的公司,例如:Microsoft、Sun、Adobe和IBM,本質上它們需要在自由的市場中生存。如果這些公司認為他們遵循標準並不重要,尤其是這個標準只是一個在他們勢力範圍內的非官方組織制定發展的,他們會遵循嗎?期望這些公司改變他們的本質,就如同期望肉食動物在飢餓時不要捕食一樣不切實際。
事實上,你也可以很容易地找到一些拒絕採用標準而且也非常成功的公司例子,特別是當你站在公司放慢創新速度的角度來考慮時(許多時候暗指來自微軟的觀點)。沒有一個生活和工作在自由經濟體系的人會不這麼想。
標準對我們所有人來說都是重要的真正理由是:預期它能創造一個平衡各方利益的、能普遍接受的行為基準(level of behavior),不論你喜歡或不喜歡。特別是那些正在工作,卻遠離標準的、聰明的工程師。 (儘管這些被命名為「標準」的規範已經建立了10年)。
四.微軟和標準
你可能會問90年代末期和2000年早期微軟在想什麼?為什麼它表面上保證要開始走標準之路,而事實上可能只遵循了80%到90%?這問題很簡單。微軟在IE4到IE6瀏覽器採用web標準只不過是一種市場手段。那時候,IE貫徹標準意味著超過競爭對手Netscape的Navigator瀏覽器。從表面上看,我們覺得微軟的做法是正確的,事實上,微軟只是被商業利益的本質(corporate DNA)所驅動:web標準意味著創新。
一旦微軟得到了它想要的,它就無所顧忌,繼續變本加厲,甚至越走越遠。例如現在微軟現在開始在新作業系統Longhorn上開發新的私有技術XAML。正如一些人指出的,微軟又開始分裂市場,就像1995 年那樣。這沒什麼好驚奇的,微軟的行為源自於其商業利益的本質,它過去和今天的行為都合乎邏輯。更重要的是,除非有來自外界的強大壓力,否則它不會改變。
五.來自Asimov的一課
這可能是個不恰當的比喻,但我還是堅持引用它。這個比喻來自Isaac Asimov(阿西莫夫)的科幻作品《基地三步曲》(Foundation Trilogy)。在第一本書裡描繪了在宇宙中有一顆獨立的星球,叫做基地,成為整個銀河帝國科技的唯一來源。起初一切事情都很美好,直到有一天,銀河帝國妄圖控制整個基地。所以當銀河帝國派出太空船攻擊小星球的時候,銀河帝國所有的機器、用具和電腦系統在同一時間都失靈了。基地依靠唯一的科技勝利了,並強迫銀河帝國允許其獨立存在。
在書中,銀河帝國邪惡而腐敗,在航向上使宇宙再次走向黑暗時代。我們不得不擔心類似的情況在現實中發生。我們必須清楚的考慮到一個像微軟這樣的公司很可能有類似「基地」的能力。
在現代網路中,工商界已經過度依賴微軟的技術---至少包括在這段期間我們的常用作業系統、主要的內容傳輸設備類似HTML表現引擎(不僅限於IE瀏覽器,還有能表現web內容的windows的應用程式)。所有人都應該去看看Google的時代熱點頁面的統計數據。
有一個很及時的觀點就是:少數人的行動會對多數人產生意義深刻的影響。在那樣的環境中,佔多數的人們為了保護自己必須建立一種互相制約的平衡機制,以防止少數人的錯誤、貪婪和權利買賣。如果沒有這個平衡機制,少數人就會濫用他們的權利,忽視多數人的需求和犧牲多數人的利益,而多數人也不必為此驚訝。
我們有自己的限制平衡機制,那就是W3C提供給世界的web標準規格。然而,如果這個規範不被100%的遵守就毫無意義,90%遵守是不夠的,9 9%遵守也是不夠的。 (就像Hakon在W3c會議上評論的,規範已經制定,我們現在就是等待微軟去完全執行它。)
尊敬的微軟公司已經為工商界敲響了一個警鐘:微軟office的安全措施令人可憐又可怕。其中存在的安全漏洞,使得一個十六、七歲的駭客用極其簡單的病毒程式碼就可以入侵整個系統並使系統癱瘓。人們希望工商界能夠給微軟公司更大的壓力,迫使其完全遵循W3C所製定的標準。
如果我們的商業和政治領袖不對微軟施加壓力,那麼就不要對未來可能的結果產生驚奇。更重要的,如果我們(包括全世界所有的開發者、程式設計師、設計師和內容創作者)不做我們應該的努力去"教育"那些商業和政治領袖,我們就會因為最後的結果而受到責備。
六.實踐步驟
最後,如果web標準真正被重視,成為建立一個平等的競爭環境(level playing field)和平衡各方利益(lowest common denominator)的手段,這就接近我在W3C集會上最想大聲說出來的觀點了。在集會第二天快要結束的時候,有一些提議建議W3C需要勇敢前進。 Dean(W3C研究員)看起來有些猶豫不決。你最好還是自己去看看這個note。
依我的觀點看來,在擔心下一代網路發展問題之前,W3C需要做的是如下幾點,重點放在web應用軟體(applications)方面:
1.合併、整理現行規範
當我瀏覽XHTML或CSS規範,最重要的事情是我希望看到現行標準,不是過去的標準,或是正在製定中的將來的標準。整理標準使之容易被貫徹和遵循,也需要為使用者提供一個獨立的,隨時更新的文檔便於查閱臨界資訊(critical information)。
2.確定那一組規範應該被目前階段web開發所遵循
這裡是W3C部分相關討論,我發起投票提議用兩個列表的方法:第一個規範列表說明今天或者明年世界要遵循的規範,列表中只包含當前W3C 已經批准的規範版本,包括XHTML、CSS和DOM;第二個規範清單將包含XHTML、CSS、 SMIL、SVG、 XForms、 ECMAScript和DOM.一旦我們的內容發佈系統能夠100%處理第二個清單中的規範,那麼我們就能討論再下一級將是什麼。到那時候,我相信許多關於web應用軟體的規格都會被納入討論。
3.建立兩套文檔
我們需要一套規範專門針對用戶代理(類似微軟公司)的開發者和創作者;也需要一套規格專門針對設計師和web開發者。現在的規格混雜在一起,不方便各類使用者應用標準時查閱相應的知識。
4.重新調整現在的W3C首頁的重點
現在W3C主頁的只有少量資訊說明為什麼使用和關注web標準是重要的。頁面上填滿了規範和鏈接,這是典型的"官僚主義"設計,違反了最重要的設計原則:如果頁面上所有信息都重要,那麼所有信息也都不重要。是時候改變了,W3C主頁的重點應該是如何方便人們瀏覽規範,而不是方便官僚機構如何運作。
七.這種情況下你能做什麼
給web標準更多機會,限制微軟的力量。這看起來不是一個普通人能做的,或許對或許不對。他們說民主政治就是每一張選票,如果一張選票的力量微不足道,那麼我想集合每一張支持web標準的票就夠了,也許"web標準日"是需要的。如果有足夠的聲音大聲說web標準的重要性並抗議目前的情況,那麼就可能有足夠對的商業和政治領袖來關注,給微軟我們需要的壓力。
我已經這樣做了。
我也很高興地看到John Allsopp在他的Web Essentials 04網站上發起的活動已經引起足夠多人的興趣。這個在美國和歐洲的活動承諾將大大推動web標準的前進。
真相大白了?我的一個主張就是微軟不應該再對IE做任何事,除非他們迫於壓力改變做法。老實說,如果所有開發者都用同一個平台,同一套APIs,同一套標準,世界將變得簡單多。
真的就是這樣,事實上,許多公司已經在這樣做了(給web標準更多機會,限制微軟的力量),只是擔心windows和IE的使用,就像我們所有人都知道的。我自己也在過去的幾家公司堅持這樣做,只是出於道德和責任。
誰說唯一的規範不該由微軟來制定?這樣可能使事情變得千倍的容易(例如學習HTML、CSS和Javascript程式碼),可能使我們只要工作在一個瀏覽器上,一個作業系統或一個平台上。誰說允許微軟制定那樣的規範有錯?誰說微軟把XAML或其它擴充放進.net的CSS和HTML是錯的?我們以微軟規範寫所有web內容和程式碼有什麼問題?為什麼不能將我們所有的技術依賴一家公司?
也許Bill Gates真的就是Asimov宇宙基地的Hari Seldon(哈里謝頓:試圖透過在銀河角落建立隱藏的基地,來縮短隨後的黑暗時代)。也許這所有都是一個計劃來幫助世界度過隨後的黑暗時代,只是我們都不知道?
不用關心web標準?
小心,你可能得到的是你不想要的。