Programadores descontentos con Symfony crean un fork de Drupal 8

Las actualizaciones de los proyectos de software nunca son fáciles. Si la actualización es radical y el proyecto es gigantesco, los problemas están garantizados. Drupal, el proyecto más grande y que más negocio genera en el mundo PHP, lleva varios meses actualizando su código para preparar el esperado lanzamiento de Drupal 8.

A diferencia de sus versiones anteriores, Drupal 8 no es una evolución de Drupal 7, sino una revolución radical en la que se ha reescrito casi todo su código. Para ello, Drupal 8 ha subido los requerimientos de PHP a la versión 5.3, ha incorporado los famosos componentes de Symfony y ha adoptado muchas de las buenas prácticas modernas del desarrollo web.

El resultado es un código mucho más profesional y moderno, aunque también mucho más difícil de desarrollar si no tienes conocimientos avanzados de programación. El problema es que a mucha gente todos estos cambios les han parecido excesivos y han decidido plantarse. Por ese motivo, desde hace unas horas ya está disponible el proyecto Backdrop CMS, el primer fork de Drupal creado por gente a la que no le gusta cómo está quedando el nuevo Drupal.

La página oficial del proyecto Backdrop explica muy detalladamente los motivos por los que han decidido crear este fork. A continuación resumimos algunos de los argumentos más interesantes (actualización 12 de septiembre: la página del proyecto Backdrop que estaba disponible hasta ayer ha cambiado completamente, por lo que ya no vas a encontrar la lista de argumentos que se muestra a continuación):

  • Los programadores tradicionales que usan Drupal no son los del mercado empresarial, sino programadores aficionados y gente con menos conocimientos técnicos.
  • El nuevo Drupal 8 ha perdido muchísimo rendimiento y es casi imposible hacerlo correr en un servidor compartido tradicional.
  • Backdrop no tiene como objetivo ni competir ni acabar con Drupal. Backdrop se dirige al mercado de programadores aficionados que no quieren aprender todo lo que requiere el nuevo Drupal 8.
  • Backdrop elimina todos y cada uno de los componentes Symfony.
  • Drupal 8 obliga a definir muchas clases y la estructura de directorios es muy compleja. El módulo aggregator en Drupal 7 estaba formado por 22 archivos y directorios. En Drupal 8, el mismo módulo contiene 103 archivos y directorios.
  • En Drupal 7 añadir un enlace en el menú de navegación requería definir un par de funciones. En Drupal 8 hay que crear un archivo PHP, un archivo de enrutamiento YAML y un archivo PHP con un controlador.
  • Drupal 8 no es malo, es simplemente demasiado difícil para muchos de los programadores de Drupal 7.
  • Los módulos del core de Drupal 8 sólo comparten un 24% de su código con los de Drupal 7. Además, de media los módulos son un 65% más grandes.
  • Drupal 8 es 10 veces más lento que Drupal 7 en algunas partes del instalador, 9 veces más lento al borrar la caché y 2 veces más lento al mostrar las páginas.

Aunque se sabía que la profesionalización de Drupal iba a crear fricciones entre sus programadores y que algunos de ellos no podrían seguir en el proyecto por su bajo nivel técnico, la creación de un fork y de una nueva comunidad es algo que ha pillado a casi todos por sorpresa. Por el momento, este fork plantea muchas nuevas preguntas: ¿Será algún día Backdrop un proyecto tan grande como Drupal? ¿Ha sido un acierto o un error tratar de profesionalizar Drupal con Symfony? ¿Debería haber sido la actualización de Drupal 8 menos radical? ¿Se anunciará algún cambio en los planes de Drupal 8 antes de su lanzamiento?

Comentarios

  1. En realidad es un gran dilema.

    Desde mi punto de vista el target de los CMS no es principalmente el de programadores de profesión, si no mas bien aficionados (hablando de las funciones básicas, por su puesto sin programadores especializados las personalizaciones serían imposibles).

    Ahora Drupal decidió mejorarse y modernizarse, lo cual trae muchas ventajas, pero tal como se explicas en este artículo genera mucho descontento.

    Si pienso que es un cambio radical, pero como programador sé que un código bien organizado, desacomplado, flexible..., aunque requiere mucho trabajo y por lo general incrementa la curva de aprendizaje de la aplicación trae como resultado que en el futuro implementar nuevas ideas sea mucho mas fácil y rápido y al mismo tiempo puede ayudar a la creación de componentes que faciliten mucho la vida de los usuarios y que a la final reducirán mucho la curva de aprendizaje y seguramente Drupal con estos cambios radicales, lo logrará.

    Richard Perez el 12 de septiembre de 2013, 0:21:58

  2. Debemos entender que no todo el mundo ama su trabajo... Cuando lo amas, ves en algo mucho mejor una oportunidad vital para mejorar y ser mas profuctivo y resolutivo.

    Pues bien, no me extraña que haya pasado esto. La gente no quiere ver buen código, la gente quiere ver dinero, o sea, código rápido. En este caso, el concepto aprender no aplica.

    Una pena.

    Marc Morera el 12 de septiembre de 2013, 1:19:56

  3. Algo que es preocupante es lo siguiente:

    "Drupal 8 es 10 veces más lento que Drupal 7 en algunas partes del instalador, 9 veces más lento al borrar la caché y 2 veces más lento al mostrar las páginas."

    Si la velocidad se verá afectada de esta forma será un tema que sin lugar a dudas tarde o temprano saldrá a la luz y posiblemente termine Drupal 8 por perder varios adeptos.

    Euler Sànchez Gòmez el 12 de septiembre de 2013, 1:33:31

  4. Tal vez Backdrop cumpla su objetivo, como ellos mismos mencionan en GitHub "non-technical users" y los mas técnicos preferirán Drupal8.

    Ramiro Anacona Meneses el 12 de septiembre de 2013, 2:09:22

  5. El gran reto, ofrecer lo mismo que Drupal8 o algo mejor...

    Ramiro Anacona Meneses el 12 de septiembre de 2013, 2:28:54

  6. Claro, como mencionan en el mismo sitio, la razón principal del cambio no es que el cambio es muy complicado, somos flojos y preferimos el drupal viejo. Backdrop no es el drupal viejo, quieren implementar muchos cambios, por ejemplo si se piensa integrar el CMI, un sistema de plugins y otras cosas. El problema principal que ven los desarrolladores de backdrop es la complejidad innecesaria, o más bien, la complejidad que es necesaria para ganar usuarios corporativos a expensas de usuarios menos sofisticados, que pueden tener servidores más chicos y si, menos tiempo para aprender todo desde 0.

    Creo que drupal ha ido buscando más a los clientes corporativos, eso es una realidad. Es más complejo, también. Así que en general el proyecto lo veo bien, pero no se que tanta tracción vaya a ganar. La fuerza de drupal está en su comunidad, habrá que ver cómo le va.

    Joaquín Bravo Contreras el 12 de septiembre de 2013, 5:58:44

  7. Se veía venir ...

    Por mucho que nos queramos autoconvencer symfony 2.x sigue siendo lento y pesado, el propio requerimiento de apc y cachear todo, incluso el autoload, así lo dicta. Eres tú como desarrollador el que tienes que poner en un balanza rendimiento vs funcionalidad de serie (localización, twig, formularios, doctrine, etc) para valorar si es una opción para tu proyecto o no.

    Lo que si no estoy de acuerdo es en la aserveración de que drupal 8 es para profesionales. Es cierto que symfony te 'obliga' a usar buenas prácticas, pero si algo definía drupal era lo bien construido que estaba para lo que hacía, nada que ver con wordpress o joomla (y lo digo con conocimiento de causa). El propio Rasmus siempre defendió el buen uso de las directrices de php en este proyecto.

    Y como comenta @Joaquin tampoco lo veo un fork, un fork sería drupal 7 con algún cambio, no reescribir el 90%, eso es proyecto nuevo, como fue el caso de codeigniter -> kohana/fuelphp

    Gonzalo González Domínguez el 12 de septiembre de 2013, 10:01:14

  8. No se si soy yo el que lo ha entendido mal, pero creo que el título del artículo debería ser algo como: "Programadores descontentos con Drupal 8 crean un fork de este". O mas descriptivo "Programadores descontentos con los componentes de Symfony que lleva Drupal 8 crean un fork".

    Tal como está parece que sea cosa de un grupo de programadores que no les gusta Symfony en general. Bueno, aunque realmente podría ser así.

    Pablo Braulio el 12 de septiembre de 2013, 12:33:49

  9. @Pablo, eres la segunda persona que me lo dice, así que para la próxima vez prometo redactar mejor los titulares. A mí me parecía que describía con precisión lo que ha pasado, pero se ve que no era tan preciso :(

    Javier Eguiluz el 12 de septiembre de 2013, 12:47:25

  10. Es un poco desafortunado que han creado un fork, pero creo que el tiempo es de hecho lo mejor.

    Drupal 8 no se ha lanzado, y están en una fase en que mejoran la experiencia para desarrolladores. Ahora tienen competencia. Espero que será una motivación a ellos para mejorar la experiencia de desarrollar aún más.

    Personalmente no tengo planes para cambiar de plataforma, pero es posible que lanzo una versión Backdrop de mi módulo si se hace bastante popular.

    Kevin Kaland el 12 de septiembre de 2013, 15:26:00

  11. A mí también me ha descolocado un poco el titular, parece que se refiere a Symfony como tal, no a los componentes que usa Drupal de Symfony, pero una vez leído el artículo, encaja todo :)

    En cualquier caso, me parece un movimiento poco inteligente, no creo que se hagan competencia, al menos no al mismo nivel, es más, creo que se creará una especie de segmento de drupaleros "vagos", para aquéllos que quieran desarrollar un proyecto sin complicarse, a costa de perder la riqueza que ofrece Symfony. Los que conocen más a fondo el concepto y el core de Symfony, seguirán valorando por encima de la facilidad, la potencia y versatilidad de este framework. Y creo que el motivo por el que este grupo de desarrolladores ha querido hacer un fork es por el rechazo que solemos tener las personas al cambio.

    Manuel GM el 12 de septiembre de 2013, 16:52:55

  12. El titular está bien, en mi opinión a todos nos causo algo, (no se qué) que Drupal usara componentes de Symfony, este ha hecho que las cosas se compliquen al hacer algo sencillo en Drupal8, cuando supe de este cambio, me pregunté, ¿para qué usar componentes de symfony? Drupal hace lo que hace bastante bien así como está. Pero la idea claro, no es que las cosas se queden como están y menos en el mundo de la web.

    Ramiro Anacona Meneses el 12 de septiembre de 2013, 19:21:49

  13. a mi parecer es normal que los usuarios se resistan pero también deben comprender que una nueva versión requiere más conocimiento sino como avanzaría Drupal?

    Juan Carlos Choque Quispe el 14 de septiembre de 2013, 22:34:44

  14. Si, parece que en el mundo de Php no se quiere mejorar ni avanzar... cuanto más avanza la tecnología más cuesta hacer cosas, pero es por el mero hecho del avance que conlleva dificultad, lo bueno que tiene las nuevas tecnologías es que cada x tiempo salen cosas nuevas, cosas que aprender, y lo mejor es que nunca te aburres de hacer siempre lo mismo ya que cambia, si no te gusta aprender pues lo mejor es irte a otra profesión.

    Ademas no tiene porque ser más difícil, yo creo que casi es por vagancia, si nunca lo has hecho es normal que tengas que aprender, cuando empecé a ver Joomla, Drupal o el que sea, tienes que aprender muchas cosas, la manera de trabajar que tiene cada CMS, su código, y quieras o no te tiras un tiempo aprendiendo cosas e igual de difíciles, lo bueno que tiene usar Symfony es que no solo se usa para Drupal, sino para miles de proyectos donde podrás encontrar utilidades que te ahorraran tiempo y infinidad de ayudas por todos lados, ahora mismo si tienes problemas "solo" la comunidad de Drupal puede ayudarte, de esta manera puede ayudarte la de Drupal, Joomla, phpbb, y otros...

    Además el usar un CMS es porque tiene casi todo hecho, lo único que tienes que hacer es instalar cosas y esto no dejara de ser así porque esté hecho en Symfony o en el que sea.

    Si lo miramos desde el punto de vista de que un CMS es casi (o lo es) un Framework pues no tiene mucho sentido ya que la dificultad será casi la misma-

    Alberto Vioque Muñoz el 15 de septiembre de 2013, 14:20:11

  15. Que eliminen todos los componentes me suena a celos... vamos que algún componente presentaría alguna mejora, ¿por que eliminarlo?.

    Fernando Witzke el 16 de septiembre de 2013, 16:33:25

  16. El hecho es que drupal decidió sacar su nueva version, sin todo el codigo antiguo y rehacer la mayor parte del código bajo un entorno muy profesional y robusto como lo es symfony... pero claro, es obvio que esto no les conviene a todos los desarrolladores.

    En conclusión, aquellos que deseen seguir trabajando en un drupal pasado, usaran este fork y aquellos que si puedan tomar la iniciativa de seguir adelante y hacer las cosas bien, continuarán con esta nueva y mejorada versión de drupal y symfony2 ^^

    Ricardo Garcia Rodriguez el 25 de septiembre de 2013, 23:22:04

  17. Desde mi punto de vista, lo que pasa con drupal8 es una metáfora de lo que ocurre con su creador, también es otra metáfora de lo que pasa con symfony se han hecho mayores y se han aburguesado, están ganando pasta a dolor y cogiendo kilos. Se

    ibon aberasturi el 11 de octubre de 2013, 23:29:10

  18. A mí también me ha confundido un poco el título de la noticia. En realidad con lo que están descontentos estos programadores es con el hecho de que Drupal 8 sea más complejo y más lento, no con Symfony. Yo uso Drupal y estoy empezando con Symfony, y como Ingeniero Técnico en Informática, me gusta el código estructurado y bien hecho, pero también entiendo que un código bien estructurado sin un buen rendimiento no sirve de mucho. A nosotros nos gusta trabajar con un código legible y bien hecho, pero el cliente final (que es el que paga) no entiende de eso (ni tiene por qué entender) y lo que ve es que su proyecto va lento y no cumple con sus expectativas de rendimiento. Drupal 7 es más potente que Drupal 6, pero dicen que más lento. Si Drupal 8 es más lento que Drupal 7, entonces Drupal no va en el camino correcto en cuando a rendimiento. Me gusta el enfoque de estructuración y profesionalización del código que está tomando, pero si el problema es que Symfony 2 es muy pesado y lento, entonces a lo mejor a Drupal no le interesaría incorporar componentes de Symfony aún.

    Antonio Fernández el 6 de noviembre de 2013, 9:45:18

  19. Uso Drupal desde la versión 5 y en cada actualización ha sido mejor y mejor, respecto a la velocidad si obvio entre más robustez la velocidad ha disminuido un poco más que todo se nota entre la 6 y 7 pero vale las mejoras de actualizaciones, formularios, menúes, etc inclinan la balanza a lo positivo, en lo particular estoy esperando la versión 8 con ansias y cuando me enteré que iba a incorporar componentes de SF2 me emocioné porque es mi FW favorito, he usado Codeigniter (Que le tengo cariño), ZF2, Yii y me quedo con SF2 que bien utilizado es rápido, no como un codeigniter claro está, pero el tiempo de desarrollo es mucho más rápido porque la diferencia de estructura entre SF2 y Codeigniter son brutales, respecto al Fork cada quién usa el CMS y el FW que más le guste y que mejor se adapte pero vale poner de escusa que es muy complicado por favor eso me recuerda a los antiguos programadores que aún se aferran al PHP4 y al VB6 y si aún existen yo conozco a varios. Así que yo espero con ansias a Drupal 8.

    bug over el 12 de diciembre de 2013, 3:49:32

Este artículo ya no permite añadir más comentarios.
¿Por qué? Los artículos cierran sus comentarios automáticamente unos meses después de su publicación para asegurar que estos sigan siendo relevantes.

Publicada el

11 de septiembre de 2013

Proyectos Symfony destacados

La plataforma de eCommerce 100% Symfony que rivaliza con Magento y PrestaShop. Ver más

Síguenos en @symfony_es para acceder a las últimas noticias.