Allen Holub: Say No To XML (As Programming Language); I Agree Allen Holub: dire non à XML (comme langage de programmation); Je suis d'accord
Allen Holub (Author of Compiler Design in C and famous OO Guru) said: “XML is perhaps the worst programming language ever conceived. Allen Holub (Auteur de Design Compiler en C et célèbre OO Guru) a dit: "XML est peut-être le pire langage de programmation jamais conçus. I’m not talking about XML as a data-description language, which was its original design. Je ne parle pas le format XML comme une base de données-langage de description, qui était sa conception originale. I’m talking about perverting XML for programming applications. Je parle de pervertir XML pour les applications de programmation. 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. Il est inapproprié d'utiliser le format XML comme un langage de script (par exemple, ANT), un essai-langage de description (par exemple, TestNG), un mapping objet-relationnel langue (par exemple, Hibernate, JDO), un contrôle des flux de la langue (par exemple, JSF), et ainsi de suite. These sorts of XML “programs” are unreadable, unmaintainable, an order of magnitude larger than necessary, and audaciously inefficient at runtime.” Ces sortes de XML "programmes" sont illisibles, ingérable, un ordre de grandeur plus grand que nécessaire, audace et inefficaces au moment de l'exécution. " Link Lien
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. Il a supposé que la tendance à utiliser XML pour ces tâches est tout simplement parce que les gens soit ne voulons pas créer un compilateur ou sont inacapable de créer un. I agree with him. Je suis d'accord avec lui. 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. La plupart du temps les gens utilisent le XML car il est facile d'analyser le XML, ce qui prend soin combien de temps il faut pour les personnes à créer ces documents XML en premier lieu. Look at Hibernate for an example. Rechercher à Hibernate pour un exemple. It is XML hell. Il est le XML enfer. EJB 2 was another example. EJB 2 est un autre exemple. Jelly was probably the worst example and I don’t like JSTL that much either. Jelly est probablement le pire exemple et je n'aime pas beaucoup que JSTL.
Then he goes on to define the basic qualifications of a programmer, he said something which is close to my heart: Puis il va à définir les qualifications de base d'un programmeur, il a dit quelque chose qui est proche de mon coeur:
“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). "Cette liste comprend une compréhension profonde des structures de données et les principaux algorithmes, un peu de mathématiques (théorie des ensembles, la logique, un peu de statistiques), la maîtrise de l'analyse et les techniques de conception, les deux processus (par exemple, RUP ou XP) et structure (par exemple , Design patterns), et structure de base de données et d'utilisation (par exemple, SQL). You also need to know how the hardware works.” Vous devez également savoir comment fonctionne le matériel. "
Designing compilers is hard. Concevoir des compilateurs est difficile. Today it is rare to see people designing compilers for their software. Aujourd'hui, il est rare de voir des gens compilateurs pour la conception de leurs logiciels. They use XML or simple property files. Ils utilisent XML ou simple propriété des fichiers. Also, as he mentioned, it is hard to get books on compiler design. Aussi, comme il l'a mentionné, il est difficile d'obtenir des livres sur la conception compilateur. The best Java software to design compiler is Le meilleur logiciel Java pour concevoir compilateur est JavaCC Javacc , which was by an ex-Sun employee, who later went on to found MetaMata in the dotcom boom era. , Qui a été par un ex-employé de Sun, qui a plus tard de fonder MetaMata dans le boom des dotcoms ère.
He misses one vital point. Il manque un point essentiel. Somewhere down the road it has unfortunately become a marketing bullet point to mention that your software uses XML for configuration. Quelque part sur la route, il a malheureusement devenu un point de mise sur le marché de mentionner que votre logiciel utilise XML pour la configuration.
Filed under Classé sous Headline News Headline News , Java Software Logiciel de Java , Open Source Software Open Source Software , Technology Technologie | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | cet article |
Email this Article Envoyer cet article
You may also like to read Vous mai également à lire |




September 27th, 2006 at 6:25 am Septembre 27th, 2006 at 6:25 am
Some geeks fantasize about being with hot and sexy girls, only to come home and meet the wife (if they have any) who is far from hot and sexy. Certains geeks fantasmer d'être chaude et sexy filles, seulement pour revenir à la maison et rencontrer la femme (s'ils ont tout) qui est loin d'être chaude et sexy. That, my friend, is reality. Voilà, mon ami, est la réalité.
Allen Holub lives in a fantasy world. Allen Holub vit dans un monde fantastique. In reality, there’s always deadlines to meet, profit to achieve. En réalité, il ya toujours des délais pour répondre, le profit à réaliser.
September 27th, 2006 at 7:14 am Septembre 27th, 2006 at 7:14 am
Wouldn’t it be more profitable in the long run to make your application easier to use, unless you also offer paid professional support services? Ne serait-il pas plus rentable à long terme, à faire votre demande plus facile à utiliser, à moins que vous offre également payé des services de soutien professionnel?
Creating compilers is hard for us but creating xml files aren’t easy for end-users. Création de compilateurs est difficile pour nous, mais la création de fichiers xml ne sont pas faciles pour les utilisateurs finaux.
In my experience most of them are comfortable with Excel documents, complex xml is beyond them (obviously with exceptions). D'après mon expérience, la plupart d'entre eux sont à l'aise avec les documents Excel, XML est complexe au-delà (de toute évidence, avec des exceptions).
The downside of compilers is that they are not only harder to create but also harder for others to consume, unless you provide them with a parser too. L'inconvénient de compilateurs est qu'ils sont non seulement plus difficile à créer mais également plus difficile pour les autres à consommer, à moins que vous ne leur fournir un analyseur. We do however need a better solution than xml, especially for simple formats. Nous n'avons cependant besoin d'une meilleure solution que xml, en particulier pour les formats simples.
September 27th, 2006 at 10:07 am Septembre 27th, 2006 at 10:07 am
I got tired of doing “XML push-ups.” So I’m trying to focus my new development efforts on Ruby on Rails. Je me suis fatigué de faire "XML push-ups." Donc, je suis d'essayer de se concentrer mon nouveau les efforts de développement sur Ruby on Rails. XML? There is none. Il n'y en a aucun. Just YAML for configuration of database. Il suffit de YAML pour la configuration de base de données. Very nice! Very nice!
September 27th, 2006 at 10:29 pm Septembre 27th, 2006 at 10:29 pm
Yeah, maybe… Except a bad example (ok, problem with Ant, yeah, but it’s not like make is so easy to use, please, tabs, and spaces o my), and plugging his book with all the subtlety of a sledgehammer wasn’t too cool Oui, peut-être… Sauf un mauvais exemple (ok, problème avec Ant, oui, mais ce n'est pas comme c'est si facile à utiliser, s’il vous plaît, les tabulations, espaces et mon o), et de brancher son livre avec toutes la subtilité d'un masse n'était pas trop froid
September 29th, 2006 at 12:32 am Septembre 29th, 2006 at 12:32 am
I had read his book - “Compiler Design in C” and I think it is of very high quality. J'avais lu son livre - "Compiler Design en C" et je pense qu'il est de très haute qualité. So even if he is plugging his book, I think it is a good plug. Ainsi, même s'il est de brancher son livre, je pense que c'est une bonne prise.
Also everyone has their natural tendencies. D'autre part, tous ont leurs tendances naturelles. A compiler designer sees everything as a compiler design problem, a OO designer sees the world as object oriented and so on. Un compilateur concepteur voit tout comme un compilateur problème de conception, un concepteur OO voit le monde comme orienté objet et ainsi de suite. Beyond all that I still see lots of merit in his arguments against ubiquitous use of XML as programming language. Au-delà de tout ce que je vois encore beaucoup de mérite dans ses arguments contre l'utilisation omniprésente de XML comme langage de programmation.
March 5th, 2007 at 8:39 am Mars 5th, 2007 at 8:39 am
I think, the author exaggerates a little. Je pense que, l'auteur exagère un peu.
It is good that there is a simple format of configuration files. Il est bon qu'il y ait un simple format de fichiers de configuration. XML is maybe verbose, but it is easy to learn. XML est verbeux peut-être, mais il est facile à apprendre. And if everyone created a new format for each application, we would have to learn much more and it would take much more time. Et si tout le monde créé un nouveau format pour chaque demande, nous aurions beaucoup à apprendre plus et il faudrait beaucoup plus de temps. Do you remember sendmail configuration files? Te souviens-tu de fichiers de configuration sendmail?
March 7th, 2007 at 11:00 am Mars 7, 2007 at 11:00 am
Yes, I do remember sendmail as well as the make files Oui, je me souviens sendmail ainsi que la marque fichiers
I think xml for plain configuration is ok but not as a programming language. Je pense que XML pour plaine de configuration est ok mais pas comme un langage de programmation. Ant is a case where xml is used as a programming language. Ant est un cas où XML est utilisé comme un langage de programmation.
January 4th, 2008 at 4:25 am 4 janvier 2008 à 4:25 am
I have often seen people creating programming languages using XML. J'ai souvent vu des gens créer des langages de programmation utilisant le langage XML. I think that XML was not meant for that and does not suit that purpose. Je pense que XML n'a pas été conçu pour cela et ne répond pas à cette fin. Prove of that is XUL, Flex MXML or even XForms, that end up using Actionscript or Javascript to do the business logic. De prouver qui est XUL, MXML Flex ou même XForms, qui finissent l'aide d'ActionScript ou le Javascript pour faire la logique métier. They use the XML part to layout the components and Actionscript or Javascript to do the serious work. Ils utilisent le XML partie à la mise en page les éléments et ActionScript ou le Javascript pour faire le travail sérieux. These make sense, because when we are creating the forms, we are marking (or laying) our UI components. Ces sens, parce que quand nous créons les formulaires, nous célébrons (ou la construction) de nos composants d'interface utilisateur.
When I started playing with XML, I thought it was going to be a solution for writing quick languages. Quand j'ai commencé à jouer avec XML, je pensais que cela allait être une solution rapide pour l'écriture des langues. But, I came to the conclusion that XML is what it is: a markup language. Mais, je suis venu à la conclusion que l'XML est ce qu'elle est: un langage de marquage. And it can be used for document design and for data design as well. Et il peut être utilisé pour la conception de documents et de données de conception ainsi. As for complex programming languages, I stick to writing compilers for them. En ce qui concerne les langages de programmation complexe, je m'en tiens à l'écriture de compilateurs pour eux. The language becomes so much cleaner than XML. La langue devient beaucoup plus propres que XML.
Now, as for compiler writing being a hard, I just answer \\\”when people don\\\’t know how to use something, they always say it is difficult\\\” Maintenant, comme pour compilateur écrit est un dur, je viens de répondre \ \ \ "quand les gens n \ \ \ 'sais pas comment utiliser quelque chose, ils disent toujours, il est difficile \ \ \"
It is not like in the old days whereby you would need loads of programmers to write a compiler. Ce n'est pas comme dans l'ancien temps, dans laquelle vous devrez charges de programmeurs d'écrire un compilateur. Today, a single programmer can put together a compiler, using current compiler frameworks, in a month. Aujourd'hui, seul un programmeur peut ainsi mettre un compilateur, en utilisant le compilateur actuel cadres, dans un mois.
Nowadays, you don\\\’t have to write parsers by hand. De nos jours, vous n \ \ \ 'avez pas à écrire des analyseurs syntaxiques à la main. You can put together a parser for a configuration file in a day or two. Vous pouvez ainsi mettre un analyseur syntaxique pour un fichier de configuration dans un jour ou deux.
Compiler writing was, in the old days, very laborious. Compilateur a été écrit, dans les anciens jours, très laborieux. Not anymore, because you have many frameworks that do half of the work for you. Pas plus, parce que vous avez beaucoup de cadres qui ne moitié du travail pour vous. For instance, with JavaCC you can generate the lexer, the parser, the Abstract Syntax Tree using JJTree. Par exemple, avec javacc vous pouvez générer les lexer, l'analyseur, l'arbre de syntaxe abstraite en utilisant JJTree. And then, you just have write the semantic analyser, intermediate code generator, code optimizer and the code generator. Et puis, il vous suffit d'écrire l'analyseur sémantique, intermédiaire générateur de code, code optimiseur et le générateur de code. But, that is very simple to do. Mais, c'est très simple à faire. It is similar to traversing XML nodes. Il est similaire à traverser les noeuds XML. I usually see it that way. J'ai l'habitude de voir de cette façon.
Finally, I would like to mention that there is a compiler framework called SableCC, which is very easy to use. Enfin, je voudrais mentionner qu'il existe un cadre appelé compilateur SableCC, qui est très facile à utiliser. There is also an alternative based on SableCC, which allows us to write backend generators for other languages. Il est aussi une alternative fondée sur SableCC, qui nous permet d'écrire des générateurs backend pour les autres langues. I have written two backend generators: one for Python and one Actionscript. J'ai écrit deux générateurs de backend: une pour Python et un ActionScript. The Python one is in the public domain. Le Python est un dans le domaine public. The Actionscript one is still being used internally in my company. ActionScript est un être encore utilisé en interne dans mon entreprise. But will, eventually, be released to the public domain. Mais, à terme, être mises au domaine public. We used the Actionscript backend to write a SPARQL parser for Adobe Flex, and to write a compiler for a programming language based on Daplex. Nous avons utilisé la Actionscript backend d'écrire un analyseur SPARQL pour Adobe Flex, et d'écrire un compilateur pour un langage de programmation basé sur Daplex. Well, we call it a framework, because it does more than generating database code. Eh bien, nous appelons cela un cadre, car il ne générant plus de code de base de données. It generates web applications that target PHP, Java, C# with either Ajax or Adobe Flex front ends. Il génère des applications web qui visent PHP, Java, C #, soit avec Ajax ou Adobe Flex frontaux.
Anyway, that is my two cents. Quoi qu'il en soit, c'est mes deux cents.
All the best, Tous les meilleurs,
Fidel.