Allen Holub (Author of Compiler Design in C and famous OO Guru) said: “XML is perhaps the worst programming language ever conceived.李鵬飛赫魯伯(作者:編譯器的設計在C和著名的面向對象大師)說: “ XML是,也許最嚴重的編程語言以往任何時候都的構想。 I’m not talking about XML as a data-description language, which was its original design.我不是在談論XML作為一種數據描述語言,這是其原設計。 I’m talking about perverting XML for programming applications.我談到貪贓枉法XML的編程應用。 It’s inappropriate to use XML as a scripting language (eg, ANT), a test-description language (eg, TestNG), an object-relational mapping language (eg, Hibernate, JDO), a control-flow language (eg, JSF), and so forth.它的不恰當使用XML作為一個腳本語言(例如,螞蟻) ,試驗描述語言(例如, testng ) , 1對象關係映射的語言(例如,休眠, JDO的) ,控制流語言(例如, jsf ) ,等等。 These sorts of XML “programs” are unreadable, unmaintainable, an order of magnitude larger than necessary, and audaciously inefficient at runtime.”這些各種各樣的XML的“程序”是無法讀取, unmaintainable ,一個量級大於必要的,而且audaciously效率低,在運行時“ 。 Link鏈接

He surmised that the tendency to use xml for these tasks is simply because people either don’t want to create a compiler or are inacapable of creating one.他推測,這種趨勢使用XML為這些任務原因很簡單,人不是不想創造一個編譯或正在inacapable創造1 。 I agree with him.我同意他的。 Most of the time people use XML because it is easy to parse XML, so who cares how long it takes for people to create these xml documents in the first place.大部分的時間,人們使用XML ,因為它是很容易解析XML的,所以誰在乎需要多久才能為人民創造這些XML文件擺在首位。 Look at Hibernate for an example.看看Hibernate的一個例子。 It is XML hell.這是XML的地獄。 EJB 2 was another example.二是EJB的另一個例子。 Jelly was probably the worst example and I don’t like JSTL that much either.果凍可能是最壞的榜樣,我不喜歡jstl那麼多。

Then he goes on to define the basic qualifications of a programmer, he said something which is close to my heart:然後他接著界定的基本條件,一個程序員,他說,一些接近我的心:
“This list includes a deep understanding of data structures and key algorithms, a little math (set theory, logic, a little statistics), mastery of analysis-and-design techniques, both process (eg, RUP or XP) and structure (eg, design patterns), and database structure and use (eg, SQL). “這份名單包括深入了解數據結構和關鍵算法的一個小數學(集理論,邏輯,有點統計數字) ,掌握分析和設計技術,無論是過程(例如, RUP的或XP )和結構(如,設計模式) ,以及數據庫結構和使用(例如,中, SQL ) 。 You also need to know how the hardware works.”您還需要知道如何硬件工程“ 。

Designing compilers is hard.編譯器的設計是很難。 Today it is rare to see people designing compilers for their software.今天,這是難得見到的人設計的編譯器為他們的軟件。 They use XML or simple property files.他們使用XML或簡單的財產檔案。 Also, as he mentioned, it is hard to get books on compiler design.此外,正如他所說,這是很難找到的書籍,編譯器的設計。 The best Java software to design compiler is最好的Java軟件設計編譯器 JavaCC javacc , which was by an ex-Sun employee, who later went on to found MetaMata in the dotcom boom era. ,這是由一個前孫僱員,誰後,接著就發現metamata ,在dotcom繁榮的時代。

He misses one vital point.他錯過了一個重要的一點。 Somewhere down the road it has unfortunately become a marketing bullet point to mention that your software uses XML for configuration.某處下跌的道路,它已不幸地成為一個營銷子彈點,更何況您的軟件使用XML配置。