VirtualIreland.ru - Виртуальная Ирландия
Вернуться   VirtualIreland.ru - Виртуальная Ирландия > Живем в Ирландии > IT и Связь

IT и Связь Обсуждение "айтишных" вопросов и средств связи

Закрытая тема
 
Опции темы Опции просмотра
Старый 19.05.2008, 16:15   #1
Заслуженный Участник
 
Откуда: Dublin
Сообщений: 1,290
Благодарности: 552 в 253 сообщениях Поиск благодарностей Ludwig
По умолчанию XML: pros and cons

Тим Брей, один из создателей стнадарта XML, как-то раз написал нашумевшую заметку XML Is Too Hard For Programmers, затем решил разбавить свой пессимизм такой заметкой Why XML Doesn't Suck. Обе интересные.

Нашел еще более детальное исследование, на которое часто ссылаются (требуется регистрация): The Pros and Cons of XML

Вроде все аргументы PRO имеют смысл. Все красиво на словах - данные и метаданные вместе, interoperability, читабельность для людей и для машин одновременно, единый стандарт в частности для представления Юникода, представлять можно как "древовидные" данные, так и "плоские", итд итп. Слишком большие файлы? Не беда, используйте сжатие, например на транспортном уровне. Сложно парсить? Не беда, есть библиотеки уже практически для всех языков. Нет приличных XML-редакторов? Не беда, будут :)

И все таки всякий раз имея дело с XML файлами возникает какое-то интуитивное отторжение. "Черт, опять XML!" - думаю, когда есть задача с исходными данными в XML. Кажется что-то тут фундаментально, в корне не так. Что именно?
Ludwig вне форума  

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 19.05.2008, 16:46   #2
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: XML: pros and cons

+1

Не естественно это - подсознательно не знаешь чего ожидать в следующем теге
__________________
My Church is Black...
YellowMan вне форума  
Старый 19.05.2008, 16:59   #3
Заслуженный Участник
 
Откуда: Dublin
Сообщений: 1,290
Благодарности: 552 в 253 сообщениях Поиск благодарностей Ludwig
По умолчанию Re: XML: pros and cons

Первая заметка обсуждалась на Слешдоте, и там есть хорошие комментарии. Например:

Latex: $x^5+3x-9=0$

MathML:

<mrow>
<mrow>
<msup>
<mi>x</mi>
<mn>5</mn>
</msup>
<mo>+</mo>
<mrow>
<mn>3</mn>
<mo>&InvisibleTimes;</mo>
<mi>x</mi>
</mrow>
<mo>-</mo>
<mn>9</mn>
</mrow>
<mo>=</mo>
<mn>0</mn>
</mrow>


И это называется readability?!
Ludwig вне форума  
Старый 20.05.2008, 09:13   #4
дядечка предпенсионного возраста
 
Аватар для Oleg123
 
Откуда: Milky Way
Сообщений: 3,137
Благодарности: 2,298 в 988 сообщениях Поиск благодарностей Oleg123
По умолчанию Re: XML: pros and cons

Все это дело привычки, если бы вас с 5и лет читать и писить на XML учили, то имхо таких вопросов бы не возникало.
Персонально считаю что XML это если не лучшая, то покрайней мере в десяке лучших вещей случившихся в компьютерном мире за всю его историю существования.
Имхо особенно интересны XML схемы, ибо ничего более универсального и лаконичного для превращения хаоса в некую модель не придумано.
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н.
Oleg123 вне форума  
Старый 20.05.2008, 09:44   #5
Пенсионер всея Ирландея
 
Аватар для Yapi
 
Сообщений: 13,714
Благодарности: 10,687 в 4,874 сообщениях Поиск благодарностей Yapi
По умолчанию Re: XML: pros and cons

Цитата:
Сообщение от Oleg123 Посмотреть сообщение
Персонально считаю что XML это если не лучшая, то покрайней мере в десяке лучших вещей случившихся в компьютерном мире за всю его историю существования.
XML делался для всего, то есть он ниочем. Слишком общий и универсальный, отсюда и сложности. Будущего у него, ИМХО, нет.
__________________
«Борітеся — поборете!»
Yapi вне форума  
Старый 20.05.2008, 09:58   #6
Спам-робот
 
Аватар для YellowMan
 
Откуда: Dublin<->Брянск
Сообщений: 21,268
Благодарности: 11,080 в 5,139 сообщениях Поиск благодарностей YellowMan
По умолчанию Re: XML: pros and cons

Собственно у всех универсальных вещей такая судьба - Жабу вот еще можно вспомнить...
У меня такое ощущение что все это делается для того чтобы бабок накосить. Ибо сказано - "Хочешь по-настоящему разбогатеть - придумай новую религию"
__________________
My Church is Black...
YellowMan вне форума  
Старый 20.05.2008, 11:59   #7
Заслуженный Участник
 
Откуда: Dublin
Сообщений: 1,290
Благодарности: 552 в 253 сообщениях Поиск благодарностей Ludwig
По умолчанию Re: XML: pros and cons

Мои аргументы против XML:

* XML не является форматом хранения данных, как его теперь повсеместно используют. Он был предназначен для передачи данных и interoperability. XML — это формат write–once, то есть он не предназначен для того, чтобы записать что–то на диск, а потом временами что–то модифицировать в этом файле. А предназначен он для того, чтобы однажды вывести в поток свои данные в формате XML, чтоб кто–то это прочел из потока на том конце и преобразовал в свой формат. На этом жизнь XML–файла заканчивается.

Почему? Потому что модификация такого формата как XML очень дорогостоящая - переписывается весь файл, плюс если сделать это прилично, то нужно и запирание на уровне FS.


* Программисты злоупотребляют библиотечными функциями, которые подгружают XML файл целиком в память (причем в памяти он занимает в разы и даже порядки больше места чем на диске). Почему? Потому что не все понимают что такое обработка потока. Кстати первая заметка Тима Брея примерно об этом.

А раз все читают XML файлы именно так, разом, то значит многие существующие системы потенциально подвержены DoS атакам (если подсовывать им слишком большие файлы).


* Есть тенденция заменять базы данных статическими XML–файлами, при том, что программисты ни в какую не хотят понять главное предназначение СУБД: не хранение данных, а обеспечение параллельного доступа к ним из разных процессов, с атомарными операциями. Хранить данные можно как угодно, хоть на перфокартах выгрызать зубами, но параллельный доступ и атомарные операции — это очень серьезная вещь, для которой и создаются СУБД.


* Не факт, что имея некие стандартные тулы для разбора XML файлов облегчается жизнь. Попробуйте перевести в XML конфиг. файлы в /etc, а потом попробуйте поработать с ними, скажем найти домашнюю директорию пользователя по его имени в /etc/passwd или же найти алиас хоста в /etc/hosts. С grep/cut/awk и прочими это выглядит проще и понятнее чем с xpath.


* Наконец: XML файлы невозможно конкатенировать просто так, нельзя наращивать их на манер лог-файла, нельзя вырезать куски. Для этих операций всегда требуется прочесть весь файл и понять его структуру. Для лога или конкатенации например, придется кроме того стирать закрывающие тэги и записывать их снова.
Ludwig вне форума  
Старый 20.05.2008, 13:29   #8
Заслуженный Участник
 
Аватар для Sherwood
 
Сообщений: 636
Благодарности: 604 в 258 сообщениях Поиск благодарностей Sherwood
По умолчанию Re: XML: pros and cons

Мои 5 копеек внизу.

Цитата:
Сообщение от Ludwig Посмотреть сообщение
Мои аргументы против XML:

* XML не является форматом хранения данных, как его теперь повсеместно используют. Он был предназначен для передачи данных и interoperability. XML — это формат write–once, то есть он не предназначен для того, чтобы записать что–то на диск, а потом временами что–то модифицировать в этом файле. А предназначен он для того, чтобы однажды вывести в поток свои данные в формате XML, чтоб кто–то это прочелместно из потока на том конце и преобразовал в свой фоу. рмат. На этом жизнь XML–файла заканчивается.

Почему? Потому что модификация такого формата как XML очень дорогостоящая - переписывается весь файл, плюс если сделать это прилично, то нужно и запирание на уровне FS.
А его не используют повсеместно как формат хранения данных. Есть ряд задач где он просто намного удобнее и надежнее, чем другие форматы. Например импорт экспорт структуризированной информации (без всяких там праймари и форейгн ключей) между разными системами. Общих форматов не так уж и много. В основном делают через CSV файлы или XML но с последним работать намного приятнее. Он структоризирован. Плюс если есть еще и схема - то происходит валидация на лету (проблема что схемы не все пишут - бывает)
Второе - конфиг файлы и билд - но об этом ниже.

Цитата:
Сообщение от Ludwig Посмотреть сообщение
* Программисты злоупотребляют библиотечными функциями, которые подгружают XML файл целиком в память (причем в памяти он занимает в разы и даже порядки больше места чем на диске). Почему? Потому что не все понимают что такое обработка потока. Кстати первая заметка Тима Брея примерно об этом.

А раз все читают XML файлы именно так, разом, то значит многие существующие системы потенциально подвержены DoS атакам (если подсовывать им слишком большие файлы).
Ну за всех говорить не стоит. Опять же Целесообразность SAX или DOM зависит от задачи. Опять же идет не потоковая обработка, а событийная - что уже намного проще и лучше.
Если кто-то не умеет, не хочет думать, то это не проблема XML - как говорится кадры решают все.


Цитата:
Сообщение от Ludwig Посмотреть сообщение
* Есть тенденция заменять базы данных статическими XML–файлами, при том, что программисты ни в какую не хотят понять главное предназначение СУБД: не хранение данных, а обеспечение параллельного доступа к ним из разных процессов, с атомарными операциями. Хранить данные можно как угодно, хоть на перфокартах выгрызать зубами, но параллельный доступ и атомарные операции — это очень серьезная вещь, для которой и создаются СУБД.
Ну это опять из серии - заставь дурака богу молиться - он себе и лоб расшибет. Или из серии молотка и гвоздя.

В то время как все зависит от задачи. И БД могут использоваться по разному и XML. Опять же кадры решают все.

Цитата:
Сообщение от Ludwig Посмотреть сообщение
* Не факт, что имея некие стандартные тулы для разбора XML файлов облегчается жизнь. Попробуйте перевести в XML конфиг. файлы в /etc, а потом попробуйте поработать с ними, скажем найти домашнюю директорию пользователя по его имени в /etc/passwd или же найти алиас хоста в /etc/hosts. С grep/cut/awk и прочими это выглядит проще и понятнее чем с xpath.
А попробуйте через проперти файлы сделать что-то более сложное в плане конфигурации, да так что-бы самому не запутаться потом. Возьмите для примера ant или maven файлы. Или задать переменное число повторяющихся конфигурационных параметров, да еще со связями между ними (когда параметры надо объединять в группы). Я не говорю что это не возможно, но в XML это будет выглядеть намного стройнее и яснее

Цитата:
Сообщение от Ludwig Посмотреть сообщение
* Наконец: XML файлы невозможно конкатенировать просто так, нельзя наращивать их на манер лог-файла, нельзя вырезать куски. Для этих операций всегда требуется прочесть весь файл и понять его структуру. Для лога или конкатенации например, придется кроме того стирать закрывающие тэги и записывать их снова.
Опять же все зависит от задачи. Если вам вдруг надо вставить что-то внутрь большого XML и вы не можете это сделать, то наверно XML не самый лучший вариант для вашей задачи.

Вообщем вопрос в основном где и как целесообразно использовать XML. Если он не подходит для большинства ваших задач, это еще не значит что он ни для чего не пригоден.

ИМНО 90% девелоперов не понимают и не умеют работать с многопоточностью - это не значит что многопоточность порочна так ведь?

Почти Столько же не понимают сути указателей.

Половина не понимает разницу между String и StringBuffer в Java.

Это я все к чему - думайте прежде чем что-то использовать, а не хватайтесь за хорошо известный молоток.
Sherwood вне форума  
Старый 20.05.2008, 13:42   #9
дядечка предпенсионного возраста
 
Аватар для Oleg123
 
Откуда: Milky Way
Сообщений: 3,137
Благодарности: 2,298 в 988 сообщениях Поиск благодарностей Oleg123
По умолчанию Re: XML: pros and cons

Имхо на ХМЛ именно так и надо смотреть как на универсальную вещь и появился на свет он как раз в поиске универсальности. То есть да, он может быть обо всем, но это не обязательно означает ни о чем. О чем русский язык например.
То есть это наверно в перую очередь язык межсистемного общения ибо нет ничего более подходящего (устраивающего) для этой цели.
Нужно ли все данные хранить в ХМЛ, не обязательно, но где то оно приятнее, например мне персонально читать понятнее ХМЛ конфиг файл, чем тот же плоский конфиг.
К тому же то что ХМЛ ни о чем, это неправда, возьми любую продвинутую ХМЛ схему и сразу станет О ЧЕМ.
Согласен, основая проблема же в медленном доступе к хмльному контенту ибо по определению это ДОКУМЕНТ или попросту текст файл. Но наверняка идеи по ускорению этого доступа где-то в воздухе витают и воплощаются в жизнь, если уже не воплощены.
Я думаю будущее у ХМЛ есть.
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н.
Oleg123 вне форума  
Старый 20.05.2008, 14:12   #10
Заслуженный Участник
 
Откуда: Питер/Galway
Сообщений: 2,607
Благодарности: 2,051 в 1,184 сообщениях Поиск благодарностей Dincha
По умолчанию Re: XML: pros and cons

Ну и мои 2 копейки
Цитата:
Сообщение от Ludwig Посмотреть сообщение
* XML не является форматом хранения данных, как его теперь повсеместно используют. Он был предназначен для передачи данных и interoperability. XML — это формат write–once, то есть он не предназначен для того, чтобы записать что–то на диск, а потом временами что–то модифицировать в этом файле. А предназначен он для того, чтобы однажды вывести в поток свои данные в формате XML, чтоб кто–то это прочел из потока на том конце и преобразовал в свой формат. На этом жизнь XML–файла заканчивается.
Прекрасно подходит для контент-ауторинга, для чего и создавался: отделение данных от их представления (мана небесная по сравнению с хаосом HTML и доморощенных конверторов в него же из бинарного хлама). К БД то уже потом прикрутили докучи.
Цитата:
Сообщение от Ludwig Посмотреть сообщение
* Не факт, что имея некие стандартные тулы для разбора XML файлов облегчается жизнь. Попробуйте перевести в XML конфиг. файлы в /etc, а потом попробуйте поработать с ними, скажем найти домашнюю директорию пользователя по его имени в /etc/passwd или же найти алиас хоста в /etc/hosts. С grep/cut/awk и прочими это выглядит проще и понятнее чем с xpath.
Для ленивых E4X создали - помоему проще уже некуда.
Dincha вне форума  
Старый 20.05.2008, 18:31   #11
Заслуженный Участник
 
Откуда: Dublin
Сообщений: 1,290
Благодарности: 552 в 253 сообщениях Поиск благодарностей Ludwig
По умолчанию Re: XML: pros and cons

Oleg123, будущее у XML безусловно есть, оно уже настало

Но им явно злоупотребляют. Если у тебя простой плоский файл с одним уровнем вложенности, то заменять его XML - это overkill. Например:

Код:
127.0.0.1     localhost locahost.mydomain.com
11.12.13.14   myhost    myhost.mydomain.com
Теперь переводим:

Код:
<?xml version="1.0" encoding="ISO-8859-1"?>
<hosts>
  <host type="IPv4">
    <address>127.0.0.1</address>
    <aliases>
      <alias>localhost</alias>
      <alias>localhost.mydomain.com</alias>
    </aliases>
  </host>
  <host type="IPv4">
    <address>11.12.13.14</address>
    <aliases>
      <alias>myhost</alias>
      <alias>myhost.mydomain.com</alias>
    </aliases>
  </host>
</hosts>
Это проще читать?! Ну нет, спасибо, мне проще первое
Ludwig вне форума  
Старый 20.05.2008, 22:24   #12
Заслуженный Участник
 
Аватар для Sherwood
 
Сообщений: 636
Благодарности: 604 в 258 сообщениях Поиск благодарностей Sherwood
По умолчанию Re: XML: pros and cons

Цитата:
Сообщение от Ludwig Посмотреть сообщение
Oleg123, будущее у XML безусловно есть, оно уже настало

Но им явно злоупотребляют. Если у тебя простой плоский файл с одним уровнем вложенности, то заменять его XML - это overkill. Например:

Код:
127.0.0.1     localhost locahost.mydomain.com
11.12.13.14   myhost    myhost.mydomain.com
Теперь переводим:

Код:
<?xml version="1.0" encoding="ISO-8859-1"?>
<hosts>
  <host type="IPv4">
    <address>127.0.0.1</address>
    <aliases>
      <alias>localhost</alias>
      <alias>localhost.mydomain.com</alias>
    </aliases>
  </host>
  <host type="IPv4">
    <address>11.12.13.14</address>
    <aliases>
      <alias>myhost</alias>
      <alias>myhost.mydomain.com</alias>
    </aliases>
  </host>
</hosts>
Это проще читать?! Ну нет, спасибо, мне проще первое
Но ведь можно и так:

Код:
<?xml version="1.0" encoding="ISO-8859-1"?>
<hosts>
  <host type="IPv4" address="127.0.0.1">
      <alias>localhost</alias>
      <alias>localhost.mydomain.com</alias>
  </host>
  <host type="IPv4" address="11.12.13.14">
      <alias>myhost</alias>
      <alias>myhost.mydomain.com</alias>
  </host>
</hosts>
А если еще что либо кроме алиасов надо задать, то с CSV особо не разбежишся
ну а вообще на вкус и цвет....
Sherwood вне форума  
Старый 21.05.2008, 06:47   #13
Заслуженный Участник
 
Откуда: Dublin
Сообщений: 1,290
Благодарности: 552 в 253 сообщениях Поиск благодарностей Ludwig
По умолчанию Re: XML: pros and cons

Sherwood, напомню, что Юниксу и файлам, которые лежат у него в /etc, скоро исполнится уже 40 лет, и почему-то все 40 лет они всех устраивают
Ludwig вне форума  

Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок
Старый 21.05.2008, 08:32   #14
Заслуженный Участник
 
Аватар для Sherwood
 
Сообщений: 636
Благодарности: 604 в 258 сообщениях Поиск благодарностей Sherwood
По умолчанию Re: XML: pros and cons

Цитата:
Сообщение от Ludwig Посмотреть сообщение
Sherwood, напомню, что Юниксу и файлам, которые лежат у него в /etc, скоро исполнится уже 40 лет, и почему-то все 40 лет они всех устраивают
Так кто спорит - не трогай то, что работает.
А вообще - как вы себе представляете полное изменение концепции конфигурации (в любой) системе, у которой миллионы инсталляций, и под которую написаны тонны софта зависиммого от этой конфигурации.

Мой основной поинт - технологию надо использовать понимаючи и творчески, так же как надо понимать поставленную задачу . Одного и того же конечного результата можно достигнуть разными путями/ методами, даже с использованием одной технологии. Разница будет в ээфективности, надежности, расширяемости, поддержке... и далее по списку.

Утверждать же что технология никуда не годится, только на основании того, что она не пригодна для некоторого круга задач, или была использована через не есть правильно
Sherwood вне форума  
Благодарность от:
Oleg123 (21.05.2008)
Старый 21.05.2008, 09:05   #15
Заслуженный Участник
 
Откуда: Dublin
Сообщений: 1,290
Благодарности: 552 в 253 сообщениях Поиск благодарностей Ludwig
По умолчанию Re: XML: pros and cons

Sherwood, если от общих слов к конкретным примерам, то случай с /etc/hosts очень показателен. Многие так и говорят: а что в этом такого? (в смысле если заменить его на XML) "Такого" в этом то, что это ужасно - взять и одним махом ухудшить и читабельность, и писабельность, добавить избыточности. Подобное сейчас происходит везде.

Sun между прочим уже заменил inetd и всю систему сервисов на какое-то [отмодерировано] с тонной XML файлов и тонной дополнительных утилит. Это вместо одного файла и никаких утилит. Если вдруг что-то пойдет не так (бывало со мной) или если сервер под атакой к примеру, то ты пропал с этим новым сановским шедевром.

И так везде и во всем. У меня уже симптомы паранойи: если какой-то более-менее серьезный продукт основан на XML - подчеркну "основан" - я уже знаю, что с ним будут проблемы, возникающие из ничего, просто так. Назло Пока исключения не попадались.

Ludwig добавил 21.05.2008 в 10:09
Gnome - еще один пример... стоит только машине зависнуть и перезапуститься "не так", как твой десктоп уже не возвращается, падает с какими-то ужасными ошибками. Потом оказывается что в каком-то XML файле что-то попортилось. Гном криво написан? Это само собой, но я почему-то не удивляюсь, что кривые программисты выбрали кривой и error-prone по своей сути способ хранения конфигурации - XML.

Последний раз редактировалось tadpole, 22.05.2008 в 19:45. Причина: удалён мат
Ludwig вне форума  
Закрытая тема



Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать на сообщения
Вы не можете добавлять вложения
Вы не можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщ.
Вопрос к IT Pros: Advanced Financial Modelling Mr.Val IT и Связь 24 02.06.2008 15:42
Сохранить Service History pro and cons. zdragon Автотранспорт 1 02.01.2008 01:59
бюджетные DSRL камеры: Pro. and Cons. zdragon Общие темы 44 29.05.2007 17:48
Vnimaniju IT pros: WP/Visa dlja IT iz Rossii Greystones Работа в Ирландии 1 05.08.2004 17:14


Часовой пояс GMT, времени сейчас: 12:03.


vBulletin®, Copyright ©2000-2025, Jelsoft Enterprises Ltd., Русификация: zCarot, Vovan & Co
©2003-2025 VirtualIreland.ru - Виртуальная Ирландия