JSmarty - что вы думаете?

Solid

Drosera anglica
JSmarty - что вы думаете?

Добрый вечер.
Совсем недавно вышла библиотека написанная на JS, которая в точности повторяет Smarty template engine написанный на PHP. Если вы ещё не видели кода, то можно посмотреть это творение здесь: http://wiki.10kii.com/JSmarty/
К сожалению, доментация пока что написана на одном японском языке, но всё же использовать же можно... Ведь нам главное не документация, или же описание... самое важное в данном случае -- код, и то что данную технологию можно применить к новым web2.0 framework'ам.
Очень интересно, что скажут разбирающиеся и знающие люди... стоит ли использовать данную библиотеку, или же всётаки остаться на стороне XSLT (AJAXSLT)?
Сможет ли эта библиотека пробиться до версии >0.1?
Что Вы вообще можете сказать по данной теме, т.е. конкретно "двусторонняя шаблонизация клиент-сервер"?
 

AmadMike

Новичок
написанна на одном японском языке
:)
Не знаю конечно, разбираться с кодом лень. Но вообще если алгоритм разумный и не перегружает браузер, то вполне можно попробовать использовать. Что касается двусторонней шаблонизации, то какой в ней тогда смысл, точнее что конкретно вы хотите шаблонизировать на стороне сервера и что на стороне клиента.
А в итоге получится наверное тот же xslt, только без использования xpath (хотя не знаю может он там и используется), что может усложнить задачу. За xslt будущее, тем более что современные браузеры его полностью поддерживают и уж я думаю в них встроен более отлаженный и рациональный механизм преобразований нежели в этой библиотеке. Потом в том же PHP есть библиотека xsl, которая позволяет производить точно такую же трансформацию на стороне сервера без дополнительных наворотов. Лично я сам не так давно задумался об xslt (раньше просто как то не обращал внимания) и пришел к выводу что это самое оптимальное решение.
 

Solid

Drosera anglica
AmadMike
Единственное, что меня пока-что останавливает использовать XSLT в качестве двусторонней шаблонизации, это то, что он поддерживается далеко не всеми браузерами. Конечно, если смотреть в перспективу, то да, конечно, XSLT когда-нибудь да будет на Олимпе, но когда? Не думаю, что совсем уж скоро... через год-два, а это, между прочим, срок, и в этот срок надо попытаться найти альтернативу XSL преобразованию.

Я вижу следующие плюсы в использовании Smarty (в частности JSmarty):
1) Можно писать код всего лишь один раз, а не переписывать его повторно для клиента;
2) Как уже говорилось выше: поддерживается далеко не всеми браузерами (к примеру KHTML браузеры вообще, пока что, обделены данной технологией... а это больше половины Mac-клиентов);
3) Если сравнивать по производительности AJAXSLT и JSmarty, то JSmarty далеко впереди (конечно же, функционала меньше, но всё таки, требования к шаблонам не такие высокие, что бы требовались бы все возможности XSLT);
4) ещё много чего...

Из минусов вижу:
1) Отсутствие стандартизации;
2) Возможность писать кривой код (XHTML);
3) Конкретно по JSmarty: пока что ещё не ясно, будет ли этот проект развиваться дальше? насколько стабильно работает? Т.е. ещё много неясностей, которые хотелось бы выяснить...
Из-за чего и была создана данная тема.
 

AmadMike

Новичок
Хм. Ну тогда надо искать в нете инфу по этим JSmarty.

2) Возможность писать кривой код (XHTML);
Всмысле писать кривой код?

далеко не всеми браузерами
Ну не знаю, если посмотреть статистику по рунету, то в принципе большинство используют IE6, IE5.5, Mozilla, ну Opera 7 единственная которая не поддерживает, из Mozilla я думаю почти 90% - FF. Opera 7 довольно быстро заменится у многих на Opera 9. Ну а mac'и используют не так много людей, потом если не ошибаюсь Safari поддерживает XSLT (хотя может я не прав, не помню уже).
Так что можно спокойно использовать XSLT и AJaX для этих браузеров (и развивать функциональность сайта в этом направлении), а для несовместимых браузеров делать трансформацию на стороне сервера да еще и шаблон другой сделать (чтобы корректно отображался), что без труда реализуется на xslt, с урезанной функциональностью, чему примером могут служить сервисы google в частности gmail.
Я сам недавно обратил внимание на все эти технологии и пришел к выводу, что можно даже в принципе пожертвовать небольшой частью аудитории в пользу новых технологий, иначе прогресс будет сильно тормозиться, старые браузеры уже и так ужасно тормозят развитие, одно только if (document.getElementByID) чего стоит =)
Ну и в конце концов можно написать свой класс (аналог xpath) для доступа к структуре сайта через DOM.
 

Solid

Drosera anglica
Всмысле писать кривой код?
К сожалению, используя Smarty такая возможность есть... т.е., принципе, бывают случаи, когда случайно ошибаешься... и в итоге получается кривой XHTML код: или закрывающей кавычки не хватает, или тег не закрыт. Всякое бывает. Вот с XSLT подобные дела уже не пройдут. Моментально сформируется ошибка о том, что код содержит синтаксическую ошибку. Другое дело, в XSLT 1.0 (самый распространённый вариант) нет поддержки DTD, т.е. ошибки в коде всё таки могут присутствовать... хотя такие "вещи" исправляются обычной проверкой через Tidy.

В общем, Вы смогли меня до конца убедить, что всё таки НАДО двигать прогресс, раз он сам не хочет двигаться.
Выбор, вновь, пал на XSLT, чему я очень рад.
А Smarty -- библиотека, которая только развращает.
 

AmadMike

Новичок
Другое дело, в XSLT 1.0 (самый распространённый вариант) нет поддержки DTD
Не знаю, все работает как должно, вот кусок моего кода (после преобразования с помощью xsltlib появляется DTD)
PHP:
<xsl:stylesheet
	version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns="http://www.w3.org/1999/xhtml"
>
	<xsl: output 
		xmlns="http://www.w3.org/TR/xhtml1/strict"
		doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
		doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
		encoding="UTF-8"
		method="xml"
		version="1.0"
		media-type="text/html"
	/>
А Smarty -- библиотека, которая только развращает.
:)
Я вообще считаю, что стандарты - самая замечательная вещь, можно даже сказать в каком-то смысле объединяет людей, а так все будут писать как хотят и что хотят и поди разберись в чужом коде.
 
Сверху