Últimamente me estoy interesando mucho por el uso de frameworks . Esta es su definición según la wikipedia:

La palabra inglesa framework define, en términos generales, un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular, que sirve como referencia para enfrentar y resolver nuevos problemas de índole similar.

En el desarrollo de software, un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos de software concretos, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas, bibliotecas y un lenguaje interpretado entre otros programas para ayudar a desarrollar y unir los diferentes componentes de un proyecto.

Usarlos tiene ventajas y desventajas:

  • Ventajas: rapidez, funcionamiento probado, amplia documentación (habitualmente) y soporte de la comunidad de usuarios correspondiente.
  • Desventajas: si no tienes conocimientos suficientes, se hace a veces más complicado modificar los comportamientos por defecto, especialmente en los frameworks de PHP. Al usar frameworks ajenos, tienes que seguir las reglas de otra gente para que funcione correctamente, cosa que no te pasaría con tu propio sistema. También corres el riesgo de usar algo que funciona aunque no sepas por qué y que eso te pase factura a la larga.


Al principio era un poco reacio a usar código de otra gente, para intentar solucionar yo mismo los problemas y así aprender lo más posible de cada situación. Ese enfoque está bien cuando no tienes problemas de tiempo y tu objetivo principal es aprender (en otras palabras, cuando no estás trabajando). Sin embargo, cuando ya tienes unos ciertos conocimientos, usar material de otra gente puede aumentar considerablemente tu productividad.

Maquetar en CSS, por ejemplo, puede llegar a ser muy repetitivo. Se pierde mucho tiempo tontamente si cada vez que maquetas una página tienes que estar preocupándote de limpiar bien los floats, que la suma de los anchos de las columnas no sea excesiva y se descuadre o la aparición de los más que habituales problemas con Internet Explorer.

La solución es tener un framework de CSS que seguir para automatizar el proceso. Puedes hacerte uno tú mismo pero, ¿para qué hacerlo cuando ya hay muchos disponibles que funcionan a la perfección, están testados en muchos navegadores y sistemas operativos y son gratuitos?

Yo he probado el 960 grid system y va de maravilla. Su funcionamiento es muy sencillo, con usar la nomenclatura de clases establecida en 5 minutos tienes una página maquetada. Además incluye ciertos extras como resets de CSS. Otro muy usado es el YUI de Yahoo!

En cuanto a JavaScript, usar librerías como jQuery o MooTools hace que añadir interactividad a las páginas sea mucho más fácil. Existen cientos de plugins para galerías de fotos, menús desplegables, efectos visuales… Usando estas librerías, el uso de Flash se hace cada vez menos necesario.

En PHP existen muchísimas opciones, por lo que he visto, la gran mayoría siguiendo el patrón MVC (Modelo-Vista-Controlador). He probado CakePHP porque, según leí, era la más fácil de usar para los no expertos. Una vez que te acostumbras a nombrar cada elemento siguiendo sus pautas, se pueden conseguir cosas bastante avanzadas muy fácilmente. La documentación de su página, que conste, no me parece muy buena: explican lo fácil que es hacer un determinado ejemplo siguiendo unos pasos, pero una vez que quieras hacer algo que no sea lo del ejemplo, la documentación es más que escasa.

No descarto probar en un futuro otras opciones, como pueden ser Symfony o Zend.

Por último están los CMS (content management system o sistemas de gestión de contenidos). Estos son un tipo de frameworks muy orientados hacia facilitar a los usuarios que ellos mismos gestionen su página. WordPress (que empezó como sistema de blogs), Drupal o Joomla! son algunos de los más conocidos. Cuentan todos con mucha documentación, plantillas, plugins y todo tipo de recursos. Esta página que lees está hecha en Joomla!, ya que es el sistema con el que estoy más familiarizado. Tengo pendiente probar WordPress, ya que cuenta con muchísimos usuarios debido a su éxito entre los bloggers. Actualización: Mi antiguo blog estaba en Joomla, ahora uso WordPress.

Hasta aquí esta breve introducción al uso de frameworks en el diseño web. Si algún visitante tiene experiencia con algún otro framework, se admiten sugerencias y opiniones. ¿Cuál es el mejor para cada lenguaje?

Deja un comentario

Facebook