LINUX.ORG.RU
ФорумTalks

Почему везде пихают XML?


0

0

Вот всё никак не могу понять, зачем вообще нужны эти выкидыши SGML?
Куда ни плюнь: сайты на HTML, всякие RDF, RSS, SVG, XMPP (он же Jabber), огромное количество конфигов программ на XML, в C# вовсю вкручивают его нативную поддержку (а уж комментарии на XML это просто нечто), даже новый RT Fact с главной страницы и тот юзает (кто бы мог подумать) XML3D. Вопрос: почему?
Он же крайне избыточен, неоднозначен, сложно парсится как программами, так и (ещё более сложнее) людьми, а его мифическая гибкость никому не сдалась и в одном проценте софта, его использующего.
Есть же намного более удобные YAML, JSON, sexp`ы, наконец. FFUUU~

★★★★★

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

Кроме того, XML легко пропусткать через текстовые обработчики.

Кроме того, на XML можно писать DTD-блоки, которыми можно проверять валидность структуры, описанной в XML. Так что, придумав структуру документа, и описав его через DTD, можно гарантировать, что XML-документ, прошедший DTD-проверку, содержит именно то что нужно, и с ним можно работать.

xintrea
()
Ответ на: комментарий от e3d08dff

Что из HTML, RDF, RSS, SVG, XMPP конфиги?

Deleted
()
Ответ на: комментарий от xintrea

> Кроме того, на XML можно писать DTD-блоки [...]
Вроде как, они уже устаревшими считаются, вместо них теперь схема. Однако это действительно важное замечание, у других такого нет.
Эх, похоже, опять всё утыкается в стандартизации и лучшую поддержку (что бесспорно нельзя отрицать).

mix_mix ★★★★★
() автор топика
Ответ на: комментарий от e3d08dff

> Хорошо, но зачем это все в конфигах?

Конфиги сложные бывают: большая степень вложенности, переменное количество элементов. Их, такие сложные, нужно парсить. Нужно валидировать. Нужно преобразовывать при обновлении софта. XML поставляет для всего этого готовую, проверенную, и довольно удобную инфраструктуру.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

>довольно удобную инфраструктуру.

Могло бы быть и удобнее, и читаемей, и не таким избыточным. Но уже, к сожалению, ничего не изменить.

e3d08dff
()
Ответ на: комментарий от mono

>а то что XML сложно парсить - это надуманная проблема.
книжечки-то почитай про контекстные грамматики и регулярные и подумай.

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

>> а то что XML сложно парсить - это надуманная проблема

книжечки-то почитай про контекстные грамматики и регулярные и подумай

И давно регулярные языки стали допускать конструкции произвольной степени вложенности? :D

Manhunt ★★★★★
()
Ответ на: комментарий от alexmaru

> Но зачем это в миниатюрные конфиги пихают, где не более десяти строчек?

Унификация?

Manhunt ★★★★★
()
Ответ на: комментарий от Gleb-ax

> Ну... это... ня

Проприетарщина, да еще и платная для коммерческого использования. Какое уж тут «ня».

Manhunt ★★★★★
()
Ответ на: комментарий от Gleb-ax

С таким лицензированием эта технология никогда не получит wide adoption. RIP.

Manhunt ★★★★★
()
Ответ на: комментарий от Manhunt

>И давно регулярные языки стали допускать конструкции произвольной степени вложенности? :D
для простых конфигов степень вложенности и не нужна. а так конечно нет.

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

> для простых конфигов

не пойму, то ЛОР торт, то ли в треде засилие троллей. Цитирую ОП ещё раз:

Куда ни плюнь: сайты на HTML, всякие RDF, RSS, SVG, XMPP (он же Jabber)

это всё простые конфиги?

name_no ★★
()

> Он же крайне избыточен, неоднозначен, сложно парсится как программами, так и (ещё более сложнее) людьми, а его мифическая гибкость никому не сдалась и в одном проценте софта, его использующего.

Поверь, XML прост.

XML - это способ сделать сложное простым. Мир устроен сложно. XML позволяет одолеть эту сложность, хоть и не полностью (как и любой инструмент).

ip1981 ☆☆
()
Ответ на: комментарий от ip1981

Другое дело, когда XML ставляют куда-нибудь, имея цель лишь освоить сам XML. Тогда часто получается как из пушки по воробьям.

ip1981 ☆☆
()

юзайте ASN.1 и будет вам щастье

XML - какашка

Harald ★★★★★
()

> Есть же намного более удобные YAML, JSON, sexp`ы, наконец. FFUUU~

потому что XML удобен для типовых задач. Например, SOAP. Сделал схему, засунул в WSDL, и готов самодокументированный интерфейс для веб-приложения. Натравил на неё XMLBeans или другой генератор, и получил объектный интерфейс на нужном языке. И забыл про всякие долбопарсеры как про страшный сон.

Система отлажена и работает. И только этим заруливает в минуса всё остальное.

Для чего-то простого можно использовать JSON, тоже достаточно удобно, но не ентерпрайз уже — на автомате по схеме не проверить, и надо следить за всяким.

Остальной неформат — для задротов.

adarovsky ★★★★
()
Ответ на: комментарий от Deleted

>В этом JSON ещё за запятыми следить (между прочим, это избыточность, если написано отдельными строчками). Такое счастье при выводе в цикле ещё и проверять, последний ли это элемент… :)

Ты ещё сортировки руками заново пиши :)

http://www.json.org/ — после описания грамматики есть парсеры для всего, что шевелится.

adarovsky ★★★★
()
┌───────────────────┐
│ Это тред детектор │
└───────────────────┘
Deleted
()
Ответ на: комментарий от adarovsky

Парсеры и для XML есть, это неожиданно, да :) Но раз уж про избыточность сказали, то что бы и не упомянуть.

Deleted
()
Ответ на: комментарий от Deleted

> Парсеры и для XML есть, это неожиданно, да :) Но раз уж про избыточность сказали, то что бы и не упомянуть.

по-хорошему, при работе с XML вообще не надо думать про всякие парсеры и прочую херню. Получил пакет — разобрал в объект. Исключение — многомегабайтные портянки, которые желательно разбирать XMLStream'ом. Но туда отлично ложится рекурсивный разбор. Заодно и правильность проверяется. Хотя уже приседать надо. Но и задача не совсем типовая.

adarovsky ★★★★
()
Ответ на: комментарий от KRoN73

>Древовидная структура в .ini? Это что-то новенькое :)

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

mono ★★★★★
()
Ответ на: комментарий от Deleted

короче, если кто не понял мою позицию:

Я ___НЕ___ противник XML. и хватит мне доказывать, что XML крут. Я и так это знаю.

mono ★★★★★
()

XML для конфигов - неудачное применение. А вот для хранения данных - лучше ещё никто не сделал.

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

Quasar ★★★★★
()

Ты лучше подумай, что ты лично можешь сделать? Те, кто могли что-то иное продвинуть, профукали момент. А теперь поздно. Сейчас каждый разработчик, который не согласен с ситуацией, может не пихать в свои программы XML. Хотя бы в конфиги. А причитать уже нет смысла.

Zubok ★★★★★
()
Ответ на: комментарий от robot12

смешно конечно, но и любую конфетку можно в говно превратить.

mono ★★★★★
()
Ответ на: комментарий от adarovsky

>потому что XML удобен для типовых задач. Например, SOAP. Сделал схему, засунул в WSDL, и готов самодокументированный интерфейс для веб-приложения. Натравил на неё XMLBeans или другой генератор, и получил объектный интерфейс на нужном языке. И забыл про всякие долбопарсеры как про страшный сон.

Все, что ты написал соершенно не относится к преимуществам XML, так как и SOAP, и WSDL, и схема точно также могут быть записаны в тех же s-expr. В результате можно будет сказать те же самые слова «потому что s-expr удобны для типовых задач». То, что ты написал — это просто рассказ, как это прикольно — описал сервис, а у тебя готовая реализация по нему сгенерировалась. Я сейчас пишу (все никак не допишу) WSDL/SOAP парсер для Emacs. XML принимаю, который сразу же в список преобразуется, а дальше со списками уже работаю. Ходили бы вместо XML списки, то ничего бы в функционале не поменялось.

P.S. Я не против XML. Вполне катит как усредненный для разных средств medium.

Zubok ★★★★★
()
Ответ на: комментарий от e3d08dff

>Хорошо, но зачем это все в конфигах?

А мисиво то что в какой нить самбе? Конфиг сквида ты видел? Это ты считаешь нормально? XML - глобально и надежно. Проверено временем. Сердито. Работает и есть не просит. Тру копирасты выбирают XML и я вместе с ними.

kklauzd
()
Ответ на: комментарий от mono

>и хватит мне доказывать, что XML крут

[facepalm.xml]

Deleted
()
Ответ на: комментарий от Zubok

>Те, кто могли что-то иное продвинуть, профукали момент. А теперь поздно. Сейчас каждый разработчик, который не согласен с ситуацией, может не пихать в свои программы XML. Хотя бы в конфиги. А причитать уже нет смысла.

Ситуация с иксемелем примерно такая же как и с Линуксом. Только в точности до наоборот.

Если Линукс такой хороший, то почему им никто не пользуется. Если бы Линук был стоящей альтернативой неужели он все так жа оставался бы малопопоулярным?

Если XML такой плохой, то почему все его используют? Если бы XML был так плох, как его описывают, а вокруг было бы намного больше подходящих решений неужели здравый смысл не победил бы?

kklauzd
()

Потому что это рынок :) ведь много данный просто так в зумель не засунуть :) а не дай боже в зумле хранить зумель ...

robot12 ★★★★★
()

Давайте все дружно перейдем на ASN.1!

yoghurt ★★★★★
()
Ответ на: комментарий от kklauzd

>Конфиг сквида ты видел?

Если не выбрасывать доку - твой XML станет невозможно читать. Да и как ты предлагаешь одном символом «комментировать» значения по умолчанию? Если конфиг без док - что ты добавишь помимо угловых скобочек?

Короче - иди в пень!

yyk ★★★★★
()

>Есть же намного более удобные YAML, JSON, sexp`ы, наконец.

есть бинарники [/thread]

devnullopers
()
Ответ на: комментарий от kklauzd

>Если Линукс такой хороший, то почему им никто не пользуется.

На серверах? В мобилах? В некоторых «мелких девайсах»? Или боярин окромя «десктопов» другой техники не видел?

Если XML такой плохой, то почему все его используют?


_ВСЕ_? Ну ты ох%ел в конец...

неужели здравый смысл не победил бы?


Посмотри в зеркало и пойми, что это невозможно в принципе

yyk ★★★★★
()
Ответ на: комментарий от e3d08dff

>Могло бы быть и удобнее, и читаемей, и не таким избыточным. Но уже, к сожалению, ничего не изменить.

Ради бога, предложи альтернативу

demmsnt
()
Ответ на: комментарий от mix_mix

>Это лишь из-за того, что его синтаксис чрезвычайно сложен и избыточен. Для остальных вполне достаточно «блокнота» с подсветкой парных скобок.

Никаких доказательств, просто высказывание.

Это как бы не проблема, для остальных тоже есть.

+1

О да, это же намного естественней и проще, чем блоковый отступ.

Вложи код Python в блоковый отступ с сохранением работоспособности

demmsnt
()
Ответ на: комментарий от yyk

>Если конфиг без док - что ты добавишь помимо угловых скобочек?

А что<!-- Это комментарий с <p>параметром</p> --> отменили?

demmsnt
()
Ответ на: комментарий от yyk

>Если не выбрасывать доку - твой XML станет невозможно читать.

<ListenToAdress> 127.0.0.1 </ListenToAdress>

Разве нуждается в какой либо документации? Оно все говорит само за себя!

А вот та куча навоза, что может оказаться в обыкновенных конфигах, стандарт которых у каждого свой. Каждый дрочит же как хочет, вот и нужны тонны документов к неиксемельным конфигам...

Да и как ты предлагаешь одном символом «комментировать» значения по умолчанию?

А вообще без символом слабо? Если в документе искомый иксемель элемент не найден - юзаем дефолтное значени.

kklauzd
()
Ответ на: комментарий от kklauzd

Можно, кстати и как:

<listen-to-address> 127.0.0.1 </listen-to-address>

Deleted
()

ты совершенно прав. Более того, если бы html был в более питонячьем стиле - цены бы ему не было. Вот, к примеру, tinycss постараюсь в серьезном проекте может задействовать, надеюсь для замены хтмл тоже что подобное появится.

kost-bebix ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.