XML已死 ?

近十幾年來唱衰XML的聲音一直未曾間斷過,做爲曾經風靡一時的可擴展標記語言,彷佛真的江河日下了。近期在跨部門合做過程當中,有幸得以接觸到以XML做爲通用配置的大型工程項目,然而在開發過程當中逐漸感覺到這種面向xml配置的編程方式使得簡單的問題變得複雜。同時,這種自定義的高度可配置化的方式對於項目管理又特別清晰高效。因而對關於如何正確看待XML這個問題陷入了思考….

一、XML發展歷史

首先來簡單回顧下XML幾個重要發展節點:html

  • 1978 年,ANSI 將 IBM二十世紀60年代發展起來的GML(Generalized Markup Language)標準化後,發佈成爲 SGML(The Standard Generalized Markup Language),這成爲XML的前身。
  • 1986年,SGML做爲一種通用標記語言,爲國際標準化組織ISO所採用,但因爲SGML定義過於複雜,沒法普及。
  • 1995年,考慮到當時HTML的缺陷,做爲簡化與優化的XML雛形已經造成,並向W3C提案
  • 1998年2月,XML1.0發佈,正式成爲W3C的標準。

雖然XML生而是爲解決HTML的一些弊病,並取而代之。但事與願違,衆所周知XML並無取代HTML成爲新的超文本標記語言。
不過這絲絕不妨礙XML不斷髮展演化並被普遍用做跨平臺數據交換的格式:主要針對數據的內容,經過不一樣的格式化描述手段(XSLT,CSS等)能夠完成最終的形式表達(生成對應的HTML,PDF或者其餘的文件格式)。前端

:HTML也是基於SGML,準確來講HTML是SGML的一個應用(基於SGML的超文本版本)。web

沒錯,JSON是一種優秀的數據交換格式,可是它僅僅是一種數據交換格式(與XML對比)。編程

二、XML VS JSON

不少開發者唱衰XML也並非空穴來風,在WEB技術如此炙熱的年代,JSON彷佛已經成爲了一種事實上的WEB交換數據格式標準。json

若是嚴格地從定義上來說,XML與JSON並非同同樣東西。XML是一種標記元語言,而JSON則是一種輕量級的數據交換格式。從這個點上說,XML與JSON是沒法比較的。不少時候時候咱們在說XML VS JSON,其實是指XML做爲數據交換格式與JSON這種數據交換格式的比較。segmentfault

雖然JSON是做爲JavsScript的一個子集誕生的,可是它獨立於語言。JSON得益於其自己的小巧、簡單以及瀏覽器內建快速解析支持的特性,使得其更適用於網絡數據傳輸領域,在web2.0時代更是一路高歌猛進。後端

下面是Google Trends和StackOverflow Insights上的數據:瀏覽器

Google Trends
clipboard.png網絡

StackOverflow Insights
clipboard.png架構

能夠看出,在2013年左右JSON熱度逐漸超過XML。

儘管,JSON在語義表達、數據存儲以及檢索方面遠不及XML,但就是由於其簡單、輕量使得其大肆流行於市場。

:從這個點上的啓發是簡單好用比全面更容易普及。好比當年的OSI七層網絡協議與TCP/IP四層協議之爭,一樣的道理:簡單是流行的前提。

三、XML真的死了嗎?

看着如此趨勢,難免會心生疑問:XML真的死了嗎?
答案固然是否認的。
這實際上是一種認知偏見,見得少不表明事實上很少。好比segmentfault上大都是偏前端類的技術文章,這說明難道後端技術都消失了嘛?明顯不是。

曲線只能說明某種場景下將來的一種趨勢,好比在web領域的確xml是不如json使用的普遍。可是在面向SOA架構的企業級軟件應用中,XML還是信息交換的事實標準。XML做爲一個能夠自定義標籤的元標記語言,在描述複雜的業務邏輯時尤爲特別適用。
而且, 在當今的出版業中,整個文檔處理工做流程都要使用XML。它也是標準的Office文件格式,例如Word、Excel、PowerPoint或Google Docs等。

故,XML並無死,只是某些領域應用減小,可是其餘領域特別是企業級仍然有不少應用。

References

https://www.quora.com/Is-XML-...
https://zh.wikipedia.org/zh-h...
https://www.itcodemonkey.com/...
http://www.cftea.com/c/444.asp
http://siddim.com/archives/47...
https://zh.wikipedia.org/zh-h...

相關文章
相關標籤/搜索