XML, вероятно, худший из когда-либо появлявшихся языков программирования. Я не говорю об XML как о языке описания данных, которым он был в своем первоначальном дизайне. Я говорю о извращении XML для программирования приложений. Неуместно использовать XML как скриптовый язык (например, ANT), как язык описания тестов (например, TestNG), как язык описания объектно-реляционного отображения (например, Hibernate, JDO), как язык описания потоков управления (например, JSF) и т.д. Подобные XML "программы" нечитаемы, несопровождаемы, на порядок больше в размерах и безрассудно не эффективны в время исполнения.
Так почему же XML используется таким неподходящим образом? Насколько я могу судить, это потому, что многие так называемые программисты просто не знают, как сделать компилятор...
...Знать как сделать компилятор -- это, определенно, один из элементов в списке того, что нужно знать. Компиляторы являются фундаментом того, что мы делаем каждый день как программисты. Знание того, как компилятор работает позволит вам сделать грамотные решения о структуре программы, решения, которые имеют реальное влияние на качестве наших программ. Более того, множество программ занимаются разбором ввода (как от человека, так и от машины) и работают в зависимости от его содержимого. Чтобы сделать это, вам нужно сделать маленький компилятор. Портить XML для этих целей, просто из-за того, что у вас под рукой есть XML парсер, по меньшей мере, неуместно...
После чего он сетует на то, что хороших книг и ресурсов, которые бы способствовали изучению ремесла построения компиляторов не так уж и много.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Полностью с ним согласен. Нае...лся с ant-ом по самое нехочу
Заставить работать скрипт анта не так уж и сложно. Гораздо сложнее --
через какое-то время понять, что ты там такое понаписал и что твой код
делает. А всё это — из-за обилия тегов и неудобной для восприятия глазом
структуры разметки.
XML — это язык конфигурирования и программирования данных. Я НЕ хочу
разбираться с кучей яызков для описания ДАННЫХ — я хочу один формат,
который я могу разбирать автоматическими средствами и не писать на
каждый чих по парсеру и компилятору. Я хочу иметь автокомплит, подсветку
ошибок на лету, поддерживаемость всеми современными IDE.
eao197 wrote:
> После чего он сетует на то, что хороших книг и ресурсов, которые бы > способствовали изучению ремесла построения компиляторов не так уж и много.
xml к это не замена компилятора, а всего лишь лексического и синтаксического анализатора. Компилятор помимо этих двух
должен ещё иметь сематнический анализатор и кодогенератор (который не всегда нужен-то).
Так что рассуждения основаны на ложных посылках. В общем непонятно каким боком компилятор "заменяет" xml или в лушчем
случае похоже на рассуждения "вылить воду из чайника, сведя задачу к предыдущей".
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
ArtDenis wrote:
> Полностью с ним согласен. Нае...лся с ant-ом по самое нехочу > Заставить работать скрипт анта не так уж и сложно. Гораздо сложнее -- > через какое-то время понять, что ты там такое понаписал и что твой код > делает. А всё это — из-за обилия тегов и неудобной для восприятия глазом > структуры разметки.
Напиши xsl-ку переводящую неудобный тебе формат в любой по вкусу.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
ArtDenis wrote:
>> Напиши xsl-ку переводящую неудобный тебе формат в любой по вкусу. > Это не выход
А что выход? Изучать ещё один синтаксис? Если бы каждый писал свой компилятор на каждый случай, ты бы запоминал, что в
hibernate-маппингах в конце строки надо ставить ";", в ant надо ставить ".", в TestNG не надо ничего ставить, а вот в
jsf надо ";", но отделить пробелом. И в итоге ты бы также "Нае...лся с ant-ом по самое нехочу", т.к. там всё не так, как
в привычном тебе hibernate.
Плюс поиметь все радости проблем с кодировками.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
Здравствуйте, Andrei N.Sobchuck, Вы писали:
kan>>>Напиши xsl-ку переводящую неудобный тебе формат в любой по вкусу. E>>А обратно?
ANS>Напиши транслятор
Представляю себе цепочку причинно-следственных связей:
Используем XML чтобы не писать транслятор.
`-> Получили нечитабельные скрипты, используем XSTL (XML опять же)
чтобы получить читабельность.
`-> Невозможно преобразовать модифицированные читабельные скрипты
обратно в XML.
`-> Пишем транслятор читабельных скриптов чтобы преобразовать
их в XML. Который нечитабельный.
`-> Вспоминаем, что XML использовалься для того, чтобы не
писать транслятор.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Andrei N.Sobchuck wrote:
> kan>>Напиши xsl-ку переводящую неудобный тебе формат в любой по вкусу. > E>А обратно? > Напиши транслятор
Точнее следует ответить так:
Напиши то, что советует писать автор статьи каждый раз в обязательном порядке.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай
C>eao197 wrote: >> Мнение Алана Голуба: Just Say No to XML >> <http://www.sdtimes.com/fullcolumn/column-20060901-05.html> C>Досталлллло!
C>XML — это язык конфигурирования и программирования данных. Я НЕ хочу C>разбираться с кучей яызков для описания ДАННЫХ — я хочу один формат, C>который я могу разбирать автоматическими средствами и не писать на C>каждый чих по парсеру и компилятору. Я хочу иметь автокомплит, подсветку C>ошибок на лету, поддерживаемость всеми современными IDE.
Dmitry Azaraev: не скажу шо очень понятно, но целевая штука другая всё таки
Dmitry Azaraev: xml сам по себе ничо не стоит. а его схемы — это пестец
Dmitry Azaraev: их в нормальном здравом уме ж писать нивазможна
Dmitry Azaraev: а править автосгенерированные это ишо хуже
dmitriid: ну а в асн можно передавать сложные структуры данных, и не бояться, что принимающая сторона их не пройдет
dmitriid:
Dmitry Azaraev: ну пройдёт или не пройдёт — всё равно принимающая сторона должна знать шо за данные и чо с ними делать
Dmitry Azaraev: само ж оно не сделаетсо
dmitriid: ну, это верно
dmitriid: в общем, ХМЛ cpommittee придумали очередной баян и радуются
Здравствуйте, kan, Вы писали:
kan>ArtDenis wrote:
>>> Напиши xsl-ку переводящую неудобный тебе формат в любой по вкусу. >> Это не выход kan>А что выход? Изучать ещё один синтаксис?
Зачем новый хватит или S-выражений или например чего-то forth образного.
Mamut wrote: > Вот вопрос. Чем их ASN.1 не устроил?
Ответ: назови мне 10 полностью свободных и бесплатных решений для ASN
для С++, Java, Perl, PHP, C, C#.
FR wrote: >> >> Напиши xsl-ку переводящую неудобный тебе формат в любой по вкусу. >> > Это не выход > kan>А что выход? Изучать ещё один синтаксис? > Зачем новый хватит или S-выражений или например чего-то forth образного.
А с кодировками как быть? А с entity (чтобы не ломать пальцы, набирая
какие-нибудь экзотические символы)?
Вот если все это прикрутить — получится ТОТ ЖЕ САМЫЙ XML, только вид с
профиля.
eao197 wrote:
> Представляю себе цепочку причинно-следственных связей:
Это нужно делать только если ты эстет и проблемы со зрением "из-за обилия тегов и неудобной для восприятия глазом
структуры разметки". Лично мне при нормальном xml-редакторе (да если ещё и специально обученном данной xsd-шкой)
воспринимать структуру никто не мешает.
Posted via RSDN NNTP Server 2.0
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай