![]() |
|
IT и Связь Обсуждение "айтишных" вопросов и средств связи |
![]() |
|
Опции темы | Опции просмотра |
![]() |
#1 |
Заслуженный Участник
|
![]()
Тим Брей, один из создателей стнадарта XML, как-то раз написал нашумевшую заметку XML Is Too Hard For Programmers, затем решил разбавить свой пессимизм такой заметкой Why XML Doesn't Suck. Обе интересные.
Нашел еще более детальное исследование, на которое часто ссылаются (требуется регистрация): The Pros and Cons of XML Вроде все аргументы PRO имеют смысл. Все красиво на словах - данные и метаданные вместе, interoperability, читабельность для людей и для машин одновременно, единый стандарт в частности для представления Юникода, представлять можно как "древовидные" данные, так и "плоские", итд итп. Слишком большие файлы? Не беда, используйте сжатие, например на транспортном уровне. Сложно парсить? Не беда, есть библиотеки уже практически для всех языков. Нет приличных XML-редакторов? Не беда, будут :) И все таки всякий раз имея дело с XML файлами возникает какое-то интуитивное отторжение. "Черт, опять XML!" - думаю, когда есть задача с исходными данными в XML. Кажется что-то тут фундаментально, в корне не так. Что именно? |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#3 |
Заслуженный Участник
|
![]()
Первая заметка обсуждалась на Слешдоте, и там есть хорошие комментарии. Например:
Latex: $x^5+3x-9=0$ MathML: <mrow> <mrow> <msup> <mi>x</mi> <mn>5</mn> </msup> <mo>+</mo> <mrow> <mn>3</mn> <mo>⁢</mo> <mi>x</mi> </mrow> <mo>-</mo> <mn>9</mn> </mrow> <mo>=</mo> <mn>0</mn> </mrow> И это называется readability?! ![]() |
![]() |
![]() |
#4 |
дядечка предпенсионного возраста
|
![]()
Все это дело привычки, если бы вас с 5и лет читать и писить на XML учили, то имхо таких вопросов бы не возникало.
Персонально считаю что XML это если не лучшая, то покрайней мере в десяке лучших вещей случившихся в компьютерном мире за всю его историю существования. Имхо особенно интересны XML схемы, ибо ничего более универсального и лаконичного для превращения хаоса в некую модель не придумано.
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
![]() |
![]() |
#5 |
Пенсионер всея Ирландея
|
![]()
XML делался для всего, то есть он ниочем. Слишком общий и универсальный, отсюда и сложности. Будущего у него, ИМХО, нет.
__________________
«Борітеся — поборете!» |
![]() |
![]() |
#6 |
Спам-робот
|
![]()
Собственно у всех универсальных вещей такая судьба - Жабу вот еще можно вспомнить...
У меня такое ощущение что все это делается для того чтобы бабок накосить. Ибо сказано - "Хочешь по-настоящему разбогатеть - придумай новую религию"
__________________
My Church is Black... |
![]() |
![]() |
#7 |
Заслуженный Участник
|
![]()
Мои аргументы против 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 файлы невозможно конкатенировать просто так, нельзя наращивать их на манер лог-файла, нельзя вырезать куски. Для этих операций всегда требуется прочесть весь файл и понять его структуру. Для лога или конкатенации например, придется кроме того стирать закрывающие тэги и записывать их снова. |
![]() |
![]() |
#8 | |||||
Заслуженный Участник
|
![]()
Мои 5 копеек внизу.
Цитата:
Второе - конфиг файлы и билд - но об этом ниже. Цитата:
Если кто-то не умеет, не хочет думать, то это не проблема XML - как говорится кадры решают все. Цитата:
В то время как все зависит от задачи. И БД могут использоваться по разному и XML. Опять же кадры решают все. Цитата:
Цитата:
Вообщем вопрос в основном где и как целесообразно использовать XML. Если он не подходит для большинства ваших задач, это еще не значит что он ни для чего не пригоден. ИМНО 90% девелоперов не понимают и не умеют работать с многопоточностью - это не значит что многопоточность порочна так ведь? Почти Столько же не понимают сути указателей. Половина не понимает разницу между String и StringBuffer в Java. Это я все к чему - думайте прежде чем что-то использовать, а не хватайтесь за хорошо известный молоток. |
|||||
![]() |
![]() |
#9 |
дядечка предпенсионного возраста
|
![]()
Имхо на ХМЛ именно так и надо смотреть как на универсальную вещь и появился на свет он как раз в поиске универсальности. То есть да, он может быть обо всем, но это не обязательно означает ни о чем. О чем русский язык например.
То есть это наверно в перую очередь язык межсистемного общения ибо нет ничего более подходящего (устраивающего) для этой цели. Нужно ли все данные хранить в ХМЛ, не обязательно, но где то оно приятнее, например мне персонально читать понятнее ХМЛ конфиг файл, чем тот же плоский конфиг. К тому же то что ХМЛ ни о чем, это неправда, возьми любую продвинутую ХМЛ схему и сразу станет О ЧЕМ. Согласен, основая проблема же в медленном доступе к хмльному контенту ибо по определению это ДОКУМЕНТ или попросту текст файл. Но наверняка идеи по ускорению этого доступа где-то в воздухе витают и воплощаются в жизнь, если уже не воплощены. Я думаю будущее у ХМЛ есть.
__________________
Ну, разумеется, - подхватил Степан Аркадьич. - Но в этом-то и цель образования: изо всего сделать наслаждение. (c) Толстой Л.Н. |
![]() |
![]() |
#10 | ||
Заслуженный Участник
|
![]()
Ну и мои 2 копейки
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
#11 |
Заслуженный Участник
|
![]()
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> ![]() |
![]() |
![]() |
#12 | |
Заслуженный Участник
|
![]() Цитата:
Код:
<?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> ну а вообще на вкус и цвет.... |
|
![]() |
![]() |
#13 |
Заслуженный Участник
|
![]()
Sherwood, напомню, что Юниксу и файлам, которые лежат у него в /etc, скоро исполнится уже 40 лет, и почему-то все 40 лет они всех устраивают
![]() |
![]() |
Зарегистрируйтесь или войдите под своим именем, чтобы спрятать этот рекламный блок |
![]() |
#14 | |
Заслуженный Участник
|
![]() Цитата:
А вообще - как вы себе представляете полное изменение концепции конфигурации (в любой) системе, у которой миллионы инсталляций, и под которую написаны тонны софта зависиммого от этой конфигурации. Мой основной поинт - технологию надо использовать понимаючи и творчески, так же как надо понимать поставленную задачу . Одного и того же конечного результата можно достигнуть разными путями/ методами, даже с использованием одной технологии. Разница будет в ээфективности, надежности, расширяемости, поддержке... и далее по списку. Утверждать же что технология никуда не годится, только на основании того, что она не пригодна для некоторого круга задач, или была использована через ![]() |
|
![]() |
Благодарность от: | Oleg123 (21.05.2008) |
![]() |
#15 |
Заслуженный Участник
|
![]()
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. Причина: удалён мат |
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщ. |
Вопрос к 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 |