El futuro de Drupal: Drupal 8, Backdrop o Drupal 7?

Este año 2016 será el año de Drupal 8, todos los esfuerzos de la comunidad Drupal se han dirigido en los últimos años a crear esta nueva versión que por fin vio a luz. La evolución de la plataforma Drupal la dirige un grupo especial de desarrolladores alrededor del líder y creador del proyecto. Estos analizaron las necesidades y límites con que se encontraban los grandes proyectos hace unos años y decidieron trazar las líneas maestras de la siguiente versión que ahora tenemos entre nosotros.

La plataforma Drupal ha sido siempre valiente y sus desarrolladores de core nunca han tenido inconvenientes en avanzar hacia nuevos niveles de funcionalidades aunque esto no encajara con las anteriores versiones. El análisis que se hizo al poco tiempo de empezar el desarrollo de Drupal 8 fue que era mejor dejar toda la antigua API para reescribir desde 0 Drupal en un framework más conocido, estándar y también Open Source. El framework elegido tras considerar las ventajas que proporcionaba al futuro de Drupal fue Symfony 2.

Este cambio es tan radical en el paradigma de la programación de Drupal que a partir de ahora nada se programará de la misma forma. Esta decisión ha creado cierto debate en la comunidad hasta el punto que un grupo de programadores decidió crear una línea de desarrollo a partir del Drupal 8 previo al cambio a Symfony. Este proyecto busco un nuevo nombre e intenta crear una comunidad que atraiga más desarrolladores. Hay tantas razones para defender este modelo como para defender el camino seguido por Drupal.

En cualquier caso, ¿qué impacto puede tener esto para los desarrolladores de sitios web? Como se pueden sacar muchas conclusiones distintas según desde qué perspectiva se analice este tema he pensado que primero sería buena idea instalarlos. Vamos a ello, y empecemos por montar estos CMS en la misma máquina y con las mismas condiciones, luego compararemos los procesos de instalación. ¿Nos servirá para descubrir algo?

ACTUALIZACIÓN: las cifras de tiempo de instalación salieron muy largas por un problema en la configuración de la máquina en la que se realizo el proceso. Los datos han sido revisados repitiendo el proceso en una nueva máquina VPS.

Drupal 8 en Español

Tras descargar la última versión de Drupal la he descomprimido y la he instalado en una máquina VPS. El entorno LAMP basado en CentOS usaba PHP 5.5.32 con 256 Mbs de RAM asignada en el php.ini y MySQL 5.5.47. He resumido en la siguiente tabla los datos que he obtenido durante este proceso:

  • Versión: 8.0.4
  • Tamaño ZIP: 19 Mbs
  • Tamaño descomprimido: 51 Mbs
  • Número de ficheros: 12.464
  • Tiempo de instalación: aprox. 5'50'' minutos
  • Tablas en la base de datos: 71
  • Tamaño de la base de datos: 16,4 Mbs

El instalador de este Drupal es más bonito y pulido que el de versiones anteriores, pero no deja de llamarme la atención el enorme número de ficheros y el tiempo tan largo que ha llevado este proceso. Al empezar la instalación el mismo Drupal me ha dado la posibilidad de instalar en idioma en español directamente en la primera pantalla de instalación. Esto implica que en el proceso de instalación se han descargado elementos de traducción que se han aplicado y de ello aparece este tiempo tan largo de casi 6 minutos. No está nada mal, tardar 6 minutos en instalar un Drupal desde 0, pero ahí queda la referencia.

Drupal 8 en Inglés

Como los otros instaladores que he usado realizan el proceso solo en inglés, he creído oportuno borrar la base de datos y toda la base de ficheros y repetir el proceso. En esta ocasión he rechazado la posibilidad de instalar en español y lo he hecho en inglés esperando ver cuál es la diferencia con una instalación básica.

  • Versión: 8.0.4
  • Tamaño ZIP: 19 Mbs
  • Tamaño descomprimido: 51 Mbs
  • Número de ficheros: 12.462
  • Tiempo de instalación: aprox. 2'31'' minutos
  • Tablas en la base de datos: 66
  • Tamaño de la base de datos: 13 Mbs

Evidentemente en los números se observa que el tamaño del paquete comprimido y descomprimido, así como el número de ficheros es el mismo. El tiempo que ha tardado en instalar es significativamente menor, unos 2 minutos y medio para generar 66 tablas en la base de datos.

BackDrop 1

Ahora tocaba el turno de instalar Backdrop en la última versión disponible, descargada justo después del Drupal 8 que he tomado de referencia.

  • Versión: 1.3.3
  • Tamaño ZIP: 8.1 Mbs
  • Tamaño descomprimido: 27,6 Mbs
  • Número de ficheros: 1.934
  • Tiempo de instalación: aprox. 1 minuto
  • Tablas en la base de datos: 53
  • Tamaño de la base de datos: 4,3 Mbs

Instalador Backdrop

Los números son distintos. Este pseudo-Drupal 8 creado con la evolución de la API anterior de este CMS tiene un número elevado de ficheros, pero són la sexta parte de los que instala Drupal 8. El tiempo de instalación es similar al de Drupal 7 (instalando en el idioma inglés por defecto) en 1 minuto. Su instalador también está renovado, es moderno y atractivo.

Drupal 7

Valorar todos estos números puede resultar abstracto si no tenemos con qué compararlos. Por eso he pensado que valía la pena instalar también un Drupal 7 para tomarlo como referencia.

  • Versión: 7.43
  • Tamaño ZIP: 3.7 Mbs
  • Tamaño descomprimido: 12 Mbs
  • Número de ficheros: 1.098
  • Tiempo de instalación: aprox. 1 minutos
  • Tablas en la base de datos: 73
  • Tamaño de la base de datos: 4,5 Mbs

Instalador Drupal 7

El instalador de Drupal 7 parecía más sofisticado comparado con el que tenía Drupal 6, pero resulta un poco básico y soso comparado con los modernos de Drupal 8 y Backdrop. Eso sí, la instalación en la misma máquina y bajo las mismas condiciones ha llevado solo un minuto, y eso que es el que ha creado más tablas, y maneja una cantidad de fichero menor que Backdrop pero casi en su mismo orden de magnitud.

¿Y Drupal 6?

Finalmente se me ha ocurrido que sería interesante desempolvar Drupal 6 y comparar estos resultados con su última versión que es la comunidad acaba de anunciar que deja de soportar, aquella que seguramente hizo que Drupal comenzara a ser considerado un buen gestor de contenidos.

  • Versión: 6.38
  • Tamaño ZIP: 1.25 Mbs
  • Tamaño descomprimido: 3.4 Mbs
  • Número de ficheros: 468
  • Tiempo de instalación: aprox. 1 minutos
  • Tablas en la base de datos: 46
  • Tamaño de la base de datos: 2 Mbs

Instalador Drupal 6

La última versión de Drupal 6 ahora parece muy compacta, con un número de ficheros muy reducido y creando una instalación en la base de datos de un tamaño muy modesto. Su instalador es un tanto anticuado, pero acaba el proceso en un tiempo casi igual a Drupal 7.

Conclusiones

Esto no pretende ser un análisis exhaustivo, ni siquiera nos dice nada de lo que hacen estos CMS y de cómo se comparan entre ellos, pero creo que podemos sacar algunas conclusiones. Dado que el sistema sobre el que se han realizado las instalaciones es el mismo se puede extrapolar cierta proporcionalidad entre unos y otros.

Lo primero que es relevante es que Drupal 8 instala una cantidad inmensas de ficheros, genera una instalación enorme tanto en disco como en base de datos y tarda un tiempo sorprendentemente largo. El salto es muy grande respecto de Drupal 7 y nos hace ver que si ya habían problemas para situar a Drupal 7 en ciertos hostings ahora será imposible pensar en usar Drupal 8 en un hosting de tipo compartido. Muchos de los proyectos que hemos realizado están en hostings compartidos, proyectos que disponían de un presupuesto muy contenido, aunque cada vez los proyectos se han profesionalizado más y usan como mínimo hostings de tipo VPS.

Backdrop parece que estuviera en un punto intermedio. El mayor tamaño de Backdrop respecto de Drupal 7 se justifica por el hecho de que lleva integrado en core módulos que en Drupal 7 había que instalar aparte (y después) como Views, Date, Token, CKeditor o incluso una especie de Panels. En este sentido Backdrop no es más grande que Drupal 7. Parece que Backdrop se mantiene fiel a su intento de ser una evolución de la versión de Drupal a la que precede. A mí me gusta.

No hemos hecho más que instalarlos y con estas cifras se observa como Drupal 8 se ha ido a otra liga, a otro nivel justificado quizá solo por aquellos que hacen grandes (y muy grandes) proyectos. Personalmente me parece que Drupal 8 es excesivo a todas luces para la gran mayoría de los proyectos que estamos realizando hoy en día en Innodus. Aunque sin duda Drupal 8 es una plataforma fantástica, lo ha sido también Drupal 7, lo está siendo y no lo vemos agotado. Se percibió un cambio fabuloso con el cambio de Drupal 6 a 7, y los últimos años hemos hecho webs con arquitecturas que serían imposibles con la versión 6.

De todos modos, habiendo exprimido y profundizado tanto en su momento a Drupal 6 parece que se le podría considerar un "Drupal ligero" hoy en día. Con Drupal 8 va a haber claramente proyectos que no va a tener ningún sentido hacerlos con Drupal y creo que eso puede dejar a los desarrolladores de Drupal fuera de juego en muchas ocasiones respecto a otras alternativas que ofrece el mercado. No parece tener ningún sentido crear una web corporativa de 100 páginas con un gestor que instala unos 12.000 ficheros... Symfony es una apuesta por el futuro, la escalabilidad y la seriedad, y poco a poco aparecen más plataformas basada en este framework, como los nuevos eCommerce de moda Sylius o Thelia. Pero es cierto que también añade dificultades nuevas en el aprendizaje que en cierto puntos pueden resultar innecesarias. Drupal 8 será sencillo para sitebuilders... hasta que intenten hacer algo que no sea estándar en sus configuraciones.

En cuanto a Backdrop es casi imposible no sentir cierta afinidad con él, pues solventa muchos de los problemas que se intentaban mejorar en Drupal 8 pero sin salirse de la API clásica de Drupal. Convertir módulos de Drupal 7 a Backdrop es muy sencillo en la mayoría de los casos, pero su comunidad no está cogiendo suficiente tamaño y los servicios de su web no son comparables a los que está acostumbrado cualquier desarrollador Drupal.

Creo que es un reto saber con cual plataforma trabajar. Es fácil apuntarse a la dinámica de la comunidad y decir que Drupal 8, pero seguimos haciendo proyectos exitosos con Drupal 7 y me da la impresión de que ésta versión sigue siendo, si no el futuro, por lo menos el presente de Drupal. ¿Nos ha revelado algo este análisis? Quizá que se hace necesario un Drupal "ligero".

<