Drupal 8: la transición a un nuevo modelo CMS

Cuando hace 2 años salió por estas fechas la versión 7 de Drupal, el grupo "core" de desarrolladores ya arrancó el nuevo proyecto para la siguiente versión de Drupal: la 8. Se anunciaba en aquellos momentos que en otros 2 años tendriamos una nueva versión y por tanto es un buen momento para valorar su estado.

La cuestión es que Drupal 8 no está listo para su lanzamiento, ni lo va a estar cuanto menos en otro medio año, acaba de superar su fase "alpha". Ahora mismo las fuentes más optimistas hablan de su aparición a mediados del 2014, pero por la complejidad de la nueva plataforma es fácil entender que se va a alargar como mínimo hasta finales del 2014, si no principios del siguiente año. Las razones las vamos a ir viendo a lo largo de este artículo.

Drupal 8 busca un cambio revolucionario y por eso está siendo difícil de desarrollar y de testear, y por otro lado el líder del proyecto Drupal, su creador Dries Buytaert, quiere que cuando salga sea la versión más depurada y con menos errores de toda la historia de Drupal. O dicho de otro modo, el cambio es tan revolucionario que como va a significar un antes y un después en el mundo no solo de Drupal, sinó de los CMS Open Source, tiene que salir bien a la primera.

El cambio buscado tiene que ver en como los analistas de los CMS más populares (que son lógicamente los Open Source) ven las evoluciones de las distintas plataformas existentes, y observan cuáles están teniendo éxito. El éxito de estas plataformas está siendo seguido de cerca por los grandes actores del mundo de la informática. Un hecho contrastado es el soporte oficial de consultoras como Cap-Gemini o del mismo gigante Microsoft por Drupal. Estos grandes actores ven a Drupal desde ya hace unos años (se puede decir que desde Drupal 6) como la gran alternativa a los clásicos CMS comerciales (de pago). De hecho Drupal 6 y 7 han desplazado a muchos de estos en sitios web internacionales muy grandes e importantes. ¿Es esto así "solo" porque Drupal sea gratuito? Ni mucho menos.

El éxito de Drupal no se debe a que sea gratuito, porque de hecho lo son todos los gestores de contenidos Open Source, y no todos son usados para construir webs de grandes sitios internacionales como los premios Grammy o el Museo del Louvre. El éxito de Drupal y su acceso a estos sitios se debe a su excelente enfoque tecnológico. El contrapunto de esto es que ha puesto a Drupal en la tesitura de entender que "ese" es su sector, el de las grandes webs. Y Drupal solo ha podido llegar ahí porque desde que se inventó ha estado siempre bien enfocado y dotado de buenos principios de programación.

A esta razón expuesta se le añade otra de mucho peso: Drupal no es el único que ha evolucionado bien. En los 12 años que lleva creciendo este potente CMS ha visto como Wordpress también ha tenido una evolución y crecimiento espectaculares. Ahora mismo Wordpress se situa tecnológicamente en un punto como el que estaba Drupal 4-5. Muchos conceptos de Drupal 4-5 se empiezan a convertir en estándares entre los desarrolladores de Wordpress, su comunidad es muy activa y la evolución de la creación de sus módulos digamos que va por muy buen camino, aunque aún no están en "core". Por supuesto su complejidad tecnológica es mucho menor que Drupal, pero es una muy buena elección para sitios webs "fáciles", mientras que a Drupal cada vez se le ve más alejado de los sitios "fáciles". Wordpress es muy ligero en su instalación y en cuanto lo tienes en la web empiezas fácilmente a publicar en un blog. Crear una web compleja requiere igualmente más conocimientos (curiosamente como los que hacían falta para Drupal 4-5), pero hay mucho tutoriales que te ayudan a avanzar rápidamente. Vaya, exactamente como estaba Drupal hace unos 6 años.

Y este es el punto en el que el equipo "core" de Drupal ha visto que tenía que empezar a tomar decisiones para definir su camino futuro. Hay voces que dicen que esa "web fácil" dejará de ser coto de Drupal, por tanto había que evolucionar para ser capaces de poder seguir siendo una plataforma de elección para las web "grandes y difíciles", las que para las estructuras empresariales que dan soporte al desarrollo "core" de Drupal les interesa llegar.

El debate fué intenso y las conclusiones básicamente dos: el nuevo Drupal deberá estar programado con código aceptado por los altos estándares de la corporaciones para ser aún más compatible con otras plataformas que estas corporaciones puedan usar, y tendrá que ser el CMS más fácil de usar.

  • El primer punto se ha solventado olvidándose de muchas de las funciones de las APIs propias de Drupal y sus famosos "hooks". Mucho de todo esto se ha reescrito usando el framework de desarrollo "Symfony 2". Este giro hace el código de Drupal más accesible a muchos programadores "serios" de grandes firmas que no tendrán que aprender los entresijos de la programación de Drupal sinó que podrán seguir trabajando según sus arquitecturas. El problema es que a partir de ahora los miles de programadores que han creado los casi 10.000 módulos que tiene Drupal no sabrán lo suficiente para seguir este cambio. Este riesgo se entiende desde el equipo "core" por un cambio estructural en la comunidad que pasará a estar formada por programadores de mucho más nivel que ofrecerán soluciones más potentes en todo tipo de módulos, la misma plataforma lo va a permitir. Parece interesante, tendremos que esperar a ver cómo va.
  • El segundo punto es ser el CMS más fácil de usar. Se ha estado trabajando mucho en esta dirección. Se establecieron en su momento equipos que estudiaron cuáles eran los puntos más débiles de Drupal y se ha trabado intesamente en ellos. Se han tomado muchas decisiones, y al igual que Drupal 7 incorporó en core unos 20 módulos que hacían más fácil de usar la plataforma (y que por tanto ya no había que instalar), Drupal 8 incluye unos 32 módulos en su core que ya no habrá que descargar pues ya estarán incluidos (o bien porque han sido integrados o bien porque sus ideas han sido incorporadas. Aquí hay un post en el blog de Acquia que detalla esta amplia lista, vale la pena echarle un vistazo.

¿Qué cosas van a hacer a Drupal 8 más fácil de usar?

  • Tener integrado Views, por ejemplo, con lo que incorporará un motor propio de generación visual de listados sin tener que saber programar SQL (siendo Views el módulo de más éxito de Drupal y posiblemente parte del responsable del éxito de Drupal). Como incluso la administración de Drupal estará hecha con Views cualquiera podrá modificar y mejorar la administración.
  • Otra cosa es el enfoque totalmente orientado a la web móvil, para que esta parte del proyecto no sea nunca "algo aparte" u olvidado sinó parte intrínseca de cualquier web, automáticamente.
  • Por otra parte los servicios web (webservices) estarán totalmente integrados en el "core", cualquier Drupal tras ser instalado podrá enviar y recibir fácilmente cualquier tipo de datos desde cualquier otra web, sea Drupal o no (bueno, tan fácilmente como es eso de integrar).
  • La edición de los contenidos recibe un gran impulso, estos se editarán en la misma página, sobre el mismo texto y no en un formulario a parte o en un backoffice separado.
  • Mejor estructuración de los modos de visualizar un nodo de muchas maneras diferentes configurables desde el mismo interface de admintración.
  • Un modelo de multidioma completamente integrado en el "core" y que solo implique 4 módulos y no 17 como en Drupal 7.
  • Un sistema de importar contenidos y configuraciones, y de exportarlos para poder replicar, convertir y mantener sitios web mucho más fácilmente.
  • Y muchas más cosas.

Todo junto un proyecto realmente ambicioso que debe hacer sentir que ha valido la pena instalar Drupal por la cantidad enorme de cosas que te ofrece, y no solo a los grandes desarrolladores. El objetivo es que los módulos sean a partir de ahora mucho mejores y más ricos en posibilidades. El problema que se ha observado en los sitios web hechos con Drupal es que el CMS es tan potente que acaban creciendo mucho y la final se convierten en webs tan serias que es difícil mantenerlas o hacerlas crecer, incluso actualizarlas a la siguiente versión de Drupal. Eso ya no será así con Drupal 8 pues la iniciativa de trasportar cualquier tipo de web de Drupal no va dirigida solo a sitios webs en Drupal (se dice que será posible pasar Drupal 6 a 8 sin pasar por el 7), sinó a cualquier otro tipo de sitio hecho con cualquier otro CMS. Pero no nos engañemos, eso es un proyecto propio de profesionales no de sitios pequeños.

Y ese será el riesgo de Wordpress, el de convertirse en un Drupal 6 solo para tener sus problemas "a la larga". Hacer un sitio "fácil" en Wordpress quizá sea, eso, fácil. Cuando las necesidades de sus propietarios crezcan y no las puedan abordar con el mismo Wordpress y su falta de escalabilidad quizá el camino más lógico de ampliación sea Drupal 8.

No todo el mundo lo ve igual. Algunos importantes desarrolladores de la comunidad Drupal han expresado tan claramente su desacuerdo que han iniciado su propio proceso de separación de la política oficial de Drupal. Estos desarrolladores han creado "un fork" de Drupal 7 que esperan mantener creando una comunidad a su alrededor: Backdrop. La posición oficial de Acquia (la empresa de Dries que es el principal espónsor de Drupal) es que no consideran malo que haya aparecido tal frente y animan a sus seguidores a no criticar la nueva propuesta. Los desarrolladores de Backdrop siguen participando en las reuniones Drupal, incluso haciendo ponencias en las más importantes ya que siguen siendo los mantenedores de importantes módulos de Drupal. Hay quien incluso opina que como el desarrollo tanto de Drupal 8 como de Backdrop aún va para largo ambos proyectos se pueden influir de algún modo.

Drupal 8 se anuncia realmente como un cambio en cómo se conciben los gestores de contenidos Open Source. Es difícil imaginar ahora mismo como afectará a la forma de hacer webs, para eso habrá que esperar a que salga y al menos a que pase un año para poder valorarlo. Drupal 7, Drupal 8, Backdrop, Wordpress 3, Wordpress 4,... el futuro de estas herramientas promete un panorama muy interesante en los próximos años.

Todos estos puntos se pueden explicar y debatir muy ampliamente por separado y a lo largo de los próximos meses lo haremos a la espera de Drupal 8 se vaya desvelando para acabar saliendo. Próximamente haremos una valoración de la instalación de un Drupal 8 y comentaremos algunos de los aspectos que se han mencionado anteriormente. En cualquier caso seguimos teniendo Drupal 6 y 7, especialmente el último una increible plataforma con la que ya se puede hacer todo lo que se anuncia para Drupal 8, ni que sea "menos fácil" y requiera la ayuda de un buen experto.