Три довода в пользу XSLT

Три довода в пользу XSLT

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

Недавно подумал, что я до сих пор не использую Ruby on Rails только поэтому. Да, абсурд! Продолжаю использовать морально устаревший и имеющий непонятное будущее PHP ТОЛЬКО потому, что в нем имеются нормальные средства для работы с XML/XSL. Однажды, холодным уральским летом шел на работу, подстегиваемый ветром и осадками типа «снегодождь», и пришел к выводу, что есть минимум три момента в пользу XSLT и три — против. Сначала о плюсах:

1. XSLT — это XML 

Следовательно, исходный текст с помощью средств работы с XML может быть модифицирован, построен с нуля, записан куда-нибудь, оставаясь при этом неким подобием исполняемой программы. Иными словами, поддерживается метапрограммирование в самой простой его форме (генерация кода). Эту особенность я активно использовал при создании CMS, которой активно сейчас пользуюсь. Там имеет место переопределение именованных шаблонов (тех, что xsl:template name="blabla"), что позволяет повторно использовать код преобразований.

2. XSLT — это W3C стандарт

Следовательно, я могу быть уверен, что не ограничен текущей платформой, и что с наступлением окончательного развала PHP (или любого другого языка) смогу использовать предыдущий опыт более полно. Правда, стандарт — стандартом, но есть одна лазейка. Фактически — две: первая — это EXSLT, некий набор расширений обычного XSLT, добавляющий ряд важных функций, вторая — в стандарте обозначены возможности подключения любых внешних extensions. В частности, в PHP-инкарнации можно использовать практически любые PHP-функции. Эти лазейки опасны тем, что легко и непринужденно подсаживают тебя на их использование. Переносимость при этом, естественно, страдает.

3. XSLT идейно близок к HTML

И поэтому хорош в веб-разработке. Фактически, он способен заменить компонент View MVC-приложения, поскольку 1) предназначен для визуализации, 2) имеет, точнее — представляет собой язык программирования со своими правилами и особенностями, позволяющий (и не позволяющий) вносить требуемые вариации в конечный результат. Благодаря этому, есть возможность «разгрузки» прочих компонентов приложения и возможность того самого отделения бизнес-логики от презентационной.

Так, ремарка: Если бы были какие-либо тенденции к отказу от HTML в интернете, актуальность XSLT тут была бы ниже. Однако, HTML — наше все...

Кроме того...

Есть в XSLT много мелочей, от которых довольно трудно отказаться: простая работа с кодировками, наличие качественных IDE, достаточно высокая производительность с большим потенциалом для многоуровневого кэширования...

И наконец...

Беглое знакомство с XSLT2.0 и XPath 2.0 лишь укрепило меня в моей приверженности этой технологии. Больше программирования, больше красоты, меньше неудобств. Именно с XSLT2.0 связаны мои движения в сторону Groovy и JRuby — ибо на сегодня лишь Java и .NET более-менее готовы работать в этом направлении.

Комментарии (2)

mem: 1155 total: 32 module: 23 xsl: 5