標籤:

多年前對 XHTML 和 HTML5 的預測為什麼錯的這麼離譜?

在Head first 系列書中的htlm和css書中看到這些話:(中文版的出版日期是08年,但對xhtml的預測應該是在8年前就已經出錯了)

這種預測錯誤原因有哪些??既然現在大多數網站用的是html5,是不是就可以直接學html5不用管低版本的html了??
另外看到,head first html5專門有一頁寫的是感謝Jobs的話,Jobs對html5的貢獻體現在哪些方面??html5的興起和智能 手機的興起有什麼關係??
To Steve Jobs, who hyped HTML5 to the point where this
book should sell a zillion copies...
And to Steve Jobs, because he』s our hero.


嗯,那個時候正是W3C自信心爆棚的時候,整個業界都認為W3C聯盟戰勝了IE,IE受到越來越多瀏覽器的挑戰,如Chrome、Firefox、Webkit,終於,內容提供商開始傾向於提供非IE兼容的內容,IE瀏覽器的絕對市場壟斷地位被打破了。人們都以為這是民眾的勝利,標準的勝利,W3C的勝利。
同時,XML的成功也沖昏了W3C HTML工作小組的頭腦,越來越多的協議選擇XML作為底層介面。讓我們全部都使用XML吧,W3C就這麼愉快的決定了。

但很顯然的,W3C真是圖樣圖森破。

標準,永遠是掌握在瀏覽器廠家手裡的。事實上,IE的市場份額只是被WebKit核心蠶食了而已。市場標準只是從一個寡頭手裡到了另一個寡頭手裡。一意孤行的XHTML 2.0竟然大膽的與原先的HTML不再兼容,瀏覽器廠商終於怒了,Mozilla和蘋果牽頭,WHATWG小組成立。失去了廠商支持的W3C的XHTML2標準很快就成為了一個笑話。


首先要說明您提問中說到的「現在大多數網站用的是html5」並非事實。基於低版本IE兼容性顧慮,大多數網站其實並未使用HTML5獨有的一些特性(比如新的tags),考慮到您以後可能會遇到處理兼容性問題的狀況,對哪些特性是HTML5存在而HTML4不存在有一定程度的認知也是必要的,所以HTML4也應該學習一下。

然後關於XHTML失勢的原因其實很簡單,因為網頁開發比起學術與嚴謹性來說,更看重的是功能性與健壯性。
XHTML是學術派的w3c開發的,並未給HTML帶來新功能,只是用XML來規範HTML,試圖用XML來抹平HTML設計的一些缺陷(最重要的就是瀏覽器的不同解釋——而導致瀏覽器解釋不同的原因是HTML4並未規定對於不合法的HTML頁面統一的容錯體系,這導致了不同瀏覽器各自採用了自己的容錯機制,間接導致了同一個頁面在不同瀏覽器上的不同渲染),這對於網頁設計師來說,除了自己以前寫的一些不大規範的HTML頁面無法工作外,不能帶來任何正面意義(對於整個業界的正面意義倒是有——就是讓HTML更加規範和嚴謹——不過顯然這樣的「意義」太過空泛而無法被大多數設計人員接受)。
HTML5則是直接由站在HTML應用第一線的網路公司(Google, Adobe)和瀏覽器廠商(Moz, Opera, Apple)開發的,比起規範限制,採用了更容易被接受的做法:對HTML的容錯方法做出統一定義,這樣無論是什麼瀏覽器,只要根據標準實現容錯方法,即使網頁出現缺陷,其渲染結果也是完全一樣的。換句話說,網頁設計師在遷移到HTML5的時候,基本可以不做任何事情。以前即使存在一定缺陷的非標準網頁也能正常而且同一地被渲染出來。在這之上,HTML5增加了非常多的應用特性,包括新tags, CSS3, 更多系統JS API等等,極大增強了網頁app的功能,能被廣泛接受和推廣也是情理之中的事情。
說到這裡再解釋預測失誤就很容易理解了,贊同XHTML的人是被HTML4標準缺陷深受其害,覺得業界會向一個更標準更完備的方向前進;然後HTML5不僅解決了標準缺陷的問題,還帶來了更多更好的特性,當然就勝出了。

說到Jobs的話,其最偉大的貢獻就是Webkit了。在IE for Mac被微軟拋棄之後,Apple只好自己拿起KHTML來改造成Webkit並開發了Safari。Webkit最重要的應用Chrome和Safari Mobile對於推動HTML5的流行起到了功不可沒的作用。在chrome快速演化的壓力下,才促使Firefox和IE也開始提高更新速度;而Safari Mobile則成為了移動HTML領域的事實標準,對於HTML進入移動領域起到了決定性的推動作用。


我一直覺得html就應該跟python2和3一樣,想用html5,就必須忍受一些不好的東西被刪掉從而重新學習的痛苦。搞得現在不論不類的,太蠢了。

但是python3的問題是,比起python2差距太小,沒有吸引力……


08年的理念是Server端generate所有頁面,做法就是把UI相關對象直接序列化成HTML/XHTML。XHTML由於是XML,最容易序列化,所以被認為有前景

10年之後的理念是Server端只提供JSON等純數據,前端由JavaScript裝配UI。在這種情況下,已經不需要Server管UI了,也就不需要序列化HTML/XHTML了;而且應用對瀏覽器內置的JavaScript API要求大大增強。所以HTML5(實際上是主要升級了JavaScript API)變得更有價值了


漫畫:混亂的標記語言XHTML2/HTML5(附中文版翻譯)
[淺談 演示] 你所不知道的HTML


需要了解的概念
XHTML的意願就是讓人用寫XML的嚴謹態度去寫HTML,即 標籤必須閉合、屬性值必須用雙引號等。具體的可以搜知乎上的其他問題。
我們通常所說的HTML5(廣義)包含了HTML5本身、CSS3、DOM的擴展、地理API、Web Socket等。
(狹義)HTML5就是對HTML4的一個修訂和擴充:[1]

  1. 增加了對Canvas、Video和Audio等標籤的支持,多媒體和繪畫、甚至動畫的展現能力得到極大的增強
  2. 增加了一些更具語義的標籤或介面,例如aside,header,footer等
  3. 修改或廢棄了一些HTML標籤和語義,如新表單特性,Marquee,frameset等
  4. 建議將顏色/尺寸/對齊排版相關的屬性都移到CSS中,HTML5主要負責網頁的布局

其中,Canvas、video、audio等標籤要配合JS才能發揮出全部價值。

為什麼錯的這麼離譜?
因為當年根本沒有預料到今天互聯網的發展。HTML 4.01是1999年發布的,看看當年的網頁是什麼樣子 [2],多數是文本,配合少量圖片。根本無法想像谷歌地圖、新浪微博這種應用。
後來網速提高之後,出現了交互的網頁,但複雜的交互(比如在線視頻、文件上傳實時顯示百分比)只能用FLASH實現 [3],Ajax是後來的事情了。

但是,2005年初,許多事件使得Ajax被大眾所接受。[4]

互聯網的需求放在這裡,但是只有Flash能實現,有人[5] 就提出要搞HTML5來補充。
此外,FLASH畢竟是個插件,在類Unix系統上性能很差,電腦上還湊活,但是放到手機上(喬幫主)就不能忍了。
另外,增加的更具語義的標籤是基於搜索引擎實踐的,新表單特性是基於目前表單驗證都需要寫JS來實現。

Jobs對html5的貢獻
因為iPhone(iPad)用的人多,用的人大多是高端(有錢)用戶,網站(產品經理)都想要支持的。但是iOS不支持flash,那就必須用html、js技術來實現,相當於迫使網站轉向/支持HTML5。

html5的興起和智能手機的興起有什麼關係?
(我覺得)基本沒有關係。就算有,也只跟iOS有關係,Android只是搭便車。Android的瀏覽器是前端繼IE6之後的又一個噩夢,Android 4.0.4 才開始不支持Flash。(繼續安卓黑)

題外話
題主不要看這種垃圾書

------參---考---文---獻------
1. HTML5的定義
2. [網易]帶您遨遊中文網路世界
3. Adobe Flash
4. AJAX
5. Growing pains afflict HTML5 standardization


只是這本書錯的離譜,包括我在內的一些從業者對xhtml1.1的評價是這樣的:
「這是一個標準制定者走火入魔的典型例子」

以下引自http://blabla.cn 07年的一篇文章
文章地址:HTML 和 XHTML 區別

XHTML 標準的前途
從標準制定者的初衷看,制定 XHTML 標準是試圖把 HTML 規範成為嚴格的 XML 格式,這樣無可避免的會導致一個結果,就是從 HTML 到 XHTML 的升級導致標準的容錯能力降低了。把自己的網頁源文件寫得嚴格一點當然是好事,但是一個標準不可能去要求瀏覽器降低自己的容錯能力。
XHTML 1.0 標準是兼容 HTML 4.01,是個不錯的協議,可以讓開發者在編寫代碼的同時通過一些工具來檢查代碼的合法性,雖然對於用戶而言,製作出來的網頁和 HTML 4.01 相比實在沒有什麼不同。對於你寫新的網頁來說,使用 XHTML 1.0 還是一個不錯的選擇。
XHTML 1.1 標準要求瀏覽器不再支持原先的容錯能力,這是一個標準制定者走火入魔的典型例子,這個標準從學術上說非常純凈,但是對於瀏覽器而言,則是個呆板、笨拙、不可理喻的標準。所以目前所有由人類開發的瀏覽器都沒有遵照所謂純凈的 XHTML 1.1的標準,你的代碼只要瀏覽器能讀懂,他都會很好的顯示出來,而不跳出彈框報錯。
從發展的趨勢來看,一個標準沒有瀏覽器服從,等於是沒有意義的標準。從瀏覽器的實現角度來看,新的協議只能在原來 HTML 的基礎上擴大能力增加容錯,而不能縮小了能力減少容錯。所以新的協議中,只有擴大能力增加容錯的部分會被採納,而其他部分都僅僅是紙上談兵而已。


喬幫主在iOS設備上不支持Flash,而選擇了HTML5.於是這個技術很多人使用了,XHTML雖然根正苗紅,但是Chrome,Safari,IE等都往HTML5走,於是HTML5成為事實上的標準。後來XHTML就不搞了,2個小組合併


因為你看的版本太老了。HF的HTML(特指4)出了兩個版本,你看的是最早的那個版本。第二版裡面好像就沒有這個說法了。


推薦閱讀:

在不同的瀏覽器中,一個block元素的最大長寬可以達到多少?
HTML5跟HTML有哪些區別?
準備學習 C, 想知道 HTML, CSS, JS, Ajax, JAVA, C 是做什麼的?
程序員討厭面試被問一些基礎問題么?
WEB 前端菜鳥,感覺很迷茫,該怎麼做?

TAG:HTML | HTML5 | XHTML |