Empiezo un proyecto: ¿debo elegir Drupal 6 o Drupal 7?

Una de las preguntas más recurrentes estos días es si utilizar Drupal 6 para nuevos proyectos o directamente lanzarse a la piscina y montar un Drupal 7. Podéis encontrar este mismo dilema planteado en los grupos de drupal.org, y en otros foros de la materia con tantas opiniones como respuestas y comentarios. Estos días el debate se ha reactivado y como llevo tiempo pensando en ofrecer mi visión del tema, os plantearé una serie de escenarios y mi opinión sobre cual es la mejor elección para cada uno. 

¿Así que ya has considerado todas las opciones de software libre y privativo para montar tu aplicación web? si estás por aquí, es que has tomado la decisión correcta: Drupal, ¡enhorabuena!, ahora queda una decisión igual o más difícil, ¿debería usar drupal 6 o drupal 7?.

Podría resumir este artículo de la forma que sugiere @rvilar en twitter:

Pero prefiero ofrecer una reflexión un poco más profunda y razonada, así que vuelvo a preguntar: ¿debería usar drupal 6 o drupal 7? La respuesta depende, mayoritariamente, de dos factores: El perfil del proyecto que estás a punto de empezar y el tuyo propio o el de tu empresa.

Hay algunos criterios que yo considero "reglas de corte" para ambos perfiles y que a mi modo de ver la elección está muy clara.

Tipo de proyecto

  • Proyecto personal o web propia con intenciones educativas. Si tu proyecto es un hobbie, o tu motivación principal es aprender Drupal, no lo dudes, Drupal 7 es tu opción, aprenderás mucho más y este aprendizaje será más duradero que si usas Drupal 6. Además de ahorrarte solucionar muchos problemas de Drupal 6 que ya vienen resueltos en Drupal 7.
  • Proyecto de comercio electrónico. Si estás haciendo una tienda online, no hay ninguna duda, Drupal Commerce es un proyecto mucho más maduro y estable en este momento para Drupal 7 de lo que nunca lo fue Ubercart para Drupal 6 o 7. Mucho más flexible, extensible y limpio, encontraréis grandes ventajas nada más comenzar. Más en mi sesión sobre Commerce de la Drupalcamp Spain 2011.
  • Proyecto enfocado al rendimiento. Hay muchos proyectos de alto volumen de visitas (algunos de MUY alto volumen) que usan Drupal 6, por ejemplo SceneBeta, Idealista News o En Buenas Manos. Perdón, ¿he dicho Drupal 6?, estos proyectos no usan Drupal en sí, sino Pressflow, un fork de Drupal orientado a la performance. Y casi todos los cambios que aporta, junto a otros muchos enfocados a la escalabilidad han sido ya incluidos de base en Drupal 7, soporte maestro-esclavo, gestión de sesiones anónimas, etc.

Perfil de desarrollador o empresa

  • Ya dedicado y especializado en Drupal. Si tu perfil es de empresa/desarrollador con ya recorrido en Drupal, no debes dudar ni un momento en empezar tus próximos proyectos en Drupal 7, acaba ya con tus frustraciones y sufrimientos provocados por peleas con temas como la intenacionalización, integración de javascript, CCK, views... y empieza nuevas luchas con espíritu renovado: entities, fields api, ajax, views (otra vez); te lo pasarás mejor. Si quieres ver un resumen de las novedades a nivel técnico, os recomiendo las slides de mi presentación en la Drupalcamp Spain 2011: "Desarrolladores, bienvenidos a Drupal 7". Además tendráss la oportunidad de colaborar y ayudar al proyecto y a la comunidad drupalera mejorando, completando o incluso migrando módulos y código contribuido. Dos ejemplos propios:
    • En su momento tomamos la decisión de migrar uno de los proyectos propios de Neurotic: marujeo.com a Drupal 7, y al principio fue duro (hace bastantes meses que se hizo la migración, de aquella ni había salido la versión estable), pero por el camino aprendimos un montón, migramos MySQL Report y More Comments a Drupal 7, además de proveer algunos parches a otros proyectos para que ahora otros pueden disfrutarlos.
    • La migración a Drupal 7 de cambrico.net ha ocurrido hace pocos días, pero también me ha servido para migrar GetClicky que ahora tiene una versión para D7.
  • Novato, pero que quiere especializarse en Drupal. Es prácticamente el mismo caso que si fuera un proyecto personal, si estás empezando con Drupal con la intención de quedarte, Drupal 7 es la apuesta más segura y la que tiene más recorrido. Aprenderás cosas nuevas y te costará mucho menos tiempo que aprender Drupal 6 y luego actualizar los conocimientos y el trabajo realizado. Además, el sistema base sobre el que estás construyendo se quedará obsoleto mucho más tarde. Tened en cuenta que Drupal 6 dejará de tener soporte en el momento que Drupal 8 vea la luz.

Efectivamente todas estas consideraciones tienen algunos peros, por supuesto.

Tomemos otro criterio: el tamaño del proyecto. Podemos simplificar y dividir los proyectos en tres tamaños: los proyectos pequeños, que serían aquellos que apenas requieren personalización de desarrollo, alguna cosilla de theming y que podemos estimar en un mes o menos. Los proyectos medianos estarían entre uno y tres meses y seguramente tendrán varios módulos propios y bastante personalización a nivel de plantilla. Y luego están los grandes proyectos, cuyo desarrollo implica más de tres meses y muy probablemente "fuerza" un mantenimiento continuo posterior.

  • Proyectos pequeños: Casi con total seguridad todos los elementos necesarios para completar este tipo de proyectos tengan ya versión en Drupal 7, ¿por qué entonces no usar código más actualizado y mejorado? Muchos mantenedores de módulos están centrándose en Drupal 7 y por supuesto, la mayoría de nuevas contribuciones empezarán a ni siquiera tener versión para Drupal 6. A la larga estos proyectos necesitarán migrarse, así que, como he comentado más arriba, algo desarrollado en Drupal 7 durará más sin tener que actualizar versión.
  • Proyectos medianos: Este es un caso en el que puedo entender elegir Drupal 6, si estamos manejando un proyecto con un plazo muy ajustado y un presupuesto parecido, pero con mucha funcionalidad (esta es la definición de proyecto mediano en Drupal, en realidad) y nuestro equipo no está acostumbrado a lidiar con Drupal 7, puede que no podamos asumir desarrollarlo en la nueva versión. Sobre todo si hay algunos módulos imprescindibles que no están completos o no parecen muy estables. Aún así, esta decisión tiene un riesgo importante, si eliges Drupal 6 de forma recurrente porque no te "atreves" con Drupal 7 debido a que no has trabajado antes con él, puedes acabar tardando demasiado en actualizarte y corres el riesto de quedarte obsoleto más rápido de lo que crees. En el caso de que en la planificación de tu proyecto se haya conseguido dejar algo de margen, no dudes en empezar con Drupal 7.
  • Grandes proyectos: Seguramente el punto más controvertido, puesto que mucha gente todavía está recomendando Drupal 6 para grandes proyectos. Personalmente me parece un error. Los grandes proyectos implican una gran cantidad de desarrollo y sobre todo un mantenimiento posterior, y es en esta segunda parte donde Drupal 7 gana muchísimos puntos, Drupal 7 será simplemente más mantenible, los módulos irán tendiendo a actualizarse y desarrollarse más en Drupal 7 y Drupal 6 irá poco a poco, cayendo en el olvido. Hay otro par de razones por las que usar Drupal 7, la primera de ellas es que puede llegar el momento en el que el proyecto se alarga tanto (o alguna de sus fases en desarrollo) que ya haya salido Drupal 8 (recordemos que el plan de release de D8 hoy por hoy es una incógnita) y estemos publicando algo totalmente obsoleto y fuera de soporte de seguridad. La segunda es un poco más "intangible", y relacionada con el Software Libre, con grandes proyectos open source, viene gran responsabilidad y tendrá mucha más utilidad ayudar a la comunidad en Drupal 7 que en Drupal 6.

Os recomiendo este artículo de la empresa finlandesa Mearra, del que he robado sacado estos dos gráficos.

Coste del desarrollo en Drupal

El grafico ilustra el coste de desarrollar en Drupal 7 vs Drupal 6 (y Drupal 8). Cuanto más tiempo pasa, más caro se hace el desarrollo en D6 y más se abarata en D7. Al principio, usar D7 es solo para "valientes" puesto que tienes que mantenerte al día con los cambios en el core (que no han sido pocos) y el coste acaba siendo terrible, de la misma magnitud que la ayuda y poder de decisión sobre las nuevas funcionalidades, un claro ejemplo es Examiner.com cuyo equipo ha aportado una cantidad de apoyo tremenda para que Drupal 7 haya sido posible.

Coste del mantenimiento en Drupal

El mantenimiento a largo plazo de un proyecto en Drupal 7 es mucho más barato que uno en Drupal 6, y llegará un momento en el que el coste de mantener un Drupal 6 se dispare y obligue a que se migre a Drupal 7 o incluso Drupal 8. Esto, sumado a lo que he comentado más arriba, sobre las releases de los módulos, cada vez veremos menos módulos para Drupal 6 y los que haya estarán menos mantenidos y no se beneficiarán de las nuevas actualizaciones.

Otros criterios y consideraciones

  • Internacionalización: El componente multilenguaje es uno de los más importantes a considerar, Drupal 7 tiene grandes mejoras en este aspecto, podéis ver las ventajas de Drupal 7 en esta presentación de Ramon Vilar de Ymbra (cat). Si el proyecto tiene un fuerte componente multilingüe tendréis que evaluar si os compensa usar Drupal 7 con las evoluciones que trae, por otro lado podéis encontrar algunos módulos adicionales que todavía no están listos.
  • Las versiones -dev no son malignas: Uno de los argumentos recurrentes que he visto para no utilizar Drupal 7 es que muchos módulos están en versiones de desarrollo o betas. Aunque hay artículos que recomiendan no usar versiones -dev (de desarrollo), alphas o betas, se debe evaluar cada caso, ya que las versiones -dev en drupal.org no son estilo "nighty builds", sino que suelen ser bastante funcionales a no ser que el modulo indique lo contrario, normalmente las versiones de desarrollo incluyen mejoras y correcciones de errores de las estables así que hay que perderle el miedo a hacer pruebas. Y para que no me acuseis de irresponsable: estas pruebas hacedlas siempre, siempre en entorno controlado.
  • Proyectos en producción: Ya para finalizar, si vuestro proyecto ya está online en Drupal 6, es posible que todavía no sea el momento de actualizarlo, sobre todo si tiene mucha funcionalidad o es un proyecto muy voluminoso en cualquier aspecto (usuarios, visitas...), aunque casi todos los puntos anteriores se podrían aplicar a una actualización dentro de 6 meses o 1 año. Eso sí, si tenéis una tienda online con Ubercart en Drupal 6, os recomiendo echarle un vistazo y experimentar con el módulo Commerce Migrate que provee una herramienta automatizada para traspasar los datos desde Ubercart a Drupal Commerce.

¡Ya podéis empezar a darme palos en los comentarios! ¿Vosotros cómo lo véis? ¿Habéis empezado ya proyectos en Drupal 7? ¿o seguís estancados en la edad de piedra Drupal 6?

Firmado: Pedro Cambra, que, a 11 de Noviembre de 2011 lleva 11 meses desarrollando en Drupal 7.

Foto cortesía de laurie.mcgregor. ¡Thanks for sharing in CC!

Comentarios

Hola Pedro, sólo por poner un puntito divergente con tu artículo, aunque en líneas generales coincido con todo lo que has expuesto, no está de más revisar el estado de los módulos contribuidos que tienes pensado utilizar en tu proyecto, aquí puedes encontrar el status actualizado: http://drupalcontribstatus.com/

Y claro, tomar una decisión basándote en más datos, como por ejemplo que views aún no tiene versión definitiva para Drupal 7 (aunque sí una RC) y que hay módulos que ni siquiera han empezado el desarrollo para Drupal 7 o están en estadios muy iniciales.

¡Gracias maestro! Me has animado a no dudar más.

Excelente Artículo, En resumen la respuesta a la pregunta del título de tu post sería: Drupal 7

Mi nombre es Ramon, tengo una empresa basada en desarrollo Drupal y hace más de 11 mesee que no toco otra cosa que no sea Drupal 7.

Pedro ya conoce mi punto de vista un poco talibán. Drupal 7 para mi ha sido la salvación en problemas de tueming, multilenguaje, etc.

A día de hoy no hay excusa para no usar D7. Al contrario, debes tener una muy buena excusa para usar D6

<p>Gracias a todos por comentar!</p><p>@Rafael en esa web encuentras el status de los 100 más utilizados, no todos tienen una versión estable, pero la mayoría son usables ya en producción. Si te has encontrado con algún módulo que necesitas y no tiene versión para Drupal 7 es una gran oportunidad para empezar a contribuir :). Como nota adicional, Views para drupal 7 es por lo menos igual de funcional que para Drupal 6 con versiones estables.</p><p>@Ramon ¡hola Ramon! :)</p>

Estoy completamente de acuerdo en que lo adecuado para proyectos nuevos es comenzarlos en Drupal 7 directamente...

Es más, el tema del rendimiento, generalmente, no es una excusa para mantenerse en Drupal 6, sino que se trata de proyectos consolidados que están esperando el momento adecuado para migrar (cuando todos los módulos que emplean estén disponibles y sin grandes bugs).

Salu2

Bravo por el artículo...
+1 a todas tus opiniones... sobre Drupal ;-)

Saludos
isaac.el.cec

Una pequeña consulta, a partir de tu post: ¿qué recomiendas para montar un periódico digital? Estoy contemplando opciones como OpenPublish (que por lo que he visto, no me gusta mucho, ya que no permite componer fácilmente portadas de diferentes tipos) y NodeStream (que sí lo permite vía una interface drag&pop, pero aún lo veo un poco verde).

Muchas gracias y enhorabuna por tu blog.

Puff, yo tengo en mente actualizar ikkaro.com a D7 , son 1 millón de páginas vistas mensuales y me da entre pereza y miedo, pero habrá que animarse.

Eso sí si tengo que empezar algún proyecto nuevo D7, en una ño o así D6 se quedará obsoleto.

Por cierto Pedro, podías hacer algún artículo comparando Drupalcommerce con Ubecart :)

Un asludo

<p>@issac.el.cec @niteman gracias por comentar y dar vuestro punto de vista :)</p><p>@Joan esta consulta no tiene mucho que ver con el artículo, pero de todas formas... yo he usado OpenPublish y no me ha gustado, se basa mucho en Panels y si no usas ese módulo se queda un poco cojo. Pero sobre todo el problema que le he visto es la dependencia que tiene con Open Calais, que para contenido en español deja bastante que desear. NodeStream no lo he probado pero sin duda merece la pena echarle un ojo.</p><p>@Nacho ¡suerte con la actualización! seguramente caiga algún artículo sobre Drupalcommerce en breve, pero sin comparativas, hay que pasar página :)</p>

A mi lo que mas dudas me plantea a la hora de empezar un proyecto en D7 no es el hecho de que el modulo no sea estable o no puesto que en la mayoria de los casos si utilizas los adecuados sabes que estan trabajando en ello e incluso es una oportunidad para contribuir con la comuninad.
La duda fundamental es elegir un módulo que luego no vaya a ser por asi decirlo el oficial y quede un poco en el olvido, me explico, ahora mismo D7 no trae en el core Nodereference hay que instalarse un modulo en principio que es el References , pero tambien se estan desarrollando otros como Entity Reference que podrian llegar a ser mas importantes que el primero con lo cual tu sitio se podría quedar "obsoleto" por decirlo de alguna manera.
Que pensara la gente que empezó hace unos meses ya con D7 y desarrollo un comercio electronico con Ubercart y ahora ve como el modulo mas prometedor es del de Commerce
Esas son las dudas que a mi me asaltan a la hora de afrontar un proyecto en D7

Yo trabajo mayormente con Drupal 6 por un motivo esencial, la mayoría de mis proyectos son medianos con poco tiempo para desarrollarlos dependiendo mucho de los módulos contribuidos, muchos de los módulos que considero esenciales para casi cualquier proyecto en Drupal aún no están terminados para Drupal 7.

Pero para algún proyecto más pequeño que no necesita tantos módulos Drupal 7 es mejor elección, eso es obvio pero si me permiten una crítica a Drupal 7, ¿por qué puedes actualizar los módulos desde el panel de control y no puedes actualizar el core de igual forma como si puedes hacer con la última versión de Joomla y también con WordPress desde hace años además?

No puedo estar más de acuerdo contigo ;)

Nosotros empezamos hace ya mas de un año y nos (me) tacharon de "versionitis" para nuestra propia web. Mucho esfuerzo, ya que aún era una beta, pero el resultado no ha sido tan malo, para ser una pagina en construccion ;)

Desde ese momento y salvo alguna excepción, la mayoria de nuestros proyectos (pequeños-medianos-grandes) han sido exclusivamente bajo Drupal 7, el cual aconsejo sin dudarlo.

Un saludo ;)

Excelente articulo.

Todos han expuesto el factor estado de desarrolo de módulos que sin duda es algo que no podemos pasar por alto, sin embargo tambien es un buen punto de referencia para ayudar con los test de evaluación de los mismos.

Hace unos dias tambien he migrado mi sitio de D6 a D7 lo cual me ha llevado a invertir un buen tiempo afinarlo y dejarlo funcional 100%, tambien tratando de documentar lo más posible percances que se presentaron durante el proceso para coloborar con esto a la comunidad a través de un post.

Sin duda una forma de avanzar es hacerlo con Drupal 7 ya que la mayoria de funcionalidades que tenia el D6 se pueden migrar y con un mejor desempeño en D7.

Saludos.

<p>@Alfonso lo comento en el artículo y me reafirmo, en muchas ocasiones la versión -dev es más estable que las propias versiones estables. Hay que evaluar cada caso y decidir, puesto que no hay un protocolo estándar para decir qué es una -dev y qué es una 1.0 o una RC. Además es una manera fabulosa de empezar a contribuir: portar &nbsp;y arreglar módulos en D7.</p><p>También decirte que quien empezara un Ubercart con D7 tendría que haber evaluado mejor sus opciones, Drupal Commerce es y ha sido desde que salió Drupal 7, la opción más viable.</p><p>@Andy yo llevo ya casi un año sin ver Drupal 6, deberias empezar a animarte.</p><p>@Si puedo :) es que vosotros empezásteis de los primeros, ¡enhorabuena por la decisión! veo que no os habéis arrepentido en absoluto.</p><p>@Darwin gracias por tu comentario y aportación.</p>

bastante basicos y previsibles los graficos, no?
si fuese por ellos yo instalaria Drupal 8 directamente y asi me ahoro todos los costos
;)
martin

No estoy de acuerdo, es cierto que con drupal 7(unicamente el core) funciona muy bien y ahorra una cantidad enorme de tiempo, si tu proyecto no necesita mas del core obvio drupal 7 es lo mejor opcion, pero el problema viene cuando intentas agregar modulos hasta los mas populares aun siguen en version beta o rc pase cerca de 3 meses intentando solucionar errores con drupal 7 y con drupal 6 hay una estabilidad total, yo opino que sitios de medianos a grandes sin lugar a dudas la mejor opcion es drupal 6 y sitios muy simples o para aprender drupal 7

En este momento tengo varios sitios elaborados sobre Drupal 6. Y, gracias a este artículo me han convencido de la necesidad de migrar. Pero, no a Drupal 7. Migraré a Drupal 8. Ya he iniciado su estudio, versiones 8.12 y 8.14 (están en beta) y son tan diferentes de D7, que carece de sentido pensar en aquel si se apunta al largo plazo. Migrar de D7 a D8 va a requerir de utilitarios especializados, pues D8 prácticamente sólo comparte con versiones anteriores el llamarse Drupal.

Añadir nuevo comentario