Allen Holub: Say No To XML (As Programming Language); I Agree Аллен Holub: сказать "нет" на XML (в качестве языка программирования), я согласен
Allen Holub (Author of Compiler Design in C and famous OO Guru) said: “XML is perhaps the worst programming language ever conceived. Аллен Holub (Автор компилятора Дизайн в C и знаменитые OO гуру) сказал: "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. Я говорю о perverting 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), объектно-реляционного картографирования языка (например, Hibernate, JDO), контроль потока языка (например, JSF), и так далее. These sorts of XML “programs” are unreadable, unmaintainable, an order of magnitude larger than necessary, and audaciously inefficient at runtime.” Эти сорта XML "программы" являются читается, unmaintainable, порядок больше, чем необходимо, и смело неэффективной во время выполнения ". 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. Он surmised, что тенденция к использованию xml для решения этих задач, просто потому, что люди либо не хотят создавать компилятор или inacapable создать один. 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 2 является еще одним примером. Jelly was probably the worst example and I don’t like JSTL that much either. Jelly, вероятно, наихудшие пример, и я не люблю 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). "Этот перечень включает в себя глубокое понимание структуры данных и ключевые алгоритмы, немного математики (теория множеств, логика, мало статистики), мастерство анализа и разработки методов, оба процесса (например, РУП" или 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 , which was by an ex-Sun employee, who later went on to found MetaMata in the dotcom boom era. , Который был экс-Sun работника, которые позже пошли на создание 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 для конфигурации.
Filed under Поданного в соответствии с Headline News Headline News , Java Software Программное обеспечение Java , Open Source Software Open Source Software , Technology Технология | |
| |
RSS 2.0 RSS 2,0 | |
Trackback this Article | это статья |
Email this Article Отослать Статья
You may also like to read Вы можете также люблю читать |




September 27th, 2006 at 6:25 am 27 сентября 2006 года в 6:25 утра
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. Некоторые geeks fantasize время примерно с горячей и секси девочки, только приехать домой и встретиться жена (если они есть) которые отнюдь не жарко и секси. That, my friend, is reality. Это, мой друг, это реальность.
Allen Holub lives in a fantasy world. Аллен Holub живет в мире фантазии. In reality, there’s always deadlines to meet, profit to achieve. В действительности, существует всегда сроки встретиться, прибыль достичь.
September 27th, 2006 at 7:14 am 27 сентября 2006 года в 7:14 утра
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? Правда, было бы более выгодно в долгосрочной перспективе сделать Вашу заявку проще в использовании, если вам предлагают также уделяется профессиональной поддержки услуг?
Creating compilers is hard for us but creating xml files aren’t easy for end-users. Создание компиляторов трудно для нас, но создать xml файлы не простой для конечных пользователей.
In my experience most of them are comfortable with Excel documents, complex xml is beyond them (obviously with exceptions). В моем опыте многие из них знакомы с документами Excel, xml комплекс находится за них (очевидно, с исключениями).
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. Негативные компиляторов заключается в том, что они не только сложнее создать, но и усложняет для других потреблять, если не предоставить им парсер тоже. We do however need a better solution than xml, especially for simple formats. Нам же нужно лучшее решение, чем xml, особенно для простых форматов.
September 27th, 2006 at 10:07 am 27 сентября 2006 года в 10:07 утра
I got tired of doing “XML push-ups.” So I’m trying to focus my new development efforts on Ruby on Rails. Меня устали от этой "XML нажимаем предприятий." Итак Я пытаюсь сосредоточить свои усилия в области развития новых по Ruby на рельсы. XML? There is none. Существует нет. Just YAML for configuration of database. Просто YAML для конфигурации базы данных. Very nice! Очень удобно!
September 27th, 2006 at 10:29 pm 27 сентября 2006 года в 10:29 вечера
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 Да, может быть… За исключением плохой пример (ОК, проблема с Ant, да, но он не хотел сделать настолько прост в использовании, пожалуйста, вкладками, и места, о моем), и подключить его книге все тонкости от sledgehammer был не слишком здорово
September 29th, 2006 at 12:32 am 29 сентября 2006 года в 12:32 утра
I had read his book - “Compiler Design in C” and I think it is of very high quality. Я читать его книги - "Дизайн в Компилятор C", и я думаю, что это очень высокого качества. So even if he is plugging his book, I think it is a good plug. Так что даже если он является подключение его книге, я думаю, что это хороший плагин.
Also everyone has their natural tendencies. Кроме того, каждый имеет свои природные тенденции. A compiler designer sees everything as a compiler design problem, a OO designer sees the world as object oriented and so on. Компилятор дизайнер видит все как компилятора проблемы, OO дизайнер видит мир как объектно-ориентированный язык и так далее. Beyond all that I still see lots of merit in his arguments against ubiquitous use of XML as programming language. За все, что я по-прежнему видеть много смысла в его аргументы против повсеместное использование XML в качестве языка программирования.
March 5th, 2007 at 8:39 am 5 марта 2007 года в 8:39 утра
I think, the author exaggerates a little. Мне кажется, автор немного преувеличивает.
It is good that there is a simple format of configuration files. Приятно, что есть простой формат файлов конфигурации. XML is maybe verbose, but it is easy to learn. XML является, возможно, подробный, но его легко узнать. And if everyone created a new format for each application, we would have to learn much more and it would take much more time. И если каждый человек создан новый формат для каждого приложения, нам пришлось бы учиться гораздо больше, и она займет гораздо больше времени. Do you remember sendmail configuration files? Вы помните sendmail конфигурационных файлов?
March 7th, 2007 at 11:00 am 7 марта 2007 года в 11.00 часов
Yes, I do remember sendmail as well as the make files Да, я помню sendmail, а также внести файлы
I think xml for plain configuration is ok but not as a programming language. Я думаю, xml по равнине конфигурации в порядке, но не в качестве языка программирования. Ant is a case where xml is used as a programming language. Ant является случай, когда xml используется в качестве языка программирования.
January 4th, 2008 at 4:25 am 4 января 2008 года в 4:25 утра
I have often seen people creating programming languages using XML. Я часто видел людей, создания языков программирования с использованием XML. I think that XML was not meant for that and does not suit that purpose. Я думаю, что XML не был предназначен для этого и не устраивает, что целью. Prove of that is XUL, Flex MXML or even XForms, that end up using Actionscript or Javascript to do the business logic. Докажите этого является XUL, Flex MXML или даже XForms, что в конечном итоге с использованием Actionscript и Javascript, сделать бизнес-логики. They use the XML part to layout the components and Actionscript or Javascript to do the serious work. Они используют XML в расположение части и компоненты Actionscript и Javascript, сделать серьезную работу. These make sense, because when we are creating the forms, we are marking (or laying) our UI components. Это имеет смысл, потому что, когда мы создаем формы, мы отмечаем (или укладки) UI наших компонентов.
When I started playing with XML, I thought it was going to be a solution for writing quick languages. Когда я начал играть с XML, я думал, это будет решение для быстрого написания языках. But, I came to the conclusion that XML is what it is: a markup language. Но, я пришел к выводу о том, что XML является то, что она заключается в следующем: язык разметки. And it can be used for document design and for data design as well. И она может быть использована для разработки документа, и для передачи данных, а дизайн. As for complex programming languages, I stick to writing compilers for them. Что касается сложных языков программирования, я придерживаться написания компиляторов для них. The language becomes so much cleaner than XML. Язык становится так много чище, чем 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\\\” Сейчас, как и компилятор для написания время тяжело, я просто ответить \ \ \ ", когда люди дона \ \ \ 'т знаем, как использовать что-то, они всегда говорят, что трудно \ \ \"
It is not like in the old days whereby you would need loads of programmers to write a compiler. Это не как в старые времена в котором вы должны нагрузок для программистов, чтобы написать компилятор. Today, a single programmer can put together a compiler, using current compiler frameworks, in a month. Сегодня, один программист может положить вместе компилятором, компилятор с использованием нынешних механизмов в месяц.
Nowadays, you don\\\’t have to write parsers by hand. На сегодняшний день, вы дона \ \ \ 'т придется писать парсеры рукой. You can put together a parser for a configuration file in a day or two. Вы можете поместить вместе парсер для конфигурационного файла в день или два.
Compiler writing was, in the old days, very laborious. Компилятор письменная форма является, в старые времена, очень трудоемкий. Not anymore, because you have many frameworks that do half of the work for you. Не больше, потому что у Вас много рамок, сделать половину работы за Вас. For instance, with JavaCC you can generate the lexer, the parser, the Abstract Syntax Tree using JJTree. Например, с JavaCC, вы можете создать lexer, синтаксический анализатор, Аннотация дерева с использованием синтаксиса JJTree. And then, you just have write the semantic analyser, intermediate code generator, code optimizer and the code generator. И потом, вам надо написать семантический анализатор, генератор промежуточного кода, оптимизации кода и кода генератора. But, that is very simple to do. Но, что очень просто сделать. It is similar to traversing XML nodes. Она подобна traversing XML-узлы. I usually see it that way. Обычно я видеть его именно таким образом.
Finally, I would like to mention that there is a compiler framework called SableCC, which is very easy to use. Наконец, я хотел бы упомянуть о том, что есть компилятор рамках называется SableCC, который очень прост в использовании. There is also an alternative based on SableCC, which allows us to write backend generators for other languages. Существует также альтернатива основана на SableCC, который позволяет нам писать бэкэнда генераторов для других языках. I have written two backend generators: one for Python and one Actionscript. Я написал два бэкэнда генераторов: один для Python и один Actionscript. The Python one is in the public domain. Python один находится в общественном достоянии. The Actionscript one is still being used internally in my company. Actionscript один-прежнему используется внутри страны в моей компании. But will, eventually, be released to the public domain. Но в конечном итоге, будут освобождены в общественное достояние. 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. Мы использовали Actionscript бэкэнда писать SPARQL парсер для Adobe Flex, и написать компилятор для языка программирования на основе Daplex. Well, we call it a framework, because it does more than generating database code. Ну, мы называем его рамки, поскольку в нем больше, чем генерации кода базы данных. It generates web applications that target PHP, Java, C# with either Ajax or Adobe Flex front ends. Она создает веб-приложений, ориентированных PHP, Java, C # или с Ajax или Adobe Flex интерфейсов.
Anyway, that is my two cents. Во всяком случае, таково мое два цента.
All the best, Все лучшее,
Fidel. Фидель.