Como estar al tanto de lo que se viene para Drupal 8

Hace más de cuatro meses que no escribo nada, al final, siempre termino pidiendo disculpas por la poca atención que le presto al sitio. Pero la verdad (en serio, lo juro!) es que cada vez tengo menos tiempo para escribir, y el tiempo que tengo para escribir lo dedico a otras cosas, así que en definitiva, termina siendo mi culpa. En fin, es lo que hay. En los últimos dos meses cambié de trabajo, y ahora estoy dedicándome de tiempo completo al desarrollo con Drupal. Estoy aprendiendo muchas cosas nuevas y programando de todo, algunas cosas muy interesantes, que alguna vez espero que salgan a la luz como contribuciones a la comunidad.

Hoy me gustaría hablarles de algo que para Drupal 7 se me pasó, y que no quiero que se me escape para Drupal 8. Y es, estar al tanto de las novedades que se van implementando. A muchos nos pasó que de un día para el otro salió Drupal 7, y que venía acompañado de una tonelada de novedades nuevas. La intención de este texto es permitir que esta lista no nos tome tan desprevenidos.

Como probablemente hayan leído por la web, Drupal 8 va a utilizar algunos componentes de Symfony en su núcleo. Muchos de estos cambios no van a tener un impacto real en los mortales como nosotros, pero representa un giro interesante para el futuro de Drupal.

Pero además de los componentes de Symfony, hay un montón de novedades que trae aparejadas el desarrollo de Drupal 8 y que voy a intentar mencionar aquí.

La parte triste de todo esto es que hay que entender un poco de inglés para estar al tanto, pero si puede entender más o menos y utilizar un traductor online para el resto, no debería haber mayores problemas.

Las iniciativas

En la presentación del DrupalCon Chicago 2011 - "The state of Drupal" que Dries Buytaert acostumbra a hacer durante los DrupalCons, se introdujo el tema de las Core-Initiatives.

Estas iniciativas son áreas con responsables particulares (gente real, que sabe mucho, mucho, mucho de Drupal) que se orientan a mejorar este CMS en aspectos bien definidos.

Actualmente hay 6 iniciativas (oficiales):

HTML 5

Esta iniciativa buscar integrar mucho más a Drupal con el estándar HTML 5. Entre sus tareas se incluyen la posibilidad de que los componentes de drupal puedan definir elementos HTML 5

Cosas como:

<?php

$form['phone'] = array(
  '#type' => 'tel',
  '#title' => t('Your telephone number'),
  '#placeholder' => '+0 (000) 000-0000',
);

?>

Y muchos otros beneficios que los Themers probablemente apreciarán.

Para saber más sobre esta iniciativa:

Layouts

El objetivo de esta iniciativa es convertir todos los elementos de una página en bloques que puedan ser re-ordenados y organizados dentro de una disposición (layout) flexible. Incluso teniendo layouts dentro de layouts. Y haciendo uso de una interfaz Drag & Drop.

Uno lee esto y dice. Wow, ¿en serio? Bueno, es la idea, como todo en drupal depende del trabajo que pueda proporcionar la comunidad, y de la cantidad de gente involucrada en el tema. Pero es lo que se busca como objetivo final.

Para saber más sobre esta iniciativa:
http://krisandju.e-webindustries.com/blog/drupal-8-blocks-layouts-everyw...

Mobile

Esta iniciativa busca acercar Drupal al mundo de los dispositivos móviles. Con diseños responsivos, elementos de HTML 5, interfaces de administración amigables para trabajar desde pantallas pequeñas, etc, etc, etc.

También se busca hacer transparente el desarrollo para PC y móvil. Como la conversión automática de dominios drupal.org a m.drupal.org y otras técnicas como el uso de hojas de estilo por dispositivo.

Para saber más sobre esta iniciativa:
http://palantir.net/blog/drupal-8-mobile-initiative

Multilingual

Los que hayan trabajado con Drupal 5 o anteriores, en sitios multilenguaje, pueden dar testimonio de lo terrible que era manejar todo este asunto de forma ordenada.

Con Drupal 6 la cuestión de la internacionalización de sitios comenzó a tomarse un poco más en serio, y con Drupal 7 la cosa pinta mucho más sólida.

El sistema actual de traducción de Drupal 7
[Imagen original: http://hojtsy.hu/d8mi por Gábor Hojtsy]

Sin embargo, aún no hay una unificación total del sistema de internacionalización para contenidos y configuraciones en Drupal. Esta iniciativa busca justamente eso, unificar todos los sistemas de traducción de contenido y brindarle a los desarrolladores y a los diseñadores de sitios herramientas sólidas para hacer sistemas multi-idioma.

Para saber más sobre esta iniciativa:
http://hojtsy.hu/d8mi

Configuration Management (CMI)

Esta iniciativa es mi preferida, y a muchos de los que trabajen desarrollando sitios en Drupal con clientes y servidores de producción, staging y dev probablemente también les va a gustar.

La idea esta iniciativa es proveer de un mecanismo unificado para exportar e importar el contenido y las configuraciones de un sitio en drupal de forma robusta y centralizada.

A nivel general esta iniciativa ataca dos problemas distintos.

En primer lugar, las configuraciones. Se deja de utilizar variable_get y variable_set y se reemplaza por un sistema que lee los valores desde un archivo xml. Aunque actualmente se esta trabajando en reemplazarlo por YAML.

En segundo lugar, el contenido. Muchos saben lo difícil que es migrar un Nodo de un sitio a otro, incluso si es el una versión de desarrollo a una versión en Producción. Esta iniciativa plantea atacar este problema implementando sistemas de identificación única de entidades, haciendo uso de Identificadores Universales Únicos, conocidos normalmente por sus siglas en inglés: UUID.

Esta iniciativa es mi preferida por varias razones:

Plantea la posibilidad de generar partes de un sitio en Drupal realmente reutilizables. Es verdad, tenemos el módulo Features, pero no es 100% confiable y además las funcionalidades provista por el núcleo de Drupal son siempre más robustas que las de un módulo contribuido.

Va a permitir tener contenido en stating y luego pasarlo a producción. Para hacer esto de forma decente se necesitan entre 4 y 8 módulos actualmente.

Permite llevar un registro más serio a través de un sistema de control de versiones, cuando volvamos a revisar dentro de 6 u 8 meses un sitio que hayamos construido, podríamos tener una idea más precisa de que fue lo que se modificó en todo este tiempo.

Para saber más sobre esta iniciativa:
http://groups.drupal.org/node/191283
http://groups.drupal.org/node/226459

Web Services (WSCCI)

Esta iniciativa plantea convertir drupal en un sistema REST (Transferencia de Estado Representacional). Es un concepto un poco amplio de explicar y que no manejo del todo. Pero básicamente lo que implica esto es que drupal podría devolver el contenido de una llamada ya no como una página HTML, sino como valores JSON o XML. Esto permitiría conectar drupal a otro sistema de forma transparente, por ejemplo una aplicación totalmente escrita con JavaScript. Y que drupal funcione como servicio (por eso lo de WebService) que alimente de datos a la aplicación.

Esta iniciativa hace uso extensivo de los componentes de Symfony y es una de las más complejas de implementar.

Para saber más sobre esta iniciativa:
http://www.garfieldtech.com/blog/web-services-initiative

Bueno... ¿Como sigo todo esto?

Existe una página central que reúne todas las iniciativas. Su enlace es: http://drupal.org/community-initiatives/drupal-core

Allí se pueden obtener los enlaces a cada uno de los grupos de discusión de las iniciativas. Y a las novedades que tiene cada una.

Las página principal que reúne las Core Initiatives

Otro enlace interesante es el Listado de Cambios de Drupal http://drupal.org/list-changes/drupal

En esta página se pueden ver todos los cambios que son dignos de mencionar. Por ejemplo, que en Drupal 8, cada módulo va a tener que ir en su propio directorio. O que Internet Explorer 6 y 7 ya no están soportados completamente en la versión 8.

Lista de cambios implementados en Drupal 8

Puede suceder que nos interese alguna discusión en particular. Ya sea porque queremos participar o porque queremos estar al tanto de las novedades.

Para eso, con solo iniciar sesión en drupal.org vamos a poder seguir cada una de las discusiones simplemente presionando el boton verde que dice "Follow".

Boton Follow en drupal.org

Con esto, cada vez que se actualice la conversación, veremos una actualización en nuestro panel de control de drupal.

Aún falta mucho

Además de las iniciativas propuestas por el creador de Drupal, otros desarrolladores hicieron propuestas sobre otros temas interesantes, como Accesibilidad, Design Initiative, Drupal 8 User Experience, JavaScript, Pathauto in core, Performance, Search module as API framework, Statistics, Testing, WYSIWYG entre otras. Todos estos temas eran demasiados extensos como para tratarlos aquí.

La fecha de publicación efectiva para Drupal 8 está calendarizada para fines del 2013. Aún falta mucho, casi dos años. Pero este tiempo es una excelente oportunidad para aprender, contribuir y probar algunas partes de lo que promete ser una versión mucho mejor que Drupal 7.

Hasta la próxima.

Compartir este material en...

Comentarios

Gracias Mariano por este excelente resumen del estado actual del desarrollo de Drupal 8. Llevo tiempo siguiendo la evolución de todo esto y has hecho un resumen estupendo.

Al introducir las iniciativas mencionas que son 5 cuando en realidad son 6. De hecho tu has descrito 6. :)

Un saludo,
Alessandro Mascherpa.

Alessandro, corregido lo de las 6 iniciativas.

Gracias por tu comentario.

Me parece un resumen genial, expresado y sintetizado de manera muy correcta. Muchas gracias por la aportación.

Gracias por el artículo Mariano, muy buena introducción a lo que está por venir, me ha servido de mucho. Y gracias por apuntarnos a las fuentes y animarnos a estar al día de las novedades para Drupal 8, que aunque aún falte tanto al fin y al cabo Drupal somos todos, y tenemos que estar ahí.

¡Un saludo!

La verdad es que viendo las iniciativas, y que no todas casan la única sensación que tengo es de intentar llegar a todos los sitios a la vez, y no ser capaz de ello.

Sinceramente, Drupal no sabe que quiere ser, o donde quiere estar, y eso es un problema muy serio.

Y mientras no lo sepamos vamos a seguir igual, y seguir igual significa que drupal 6 no fue tan bueno, drupal 7 no es tan bueno (estoy con proyectos personales tirando de d7 y sqllite3, y o magia la capa de bbdd solo funciona con mysql), y drupal 8 será un mutante horrible que quiere estar en todos los sitios a la vez sin terminar de llegar a todos ellos.

Esto significa que al final nos vamos a quedar en el camino de todo, y d8 (espero equivocarme) será otro bluff como d6 y d7.

Oskar

En mi humilde opinión, yo creo que algunas iniciativas no van a concretarse. Especialmente la de Layouts. Por las demás, salvo las WebServices, las veo a todas muy viables y muy favorables.

Es cierto que a veces parece no haber una línea perfectamente definida hacia donde Drupal debe ir. Pero pensando un poco más sobre esto, creo que es bastante difícil lograrlo. Pensemos que cada dos años, la comunidad de Drupal genera una nueva release. Y el avance de internet es terrible es estos dos años. Apostar a una única línea es algo bastante complejo y arriesgado.

Sobre el tema de las bases de datos, es discutible también. Durante estos dos últimos meses tuve la oportunidad de trabajar en un proyecto con Drupal 7, Internet Information Services y, Sql Server 2008 (perdón, en serio, me obligaron!). Y salvo por el módulo workflows, no tuvimos mayores inconvenientes en utilizar más de 60 módulos contribuidos. Esto con Drupal 6 era impensado.

Oskar, como siempre, valoro tu punto de vista. Supongo que el tiempo dirá en que se convertirá Drupal 8, por mi parte tengo esperanzas que todo sea para mejor.

Un saludo!

Ya sabes que ni critico por critica, ni voy tirando mierda porque sí, son impresiones mías, veo otras herramientas que definen muy bien sus targets y evolucionan respecto a eso, y a quienes trabajamos con ellas nos da cierta seguridad.

Vemos que Drupal quiere ir a por todas, y no es un mal plan, pero me da la sensación de que no hemos aprendido de nuestros propios errores.

Aunque ahora hay muchas más empresas que antes, y más grandes, lo cierto es que el día a día de todos nos sigue pesando, y se nota. Se ha podido ver como Phase2 se ha visto abrumada por la cantidad de trabajo al adquirir O.A. y no puede dar todo lo que la comunidad necesitaría.

Y si le pasa eso a los grandes, que nos pasará a los pequeños que muchas veces no podemos dedicar apenas esfuerzos a ello.

Todo esto viene por la idea, soy un cansino y un viejo cascarravias, a que un core más pequeño es mucho más flexible, más fácil de mantener, y de adaptar, y puede ser refactorizado de una forma mucho mejor para diferentes opciones, entiendase apps móviles, webs, servicios rest, parseadores de información, y un largo etc....

En fin, no me extiendo, ya sabes de que hablo.

De todas formas, reconozco que has hecho un gran trabajo recopilando toda la información, sintetizandola y facilitandola junto con los enlaces para ir a las fuentes originales.

Un abrazo.

Oskar

Yo para nada estoy triste. Es cierto, drupal no es algo con un fin único como wordpress, pero yo tampoco quiero que lo sea. Para eso están las distribuciones. Yo lo que quiero es un framework eficiente, flexible, escalable y al corriente con las tecnologías web. Y creo que en ese aspecto va por buen camino.

HTML5 y mobile creo que no necesitan mucho para cumplir su cometido, y aún así cumplen y nos mantienen relevantes. Layouts, estoy de acuerdo, es muy muy ambicioso y poco probable que tenga frutos. Pero en contrib tenemos herramientas que nos cubren como context, panels y display suit. Creo que lo mismo pasa en multilenguaje, que es ambicioso pero hay buena covertura en contrib también. CMI y Web Services son a mi parecer lo fuerte de Drupal 8. Ojalá se logren.

Saludos!
Joaquín

Muy interesante. Sin duda Drupal 8 marcará un hito en la historia de los CMS si se cumple así sea el 50% de lo que promete. Con Drupal 7 ya no tengo problemas desde que entendí bien el tema de las entidades y su API.
Respecto a las bases de datos, con postgresql me va de maravilla.
Ahora vamos por MongoDB :)
Saludos

Como siempre Mariano tus artículos son muy informativos y formativos, estoy muy contento de ver que Drupal 8 tendrá todas esas funcionalidades las cuales nos ahorraran algos problemas (en realidad muchísimos problemas, jejejeje). Como siempre agradeciéndote por compartir tus conocimientos y tu pasión por Drupal con nosotros. Se te saluda a la distancia.

Gracias Herson. Espero que estés bien.

Muchas gracias por este resumen, sin duda la transición de Drupal 6 a 7 fue muy dura, mucho más dura que lo que fue el cambio de Drupal 5 a 6 (y también que lo que supuso pasar de Drupal 4.7 a 5), pese a todos estos cambios, Drupal 8 parece buscar más continuidad respecto del 7, y eso es bueno.

Ahora, los planes (de los que más o menos intento estar al día) son toda una OPA frente a sistemas más complejos (como el mismo Symfony), en la cual Drupal se resiste a renunciar a su esencia: quieres ser framework sin dejar de ser CMS, y eso es un plan ambicioso que puede dejar descontentos a la mayoría, como bien apunta Oskar.

En fin, veremos cómo evoluciona la cosa, pero ya digo que tu post me ha gustado, muy didáctico.

Estoy de acuerdo con lo de la continuidad entre Drupal 7 y Drupal 8. Es muy interesante ver todo el desarrollo relacionado con la inclusión del módulo Entity API en el núcleo. Algo que sin dudas va a ser muy bienvenido por los desarrolladores.

No me quedó muy claro que significa eso de OPA :)

Gracias tu comentario, y muy bueno tu sitio web!

Me refería a que al incorporar módulos de symfony, Drupal quiere dotarse a sí mismo de la potencia de un framework de desarrollo puro, pero a la vez ser un CMS. Así, se pretende satisfacer la necesidad tanto de los que buscan un CMS «à la Joomla» pero con algo de esteroides y a los que buscan un Framework. Personalmente, creo que es una buena visión :D Aunque está el riesgo de abarcar mucho y apretar poco.

Lo de incluir Entity API en el núcleo es un WIN. No he montado un D7 en el que no me haya hecho falta... así que dormiré mejor sabiendo que tendrá desarrollo a nivel de core ;D

¡Y me alegra que te gustase el blog! :)

saben, estoy de acuerdo que una empresa como drupal quiera superar los retos , pero yo como usuario estoy cabreado de aser actualizaciones de de d6 a d7 y ahora con este nuevo q e sera Drupal 8 por que cuando no loa go me dice que es inetable, en mi opinion prefiero aser mi propio código en php y otras cosillas que encontrare por hay a estar siempre sujeto a drupal que muchas veces me muestra errores y ya pierdo la pasiencia, la verdad si no tiene un norte en este proyecto, derrepente va a salir otro nuevo que realmente no sometan mucho alos usuarios como lo hace drupal, vaya! estoy cabreado