Ну, как я и обещал, пришло время рассказать еще об одной «состоявшейся технологии», которую лично я терпеть не могу. Думаю, вы поняли из названия, что речь пойдет про XML.
Итак, что такое XML? Это язык разметки документов. Точка. Имею ли я против «расширяемого языка разметки»? Нет. Если он применяется именно для того, для чего он предназначен.
К сожалению, куча людей считает, что XML – это круто. Это, сука, крайне удобная и надежная технология. Так давайте же пихать его везде, куда можно и нельзя! Давайте пихать его в API сервисов, в конфигурационные файлы, сделаем его «стандартом» обмена данными между сервером и клиентом (в случае RIA).
Знаете, что я думаю? Я думаю, что XML повсеместно внедрили какие-то человеконенавистники. По прямому заказу какого-нибудь Люцифера. Ага.
Почему я так думаю? Потому что, блядь, тяжело придумать более тупую хуйню, чем XML в качестве формата хранения и передачи данных. Блядь, любой другой формат будет в тысячу раз лучше!
XML предназначен для разметки документов. Документов, сука. Которые обрабатывает специальная программа, а потом выводит в красивом и понятном человеку виде. Нахуя использовать XML в передаче данных лично мне непонятно, лишние телодвижения ради лишних телодвижений: берем данные, превращаем их в документ, передаем на клиент, превращаем документ в данные и пользуемся ими. Охуеть. Не проще ли взять данные, передать их и использовать данные на клиенте? Наверное, проще. Наверное, именно поэтому JSON вытесняет XML.
Те, кто работал с java-фреймворками, поймут меня – XML это зло. И чем больше XML’a в проекте, тем больше зла. Особенно отличились на поприще распространения зла appfuse и tapestry. Ну, java вообще в этом смысле отличный язык – в смысле поебаться на пустом месте.
Я так понимаю, началось все с того, что какой-то идиот придумал, что XML легко читать человеку. И легко править. Ебанаврот! Это чисто машинно-ориентированный формат, и чтобы его прочитать, надо пять раз уебаться башкой об стену, чтобы голова напоминала по форме системный блок – вот тогда, наверное, можно будет читать этот «документ» свободно.
Или он подумал, что круто будет задавать property в виде XML, потому что так можно в сам формат зашить, какие именно свойства можно объявлять и какие они могут иметь значения. В данном случае, по моему мнению, нужно немножко больше верить в человека. Наверное, не совсем уебаны работают на должностях программистов и администраторов, и уж как-нибудь прочитают документацию, перед тем как что-то писать в конфиги. А не прочитают – ну так и XML им не поможет, это клиника. Лично я думаю, что гораздо проще и естественнее писать конфиги в формате .property:
названиеСвойства = значениеСвойстваИли посмотрите в сторону YAML, который используется в рельсах – руки от зависти можно сгрызть, как все просто и понятно.
Как бы то ни было, мы, java-программисты, имеем то, что имеем. Уебанские, нечитаемые и сложные в написании конфигурационные файлы.
К счастью, ситуация начинает меняться в лучшую сторону, и здравый смысл побеждает – XML постепенно уступает место более вменяемым форматам.
Резюмируя: я не против XML. Это отличная технология, которая хороша на своем месте. Но. Я считаю, что затыкать каждую дырку XML смешно и глупо. И поэтому использование XML надо ограничить.
Хуита. Хмл таки действительно очень понятный и удобный для правки формат. В посте набор эмоций, но нет нормальной аргументации. То что вам это не нравится – ваши личные сексуальные проблемы. Проперти-файлы не помогут для конфигов с большой вложенностью. И да, я щитаю, что ХМЛ – это круто.
В твоем комментарии точно так же нет ни одного нормального аргумента, кроме «проблем со вложенностью» у .properties. Ну, тогда посмотри в сторону YAML, там эта проблема легко и непринужденно решается.
Короче, личные эмоции против личных эмоций.
Но я в своем блоге и не претендую на объективность – пишу то, что мне нравится и так, как мне нравится.
Отчасти верно, но слишком много эмоций.
Есть интересная статья, сравнивающая языки разметки в XML-cтиле и YAML-стиле: «Два типа языков разметки: языки в стиле XML и языки в стиле YAML«.
XML-языки тоже имеют свои преимущества, например:
* Для любого XML-языка (xHTML, SVG, MathML или вашего собственного) можно воспользоваться уже готовым XML-парсером;
* Можно применять стандартные действия, например, XSLT-преобразования;
* Можно создавать составные документы, например в xHTML документ можно встроить графику на SVG или MathML и т.д.
>Я так понимаю, началось все с того, что какой-то идиот придумал, что XML легко читать человеку. … Это чисто машинно-ориентированный формат
Ну да, XML-языки понятны человеку, но больше предназначены для компьютера. YAML-языки понятны компьютеру, но больше предназначены для человека.
Ну пост и есть про мои эмоции по отношению к XML. То есть, это не критическая статья, не туториал и что-нибудь в этом же роде, здесь я делюсь своими эмоциями и высказываю некоторые мысли, которые «накипели».
Спасибо за ссылку, статья неплохая, хотя несколько вторична – уже не раз встречал на английском подобные рассуждения с такими же выводами.
Что касается объективных преимуществ и недостатков XML – они есть, и те, и другие. Только вот слишком часто в мире java забывают про их недостатки, видя только достоинства.