Feliz Drupal 7 (y Navidad)

Parece que el año nuevo nos va a traer, entre otras muchas cosas buenas, una nueva versión de Drupal. Por fin, el trabajo de casi tres años de desarrollo, cientos de personas, y unos cuantos miles de líneas de código nuevas, están ahí, al alcance de la mano, listos para descargar y probar.

Drupal 7 está casi a punto (RC 3 en este momento) pero los más impacientes ya llevamos meses trabajando con él, haciendo y actualizando módulos e incluso construyendo algún que otro sitio web. Parece que Papa Noel no (Definitivamente, Papa Noel no existe), pero los Reyes Magos sí que nos van a traer un Drupal 7 para jugar todo el año que viene.

Para Usuarios. (Instalar y usar)

Welcome to Drupal 7 - Screenshot

Uno de los aspectos en los que se ha puesto realmente mucho trabajo en Drupal 7 es UX, o eXperiencia de Usuario o, traducido al castellano de verdad, el que para alguien recién llegado instalar y empezar a usar Drupal sea mucho más fácil.

Si te gusta la idea de tener una web por un lado y una página de administración por otro, los overlays en javascript, un dashboard o panel de control totalmente configurable a golpe de ratón, menús contextuales por doquier, etc, esta versión de Drupal probablemente te guste mucho más.

Cosas que eran más bien complicadas en versiones anteriores como encontrar y configurar una buena gestión de imágenes, o hacer click en el título de cualquier cosa para editarla, ahora son triviales. Incluso si te pones puedes instalar módulos directamente desde la web (¿FTP, qué es eso?).

En resumen, mucho más vistoso y fácil, que viene con casi todo de serie, y sólo le falta el aire acondicionado.

Para Constructores. (Agitar antes de usar)

Ahora que ya hemos instalado Wordpress Drupal, probablemente la mitad de las cosas que trae no te interesen mucho y prefieras empezar con lo mínimo e ir añadiendo los módulos de tu elección. No hay problema, hay un perfil de instalación a tu medida (Minimal).

Y a partir de ahí, todo es ponerse. Hay unos cuantos módulos nuevos, como Dashboard, Toolbar, Overlay, Field UI, Image, Shortcut que, efectivamente, sirven para conseguir todo lo anterior pero que puedes necesitar o no.

Y es que, como dice algún filósofo a veces la riqueza está en tener muchas cosas y otras veces la riqueza está en poder desprenderte de las cosas que tienes. Pues bien, en Drupal 7 todo es desactivable, configurable y reemplazable.

Tambień tenemos (teníamos) ImageAPI, ImageCache, CCK, Tokens que son nombres de módulos que antes había que descargar e instalar y ahora ya vienen de serie. Si miramos la lista de los 10 módulos más descargados de Drupal 6, vemos que la mitad de ellos ya vienen incluidos con Drupal 7.

Y otra, realmente buena, noticia, es que hay una gran cantidad de módulos que ya están actualizados para Drupal 7. No, esta vez parece que no vamos a tener que esperar 6 meses para que todo el mundo actualice sus módulos.

Para Desarrolladores. (Porque tú quieres algo más)

Para la gente que levanta la tapa y empieza a hurgar en la máquina, quizá lo más llamativo que incluye Drupal 7, cuando empiezas a ojear el código, es la nueva capa de abstracción de bases de datos. Construida sobre la librería PDO de PHP. La mala noticia es que vas a tener que reescribir todas las queries de tus módulos; la buena es que quizá sea la última vez que tengas que hacerlo.

Otra cosa nueva y un tanto mística son las Entidades (Entity). Generalizando un poco conceptos como Nodo, Usuario, Vocabulario, por fin tenemos un API que nos va a permitir operar con todos ellos (Y con muchos a la vez, por cierto). Field API es otra cosa casi mágica que nos permite agregar campos a voluntad a cualquiera de las Entidades. Y esta API viene con UI (uy!), es decir, que se puede configurar todo desde la web. Pero por otro lado, también se puede definir todo con un módulo y un poco de código. Que sí, de verdad, que se pueden agregar campos a usuarios, vocabularios y términos, además de a los nodos.

Para los que quieren tener todo el control de lo que se está mostrando, esta es la buena noticia: Ya no imprimimos pedazos de HTML y luego los pegamos todos juntos. Ahora construimos un array de datos y luego lo formateamos. Por si alguien echaba de menos un hook_page_alter(). Y para quién lo esté pensando, sí, se pueden formatear los datos como HTML, como JSON, o como señales de humo si hace falta.

Y para quien le gustan los acrónimos, o los TLAs, un poco de OOP. En Drupal 7, aunque sigue en la línea anterior de funciones, estructuras de datos, y hooks (El DB API, que es 100% OOP es una excepción), se empieza a hacer bastante uso de Clases y Objetos. Hey, hasta tenemos Interfaces! Pero quizá lo más divertido en este sentido es que Drupal gestiona tus Clases que pueden estar en cualquier archivo, y se encarga de cargarlas cuando es necesario.

Pero, pero... como de costumbre, nada es gratis y el pequeño precio que tenemos que pagar por todas estas posibilidades es unos céntimos más de complejidad. La API de Drupal se ha hecho mucho más potente y flexible, pero también más compleja y hemos subido un par de peldaños en el nivel de abstracción. También hay caches por doquier, aviso para quien empieza a tocar código y se pregunta por qué no pasa nada. (Al final sí pasa).

En fin, que si te gusta leer código aquí se ve un poco de todo.

En resumen, Drupal 7 tiene cosas nuevas para gusto de todos, excepto quizá para los que no gustan de tener demasiadas cosas nuevas (hay gente para todo). Y está disponible para probarlo ya, aunque debo decir, para los que padecen de update-mania (Trastorno obsesivo-compulsivo que consiste en actualizar todo, incluso lo que funciona bien, a la última versión), que mejor actualizar los sitios web con precaución. Hay realmente muchos cambios y cosas que van más rápidas y cosas que van más lentas, y todavía mucho espacio (y módulos que aparecerán) para optimizar.

Eso sí, todo esto es gratis ;-)

<advertencia>Drupal no es un juguete, sino una herramienta extremadamente flexible y potente. Utilice siempre con precaución y bajo su propia responsabilidad. Ante la duda, haga una copia de seguridad. El gran número de módulos disponibles produce adicción. Dosifique sus módulos con sentido común.</advertencia>

(Se me olvidaba: ¡Feliz Navidad!)