DOCTYPE是一個神話!
一個web設(shè)計者掛了一個DOCTYPE標(biāo)簽到他的網(wǎng)頁上,說,“這是標(biāo)準(zhǔn)的HTML”,這是一種很傲慢的舉止。但他們不會知道。他們要說的只不過是這個網(wǎng)頁應(yīng)該是一個標(biāo)準(zhǔn)的HTML而已。他們所真正知道的只不過是他們已經(jīng)在IE、Firefox,也許還有Opera和Safari上測試過,看起來正常而已;蛘呤牵麄儚囊槐緯习袲OCTYPE標(biāo)簽拷出來,卻并不知道這意味著什么。
在真實世界里,人們不是完美的,你不可能只用一個規(guī)范就建立一個標(biāo)準(zhǔn)——你必須有一個超級嚴(yán)格的參考實現(xiàn),每個人都只對照這個參考實現(xiàn)去測試。要不然,你會得到17份不同的“標(biāo)準(zhǔn)”,或者一份也沒有。
這就是 Jon Postel 在1981年引起的問題所在,那年他造了一個新詞,健壯性原則:“嚴(yán)于律己,寬以待人”。他說要讓協(xié)議牢靠地工作的最佳方法是,人人都非常非常小心的遵守規(guī)范,但同時對別人,如果他沒有嚴(yán)格遵守規(guī)范,要極度寬容,只要你能體會出他的意思就行。
所以,從技術(shù)上說,要顯示一段小字段落的方法是<p><small>, 但是很多人寫成<small><p>,這從技術(shù)上來說是不對的,至于為什么,大多數(shù)web開發(fā)者也都不理解,而web瀏覽器原諒了這種寫法,把文字變小,因為這顯然是他們想要的。
現(xiàn)在,到處是充滿了這些錯誤的網(wǎng)頁,因為所有的老瀏覽器開發(fā)者們開發(fā)出了超級開明,友好,通融的瀏覽器,它們愛你,不在乎你是否犯了錯誤。這樣就出現(xiàn)了大量的錯誤。Postel的“健壯性”原則并非真正可行。這個問題多年來都沒人注意到。2001年,Marshall Rose最后 寫道:
跟直覺恰恰相反,Postel的健壯性原則(“嚴(yán)于律己,寬以待人”)常常導(dǎo)致部署出現(xiàn)問題。為什么?當(dāng)一個新的實現(xiàn)最初發(fā)布時,它可能會碰到一些現(xiàn)有實現(xiàn)的一個子集。如果那些實現(xiàn)遵從健壯性原則,那么新實現(xiàn)中的錯誤很可能不會被察覺。新的實現(xiàn)接著會碰到一些流傳不是很廣泛的部署。好些新的實現(xiàn)重復(fù)著這個過程。漸漸地,不是那么正確的實現(xiàn)跑進(jìn)那些比最初的實現(xiàn)要少些寬容的實現(xiàn)里。讀者該知道接下來會發(fā)生些什么。
Jon Postel 理應(yīng)為他對互聯(lián)網(wǎng)的發(fā)明所做的巨大貢獻(xiàn)而驕傲,實在是沒有理由為他那非著名的健壯性原則而責(zé)怪他。1981年還是史前時期。要是你能告訴Postel,會有9千萬未受訓(xùn)的人(而不是工程師),去創(chuàng)建網(wǎng)站,他們會干很多亂七八糟的事情,而某種被誤導(dǎo)的慈善,使得早期的瀏覽器開發(fā)者接受了這些錯誤,總會顯示這些網(wǎng)頁,他就會明白,這是個錯誤的原則。而實際上,web標(biāo)準(zhǔn)理想主義者是對的。創(chuàng)建web的正確的方法,本應(yīng)該是有一個非常非常嚴(yán)格的標(biāo)準(zhǔn),每一個瀏覽器都應(yīng)該明確指出你所有的錯誤,web開發(fā)者如果不知道如何“嚴(yán)謹(jǐn)?shù)靥峤弧,就不要去寫到處出現(xiàn)的網(wǎng)頁,除非知道怎么做。
但話說回來,如果真是那樣,web就不會像它現(xiàn)在這樣起飛。也許,我們還會用著由AT&T運(yùn)營的巨大Lotus Notes網(wǎng)絡(luò)。
該怎樣會怎樣能怎樣。誰會在意。都已經(jīng)這樣了。我們無法改變過去,只能去改變未來。見鬼,即使是未來,我們能改變的也沒多少。
如果你是Internet Explorer 8.0團(tuán)隊里的一名實用主義者,你的腦皮層里應(yīng)該深深地烙有 Raymond Chen的這些話。他寫過一些Windows XP是如何無奈地去模擬老Windows版本里的一些bug行為的文章:
站在消費(fèi)者的角度來看這個問題。你買了些軟件,有X,有Y,還有Z。后來,你升級到Windows XP。你的電腦現(xiàn)在時不時死機(jī)。而軟件Z根本用不了。你會告訴你朋友:“別升級到XP!經(jīng)常死機(jī)。與軟件Z也不兼容!蹦銜フ{(diào)試你的系統(tǒng)以確定是軟件X導(dǎo)致了死機(jī),而軟件Z用不了是因為它用了未公開的window消息嗎?當(dāng)然不會。你會去把XP退貨了(你的X,Y,Z軟件是幾個月前買的,已經(jīng)過了30天退貨期了,你唯一可以退的是XP)。
你也在思考了吧,嗯? 讓我們?yōu)檫@段話更新一下版本吧:
站在消費(fèi)者的角度來看這個問題。你買了些軟件,有X,有Y,還有Z。后來,你升級到Windows XPVista。你的電腦現(xiàn)在時不時死機(jī)。而軟件Z根本用不了。你會告訴你朋友:“別升級到XPVista!經(jīng)常死機(jī)。與軟件Z也不兼容。”你會去調(diào)試你的系統(tǒng)以確定是軟件X導(dǎo)致了死機(jī),而軟件Z用不了是因為它用了不安全的window消息嗎?當(dāng)然不會。你會去把XPVista退貨了(你的X,Y,Z軟件是幾個月前買的,已經(jīng)過了30天退貨期了,你唯一可以退的是XPVista)。
微軟內(nèi)部理想主義者對實用主義者的勝利 ,我2004年就報道過了,直接解釋了為什么Vista收到一片惡評,并且銷售慘淡。
出處:
責(zé)任編輯:bluehearts
上一頁 火星人的耳機(jī) [4] 下一頁 火星人的耳機(jī) [6]
◎進(jìn)入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|