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配置。