martes, 6 de septiembre de 2011

Motores y lenguajes de platillas para PHP

Los motores de plantillas resultan hoy un componente sin el cual sería prácticamente inconcebible un framework o cms moderno. A pesar de esto el avance en lo que respecta a reducción del acoplamiento con las tecnologías utilizadas y cohesión con otros componentes del framework o cms, aun no hay tantos motores como se podría pensar.

Smarty es uno de los motores de plantillas más populares para PHP, quizá porque esta bien documentado y cuenta con un gran numero de extensiones que permiten generar varios componentes de la interfaz con solo configurar unos pocos parámetros. Aunque en lo personal considero que más que separar las capas este motor agrega otra, ya que el tratamiento de variables y el funcionamiento mismo siguen altamente relacionados con la plataforma.

En este artículo sin embargo vamos a hablar de dos tecnologías con buenas perspectivas de alcanzar un uso extenso en largo plazo.


TAL (Template Attribute Language)

Es un lenguaje de plantillas usado para generar paginas HTML y XML. Fue desarrollado inicialmente para Zope pero es usando en otros proyectos Python. Cuenta con una expansión del lenguaje METAL (Macro Expansion TAL) que permite reutilizar código de otras plantillas de un forma muy practica. Este lenguaje de plantillas cuenta ya con implementaciones en PHP, JavaScript, Java, Perl y hojas d estilos XSL. Entre sus bondades encontramos el hecho de que facilita la edición de las plantillas por diseñadores desde los editores convencionales, sin que estos necesiten mayores conocimientos del lenguaje y permite migrar de plataforma con un mínimo de modificaciones.



XML y XSL(Extensible Stylesheet Language)

XML es una de los lenguajes mas utilizado para el intercambio de datos. Tiene la ventaja de estar basado en estándares y es completamente legible por una gran varidad de interpretes, cuanta con librerías para tratamiento y manipulación de documentos en la mayoría de los lenguajes utilizados para el desarrollo web. Al ser totalmente independiente no solo de la plataforma y de las librerías de manipulación de documentos en cada lenguaje permite centrarse solo en el contenido y su semántica, delegando la forma en que los datos serán procesados y presentados a la plataforma a utilizar.

En el caso de las web los XSL constituyen un forma excelente de aplicar transformaciones a los datos convertir un documento XML que contiene un conjunto de datos en una web en cualquier formato imaginable con una mínima intervención del lenguaje o plataforma. Estas tecnologías tienen grandes posibilidades de ser algunas de las más utilizadas, con el aumento del las transferencia asíncronas de datos y el creciente numero de aplicaciones y servicio que comparten un mismo conjunto de datos a través de la red.


Pros y contras


Estos lenguajes facilitan el intercambio de datos entre distintas aplicaciones, incluso el uso de los mismos datos de formas diversas. Ademas de que los formatos de estos lenguajes obligan a los desarrolladores a crear aplicaciones cuyas capas de presentación y del modelo de negocios se encuentren realmente separadas. Algo que frecuentemente vemos al desarrollar utilizando Smarty es que los programadores o desarrolladores legan muchas cosas al motor de plantillas. Se agregan nuevas funciones, mucha de la evaluación de condicionales se embebe en la platilla, se utilizan y evalúan variables no declaradas, entre otras cosas. Todo ello no solo porque PHP lo permite si no producto de malos hábitos de programación.

A pesar la gran importancia que dan a la homologación que persiguen estas tecnologías alternas, algunas de sus implementacines desafortunadamente aun carecen de una gestión de cache robusta; pero estos es algo en lo que se esta trabajando y de figura como una alternativa para la web.

Tecnologías como estas y otras semejantes ha demostrado de sobrada manera que en las web aquellas tecnologías que se adapten mejor a una gran variedad de usos independiente mente de la plataforma ocupara con el tiempo un lugar preponderante en los desarrollos de aplicaciones y nuevas tecnologías basadas en web.


No hay comentarios:

Publicar un comentario

Escribe tus preguntas, observaciones, criticas y sugerencias, me serian de gran utilidad.