Art. para Webmasters y Joomla!


Logo de Net & Software (N&S)

Net And Software

Google PlusSkype netandsoftwareRSSTwitterTeléfono: (+34) 950 030 727 ✆  
Lunes a Viernes: 10h - 13h ; 17h - 20h   

Creación y Diseño de Páginas Web

Soporte, Desarrollo y Soluciones Joomla!®

Mar02Sep2014

Comprensión muy difícil

 

 

Introducción

Tras la falta de comparaciones técnicas en Internet (y en español) entre Drupal y Joomla!, realizamos este artículo comparativo para desgranar a nivel más técnico Drupal 7 y Joomla! 3, en los que se basa.

Drupal 7 versus Joomla! 3

Ambos CMS son software libre, se basan en PHP y son gratuitos, por lo que son un magnífico punto de partida para la comparación. Hay literatura abundante superficial sobre ambos, pero no en el modo más técnico, es decir, en el funcionamiento del framework de PHP subyacente para cada CMS. También existen artículos de comparación de rendimiento e infinidad de artículos que comparan a nivel de usuario estos CMS (incluyendo Wordpress -léase este artículo en inglés-), pero nada como la profundidad técnica de este artículo.

Quizás antes de empezar sea bueno aclarar que los módulos de Drupal son los llamados componentes en Joomla! 3, y los módulos de Joomla! es el concepto de bloques de Drupal 7.

 

Comparativa Básica

Antes de verlos en profundidad, unas comparativas de Google Trends sobre Drupal y Joomla! en España. Estas estadísticas hay que verlas como lo que son (niveles de consulta en buscadores), que quizás no tengan nada que ver con la realidad, pero que dan unas nociones iniciales de lo que veremos en profundidad.

Comparación de búsquedas Drupal y Joomla! en Google Trends

Localización de búsquedas más buscadas de Drupal:

Geolocalización de búsquedas Drupal en Google Trends

Localización de búsquedas más buscadas de Joomla!:

Geolocalización de búsquedas Joomla! en Google Trends

Ahora tenemos una idea de los "puntos calientes" de uno y otro CMS en España.

 

Facilidad de uso frente a complejidad de proyectos

Estamos hartos de ver la clasificación de facilidad de uso frente a complejidad de ambos CMS -Drupal y Joomla!-, y se incluye siempre a Wordpress. La clasificación implantada es que Wordpress -estando en el extremo de la comparativa- es el más fácil de usar, no siendo apto para proyectos complejos. Joomla! se encuentra en el medio con una facilidad media en su uso y bastante apto para proyectos complejos. En el otro extremos está Drupal, que es el más difícil de usar y que es más adecuado para proyectos complejos. Aunque esta clasificación tiene bastante de verdad, debe considerarse sólo en términos generales.

¿Por qué sólo en términos generales? La respuesta es porque de parte de los desarrolladores, esta clasificación no es cierta. Desarrollar una extensión de Joomla! es más fácil que en Drupal, y también más fácil que en Wordpress, por lo que el CMS de Joomla! toma ventaja respecto a los otros dos.

WordPress vs Joomla! vs Drupal

Hay que aclarar muy bien, que hablamos de extensiones hechas con la API de los CMS. Los programadores sabemos que se pueden copiar funcionalidades hechas en PHP y funcionarán en todas las plataformas (Wordpress, Joomla! y Drupal) pero a costa de la seguridad y la baja calidad del software desarrollado. Evidentemente, no hablamos de esta opción, si no el uso perfecto de las API de cada CMS, la calidad de la programación y la facilidad de mantenimiento y fiabilidad gracias a trabajar bajo el amparo de la API.

Del mismo modo anterior, el mito de que Drupal es más adecuado que Joomla! para proyectos complejos se debe al análisis desde la perspectiva de un webmaster y no de un programador (desarrollador). El enfoque de diseño modular que proporciona Drupal para el diseño de la interfaz de usuario y la entrada de contenido tiene gran culpa de ello. Drupal ofrece así la máxima flexibilidad para crear páginas web con una rapidez superior.

Sin embargo, en la construcción de nuevas funcionalidades a medida para una web se torna diferente. Esta flexibilidad se vuelve complicada a la hora de evolucionar el código, innegablemente necesario en Internet. Por eso es tan importante que esta flexibilidad de la que hablamos sea lo suficientemente buena para adaptarse a las necesidades de la web creada.

 

Comparación técnica básica de Drupal y Joomla!

En cuanto analizas un poco en profundidad el código de ambos CMS, comprendes las bondades y deficiencias de cada uno. Tan pronto abres el código de Drupal, las deficiencias son más evidentes a nivel de desarrollador. Personalizar Drupal no es tarea fácil, ya que se basa en un diseño de procedimientos ya obsoleto, mientras que Joomla! está diseñado bajo el marco de MVC -modelo, vista, controlador-, con una programación orientada a objetos y poniendo en práctica modificaciones en patrones de diseño de forma muy eficaz.

Sólo destapando someramente las raíces de estos dos CMS, entendemos que la contratación de programadores cualificados para Drupal sea tan caro. Pero el cliente también debe saber que cualquier cambio futuro será costoso, no por el precio del programador, si no porque no se adaptará el código a las futuras versiones de Drupal.

Pero el análisis no vamos a dejarlo aquí. Hay muchos temas para, realmente, poder valorar con causa justificada cuál de los dos -Drupal o Joomla!- gana en cada terreno, y cuál, en definitiva, es mejor. La visión será desde el punto de vista del desarrollador, por lo que cuántos plugins tiene cada uno, o qué facilidad de instalación tienen, lo dejamos para otro tipo de comparativas.

 

Base de Datos

En Drupal, las vistas se almacenan en la base de datos. Esto que puede parecer sin importancia, a nivel de diseñador gráfico web supone un particular inconveniente, ya que la facilidad del uso de herramientas como svn o git para desarrolladores inicialmente se esfuma. Drupal ofrece la funcionalidad de exportar vistas a archivos. Del mismo modo, existe un "módulo de funciones" que le permite exportar los tipos de contenido en archivos. Si bien esto proporciona una solución práctica para realizar un seguimiento de su trabajo en un software de control de código fuente tipo git, el resultado es otra capa innecesaria de complejidad.

Base de datosEl registro en Drupal se realiza también en la base de datos. Muchos programadores piensan que es una mala praxis. Todos los sistemas avanzados guardan este tipo de registros en ficheros por muchos motivos. No es de recibo arrastrar y ampliar masivamente una base de datos para un registro de actividad, ya que a la larga supone un lastre para la carga y rapidez de la web. La base de datos de Drupal se vuelve ineficaz con el paso del tiempo. Por otro lado el acceso es más complicado y su análisis se torna difícil. Las herramientas de uso de la propia consola de Linux para detectar y analizar estos registros no se pueden usar, así que tendremos que extraer la información mediante SQL en consola. En sitios de un muy alto tráfico se hace imposible consultar gigabytes de información. Pero es que la opción de la rotación de log, evidentemente no existe, así como no existe la compresión de la información (mediante la compresión del fichero). Desde luego Drupal, en este sentido, es todo un fracaso.

Tras un análisis particular de la estructura del contenido de Drupal, este CMS tampoco ayuda para relacionar tablas en la base de datos. El contenido no puede ser relacionado porque todo contenido se corresponde con dos tablas en la base de datos, por los que aquellos desarrolladores que les guste realizar diagramas de Entidad-Relación van perdidos con Drupal.

 

Diseño estructural y arquitectura del núcleo

Como hemos dicho al principio, Joomla! -basado en PHP5- es un software con programación orientada a objetos, y Drupal -basado en PHP4- posee programación procedimental.

Joomla! ha conseguido evolucionar y no estancarse como Drupal, lo que hace que use estructuras de diseño modernas junto a unas buenas prácticas de programación. Una buena referencia es el artículo de "cómo llegar a ser un programador mejor" (en inglés). Así, la influencia sobre Joomla! de Symfony2 o Zend dan como resultado la POO, el modelo MVC, etc.

ORM -Object-Relational Mapping-Además, la capa de abstracción de la base de datos está mejor creada en Joomla! que en Drupal, siendo casi tan buena como un ORM -Object-Relational Mapping- o mapeo objeto-relacional.

Estas mejoras en Joomla! se deben en parte a la naturaleza activa del proyecto y el deseo de la implementación de técnicas para avanzar y progresar el CMS de Joomla!, gracias en parte a una comunidad global también muy activa.

Joomla! posee una estructura de árbol donde el tronco es el core -núcleo- y las ramas son los componentes, cuyas ramas pueden ampliarse fácilmente. Las hojas podrían ser los módulos o plugins. Con esta analogía (extraída del blog de butterfly.com.au) puede verse que los componentes pueden interaccionar fácilmente con el core para controlar los niveles de control de acceso o funciones de administración de artículos. La interacción entre subramas normalmente pasa por el core y el contacto entre componentes es mínimo.

En Drupal, la forma procedimental complica la interacción entre módulos. La calidad del código es menor en funciones personalizadas y la poca interacción del módulo creado se traduce en un problema con esta estructura cuando se trata del mantenimiento del código.

De la misma forma el debug se hace complicado en Drupal con herramientas de depuración modernas.

Asimismo, el PSR -o códificación estándar básica para PHP- son una serie de normas adoptada por la mayoría de framework comerciales, que comprende lo que debe considerarse la norma de codificación de los elementos que se requieren para garantizar un alto nivel técnico de interoperabilidad entre el código PHP. Se creó el PSR-0 y actualmente está el PSR-1. Si bien Joomla! es compatible con PSR-0, en breve lo será con PSR-1, mientras que Drupal no es compatible con ningún PSR. Puede leer más acerca de esto -en español- en la página oficial: http://www.php-fig.org/psr/psr-1/es/ (traducción de la página inglesa oficial).

 

Rendimiento y caché

Drupal necesita de media 100 consultas a la base de datos por cada carga de página simple que se haga. Debido a esto y otros problemas de rendimiento relacionados con su arquitectura, la caché se hace casi indispensable. Ello provoca más requerimientos hardware, mayor complejidad y necesidad de muchos recursos.

RendimientoJoomla! es mucho más ligero. Su base de datos no arrastra los registros, y está mejor optimizado. El núcleo es muy superior en rendimiento, y con las mejoras de Joomla! 3.3, el router se ha mejorado y es más ligero. También con la llegada de versiones menores de Joomla!, las extensiones innecesarias del núcleo serán desacopladas, lo que aligerará aún más la carga.

Por lo anterior, los requerimientos recomendados actuales son de 512 MB de RAM en el caso de Joomla!, y 2 GB en el caso de Drupal.

Existe un punto a favor de Drupal cuando se activa la caché, donde todos los marcadores que miden el rendimiento de ambos, dan cierta ventaja a Drupal. Sin embargo, sin la activación de la caché en ambos CMS, Joomla! es más rápido y es menos intensivo que Drupal. Esto se debe a la simplicidad de Joomla! en el almacenamiento de su caché. Tiene la ventaja de que es más comprensible, por lo tanto, más fácil de usar. También parece que si la caché de Joomla! la configuran correctamente expertos en sistemas, pueden superar a Drupal. Así que Drupal, con la caché activa, es más rápido.

Resumiendo el rendimiento de ambos, dándole esta última ventaja a Drupal -posiblemente cuestionable-, en caso del rendimiento, y en contra de la creencia común, Joomla! es mucho mejor para el desarrollo de grandes sitios que Drupal.

 

En casos reales

Drupal proporciona la máxima flexibilidad para un webmaster a costa de una administración muy compleja y con una curva de aprendizaje elevada.

Arash Arabi en su blog de butterfly.com.au lo expresa muy bien: "la administración de Drupal es como el tablero de instrumentos de un avión de combate", mientras explica "los clientes de Drupal tendrán que contratar a un experto webmaster y los usuarios en general simplemente no pueden entrenarse para usar Drupal como lo harían con Joomla!".

Las comunidades de código abierto que apoyan ambas plataformas son importantes. Joomla! posee una comunidad mucho más grande en comparación con Drupal, lo que indica que los desarrolladores prefieren trabajar en Joomla! en lugar de Drupal.

Los desarrolladores de Drupal son más escasos y también el precio de contratación es mayor, por lo que para los casos reales de negocios y empresas que deseen un servicio de CMS profesional, es un inconveniente trabajar con Drupal.


Tabla Comparativa Drupal7 y Joomla!3

 

Conclusiones

Se deja poco margen de error para saber qué sistema de gestor de contenidos es mejor: Joomla! 3 es mucho mejor sin la más mínima duda.

Tras el análisis exhaustivo anterior, Joomla! es mejor que Drupal, independientemente del tipo de proyecto, el tamaño de la web y los requerimientos que necesite.

Joomla! 3 se come a Drupal 7 en tecnología

Entonces, ¿cuándo debo usar Joomla! y cuándo Drupal? Pues en casi todos los casos debe decantarse por Joomla!. A menos que tenga razones no técnicas (mis usuarios ya saben Drupal, mi web ya está hecha en Drupal, y supuestos parecidos), Joomla! debe ser su opción.

Pero no es una conjetura de un grupo de personas afines a Joomla! (como puede parecer). Yo les animo a que comenten con personas que desarrollen en las dos plataformas y que, según este artículo, opinen y le digan realmente qué piensan.

Es muy probable que en Internet pueda leer que "Drupal es más robusto y eficiente que Joomla!", pero la realidad es muy distinta al pensamiento ya aprendido.

Si para estar actualizado con las últimas técnicas y mejoras de seguridad, es un infierno para el desarrollador estar con Drupal, realmente no existe ya ninguna ventaja competitiva en el CMS.

Drupal 8 parece que podría mejorar mucho el CMS en su versión 7 -la actual-, gracias a un rediseño y reconstrucción completos del core, que usará gran parte de la plataforma Symfony2. Pero esto es parte del futuro, al igual que Joomla! también tendrá otro futuro, que estoy seguro que será para mejorar aún más. Hasta que todo ese futuro llegue, no merece la pena considerar a Drupal para ningún proyecto basado en CMS.

Aunque algo antigua ya, es interesante leer -en inglés- una entrevista a Dan Lopez de linux.com explicando el porqué eligió Joomla! para un portal como linux.com. Recordemos que Linux pertenece a Linus Torvalds, genio y figura del código abierto y del magnífico sistema operativo GNU/Linux. Algunos subdominios de linux.com están realizados con Drupal, pero la raíz y dominio principal está realizado con Joomla!.

Entrevista: http://community.joomla.org/blogs/community/1132-linuxcom.html

 

Definitivamente: Joomla! 3 es muy superior técnicamente a Drupal 7.

 

 

Basado en: http://www.butterfly.com.au/what/we-re-talking-about/entry/joomla-vs-drupal-a-technical-comparison-of-the-best-open-source-cms

Escribir un comentario


Código de seguridad
Refescar

Resuelva su DUDA Joomla!

Pregunte una duda a N&S. Si es sencilla, nosotros la responderemos en el menor tiempo posible, y saldrá publicada en nuestra FAQ de Joomla! 3.x
Email:
Asunto:
Pregunta FAQ Joomla! 3.x:
Pregunta de control: ¿Cuántas ruedas tiene un triciclo?

Diccionario de Internet

Explicaciones sencillas a cualquier término informático de Internet o Joomla!.

Compártelo

Suscríbete al Boletín

Boletín Mensual con un resumen de las noticias de seguridad, novedades y artículos de interés de Joomla!
Términos y Condiciones

Últimas Noticias

Últimos Artículos Blog

Web 2.0. Desarrollo Joomla! y Programación Web. Cursos Online Videoconferencia, Amplia Experiencia en Joomla!, Posicionamiento Orgánico SEO.