Ya llegó Drupal 8 y viene cargado de novedades

19 Nov, 2015 -- fred
Drupal 8

Buenas a tod@s, después de una laaarga temporada sin publicar nada (sobre todo por falta de tiempo y con una baby a cuestas), hoy ha sido el lanzamiento de la más que esperada versión final de Drupal 8 que viene cargadito de novedades y desde luego con una gran reforma bajo el capó llamado Symfony 2.

A diferencia de las actualizaciones anteriores, Drupal 8 no es una evolución de Drupal 7, sino una revolución radical donde se ha reescrito casi todo su código. Muestra de ello está en la incorporación de componentes de Symfony en el núcleo y la adopción de buenas prácticas modernas de desarrollo web.

Vamos a enumerar algunas de las siguientes características que la hacen muy potente y que llega a la altura o por encima de otros CMS's conocidos.
 

Mejor experiencia para editores

Esta era una de las características que más flojeaba teniendo que recurrir a módulos de terceros para crear un flujo de trabajo adecuado para los editores. En esta versión la creación de contenidos se hace mediante un editor WYSIWYG llamado CKEditor que viene de serie incluyendo unos extras como widgets desarrollados para Drupal. 
 
También incluye la característica “In-place Editing” que permite a los editores clickear en cualquier campo dentro de una pieza de contenido y editarlo en el mismo front-end del sitio sin llegar a entrar en la zona de administración.
 
El soporte borrador se ha incluido en el núcleo para revisiones de cualquier tipo de contenido haciendo que el flujo de trabajo de publicación sea mucho más sencilla como el módulo “Workbench” para Drupal 7. 
 

Compatibilidad dispositivos móviles 

Otra gran característica es el rediseño completo del tema de administración Seven como el tema Bartik que ahora son completamente responsivos para una mejor experiencia de usuario en dispositivos móviles. Cabe mencionar que incluso las tablas de las páginas de administración son ahora legibles desde un smartphone.
 
El menú de administración está preparado para móvil de manera que se expande o se contrae dependiendo del ancho de la pantalla.
 
En cuanto al rendimiento en dispositivos móviles también se ha tenido especial cuidado en la carga selectiva o dinámica de JS para no saturar de trabajo el procesador de un móvil y haga la navegación mas fluida.
 

Multi-idioma para todos

No es que esto sea algo nuevo, ya que en Drupal 7 ya disfrutábamos de poder crear contenidos en varios idiomas, pero estaba limitado para ciertos contenidos teniendo que usar módulos de terceros (Internationalization, entity translation…) para poder traducir otras áreas que con el núcleo solo no se podía hacer.
Ahora ya viene de serie, sin complicaciones de terceros pudiendo traducir cualquier cosa desde la configuración del sistema a los componentes del sitio, bloques, vistas, menús hasta campos individuales de los contenidos.
 
Para haceros una idea del gran cambio que esto supone en cuanto usar multi-idioma en Drupal 7 o en la 8, en Drupal 7 necesitabas como unos 30 módulos y cada uno con su configuración, mientras que en Drupal 8 toda esa funcionalidad y más se ha simplificado y mejorado en tan solo 4 módulos. Obviamente esta mejora además de agilizar el desarrollo (y quebraderos de cabeza...) de un sitio abarata muchos costes de cara a un cliente.
 

Constructores del sitio (Site Builders)

A parte de las mejoras para los editores, también se han añadido otras novedosas características para los Site Builders. En Drupal 7 teníamos Views, un módulo muy potente y que hacen la envidia de cualquier CMS a la hora de crear páginas tipo listados que muestran por ejemplo resúmenes de artículos, eventos etc.
Ahora Views viene incluido de serie en Drupal 8 con mejoras de integración y como plus, todas las tablas de administración usa Views, como los contenidos, usuarios, archivos, bloques, taxonomías, etc…
 
Otra novedad es el tema de los bloques que se han convertido en entities y que se pueden crear tipos de bloques al igual que se hace con los contenidos.
 
Facilidad de migración de configuraciones entre diferentes entornos como por ejemplo de un entorno de desarrollo a uno de producción.
Lo más parecido que tenemos sobre esta característica en Drupal 7 se llama “Features” (valga la redundancia)  y “Strongarm” que nos permitía crear una funcionalidad o contenido nuevo como por ejemplo un tipo de contenido “Reviews” con campos adheridos en el entorno de desarrollo y luego exportar la configuración y descargar en el entorno de producción activándolo como si de un módulo se tratara.
 

Mejoras para el desarrollador Front-end

Este es uno de los puntos que más me ha alegrado, ya que para los diseñadores Drupal no era la opción más atractiva para crear temas que se salieran del modelo “Drupalish” y por ende los diseñadores se volcaban más en crear temas para Wordpress que ofrece un modelo más flexible. En esta versión se usa un nuevo sistema para la creación de plantillas llamado “Twig” usado también en otros proyectos y que está orientado para diseñadores / front-end que no tiene porque tener conocimientos de PHP.
 
Drupal 8 está completamente convertido a la semántica de HTML5 y trae consigo los elementos de formulario tipo date, tel y email.
 
Y por no enredar mucho más, la salida nativa de estructura de datos schema.org de los contenidos. 
 

Mejoras para el desarrollador Back-end

En el apartado backend se ha dado un paso de gigante y trae consigo un montón de mejoras. El framework de Symfony 2 está en el corazón de Drupal 8 y por ende, las funciones y librerías de Symfony se pueden usar para nuevos módulos además de la propia API de Drupal.
 
Ahora las entities están en todas partes dando la habilidad de poder añadir campos a otros tipos de contenido que no sean solo nodos, como por ejemplo usuarios y taxonomías. En Drupal 7 esta opción estaba limitada y tenías que usar un módulo de tercero para extender la funcionalidad como Entity API.
 
También otra de las características fuertes en esta versión es la inclusión nativa de servicios web RESTful para la interacción con incontables aplicaciones sean móviles o de escritorio. 
 
Sobre el tema de rendimiento, las posibilidades de cache en Drupal 7 ya eran bastante buenas de por si, pero en esta versión lo han mejorado y además viene activado por defecto. Las caches se invalidan de forma muy precisa e inmediatamente. Ya no hace falta activar compresión de los archivos CSS/JS porque ya lo está haciendo. Además se ha tenido muy en cuenta el mundo móvil y por ello se puede cargar características alternativas de JS y el soporte nativo del elemento <picture>.
 
Desde luego hay muchísimas más novedades, pero ahora toca jugar con ello. En el próximo artículo posiblemente analizaremos cada una de las características con más detenimiento y espero que no pase otro lustro. ;-)