XML是歷史前進中的怪胎

人的理性是有限的,甚至拙劣的,但理性中的人卻很自負。互聯網自己不是被理性事先設計出來的,可是咱們老是想在互聯網上再次理性設計,XML和區塊鏈都是人類理性自負地結果,有人甚至將區塊鏈和互聯網相比,他們不知道互聯網可不是哪一個上帝式的人或公司設計出來的,如今谷歌公司試圖干擾互聯網的各類小動做實際上是一種做惡。web

早在21世紀初,XML風靡全球,直至今日爲止,咱們仍然離不開XML,那個時候,XML被認爲是對複雜性的強烈抵制,一種理性的貫徹。redis

而HTML是從SGML演進而來的,SGML最初是從出版業發展而來的(就像最初的DocBook是一種SGML語言同樣),而且具備靈活的解析器功能,所以不太深刻技術的編寫者能夠在不瞭解它標籤如何進行工做的狀況之下使用它們,SGML/HTML都有着人類友好型的痕跡。數據庫

可是,全部的這些所謂的人類友好型的行爲都存在這一個問題,那就是對於某些共同認知的一個同一標準,特別是對於強依賴可交互性的實現(web瀏覽器就是一種強依賴可交互的實現)。因而,一些人創造出了一種能夠一勞永逸的解決這些問題的工具,那就是XML:HTML/SGML的簡化,刪除了解析的不一致性,當你指定XML文檔時,你老是應該知道解析樹是什麼,你指定的到底是一個什麼東西。但這樣的構造使得它失去了對人類的友好性(你必須老是關閉你的XML標籤,不能像HTML就能夠不關閉),最終大多數人都必須養成關閉標籤的習慣。編程

由於嚴格性是XML被創造出來解決的目標,Postel定律不適用,而且有大量的XML驗證器,每個都比它的父驗證器更嚴格,每次運行時從Internet靜默下載DTD,致使你在Debug能夠運行任意代碼,若是遠程DTD被黑客攻擊,則將會讓您本地的計算機數據泄漏。瀏覽器

遺憾的是,XML是由一系列標準委員會發明的,幾乎沒有自我控制,所以在簡化HTML以後,卻沒法阻止本身再次複雜化。網絡

曾今有過一個短暫嘗試的笑話,試圖說服互聯網上的每個人從易於編寫的HTML切換到易於解析的XHTML上(HTML-over-XML),它的失敗徹底能夠預見,由於寫HTML這件事情天天數以億計,而HTML解析器每十年寫的次數屈指可數,所以,可寫性戰勝了可解析性。工具

真正重要的是:XML變成了每一個問題的解決方案。學習

爲何咱們今天仍然據說過XML?而且天天都在使用它,好比Spring,好比redis,儘管它是一個失敗的廢品?區塊鏈

由於XML儘管在主要目標上失敗了,但它卻在編碼其餘結構化數據的相關工做上取得了巨大的成功。編碼

你能夠獲取XML解析器,編寫DTD,並自動生成幾乎全部內容的代碼,使用XSL,可將自動解析的XML文件自動生成輸出文件。若是有須要,你甚至能夠經過XML輸出更多的XML,而且能夠永遠的持續下去。

全部的這一切覺得這,若是你採用XML,你永遠不須要編寫另外一個解析器或另外一個輸出生成器。你也不須要學習任何的新語法(諷刺的是,XSL和DTD是你仍然要了解的「新」語法),由於全部的語法,都是XML!這是2000年代的LISP,只有尖括號而不是圓括號,咱們並不把它稱之爲編程。

最重要的是,你不須要與你的供應商去爭論他們的數據文件是否有效,由於符合標準的XML驗證工具會告訴你。全部送到你手上的文件,都會在這以前運行驗證程序,你永遠不會收到無效的文件,生活將會是完美的。

咱們來看看真實的故事,建立XML是爲了解決強依賴互操做性的問題,在企業中,強依賴的互操做性更是巨大的(這一點對於敏捷型企業來講則不太明顯,由於他們跨職能運做),這甚至是最大的問題,公司若是認爲它可行,那麼公司幾乎能夠花費鉅額的錢來修復互操做性。

資金吸引顧問,顧問吸引方法,而方法學則以方法論驅動的產品吸引大型企業,XML是催化劑。投資資金到位了,該部署的都獲得了部署,業務從那時起就一直沒有任何變化。

對嗎?

JSON的出現爲網絡App清除了XML,可是咱們爲何使用XMLHttpRequest來獲取JSON?有一句話說的很好:「JSON只需使用20%的精力就能完成80%的工做,但它也就只能完成80%,而XML須要使用120%的精力完成100%的工做,剩下來的20%咱們仍是須要使用XML來完成」。SOAP和XML-RPC的相性很是低,XML並無成爲定義構建系統配置的好語言,而且在以後的發展中,人們意識到「XML數據庫」是多麼的使人發笑。

如今,大家大多看到的是夕陽行業中的XML,這些行業尚未徹底掌握新的技術方式:轉化到使用JSON和REST等等,就像沒有使用敏捷的方式來管理企業同樣。

在如今的新時代,咱們能夠輕鬆地使用JSON(若是它存在)或CVS或其餘任何東西交換數據,XML已是一種落後的時尚,我不敢保證是否會出現一種可以徹底替代它的新的標記語言,但至少如今來講,它確實仍然作着那20%的工做,它曾經在「蠻荒」時期推進着整個行業向前發展,在混亂中前進,可是它在現在看來,確實已經英雄遲暮。

擁抱JSON,擁抱敏捷,這也是歷史的車輪。

相關文章
相關標籤/搜索