Qué CMS es mejor para VPS: Joomla o Drupal

Qué CMS es mejor para VPS: Joomla o Drupal

27.01.2023
Autor: HostZealot Team
2 min.
857

Si un usuario está pensando en crear un sitio web o un blog, sin duda se enfrentará a la elección de un sistema de gestión de contenidos web. Los recursos, que el propietario del futuro portal web encontrará en el proceso de familiarizarse con los CMS más populares, le dan un análisis comparativo en nombre de los webmasters y de los usuarios ordinarios. Pero hay poca información sobre qué sistema es mejor para los desarrolladores. En este artículo, vamos a ir más profundo en las características de dos CMS - Joomla y Drupal. Haremos una comparación técnica de los sistemas, consideraremos sus características y comprenderemos la diferencia de enfoques en la implementación del código.

La comodidad de trabajar en CMS Joomla y Drupal

Cualquier sistema de gestión de contenidos empieza por la usabilidad. Esto incluye la facilidad de entrada, la curva de aprendizaje y, por supuesto, la interfaz de usuario. 

Si hablamos de Joomla y Drupal, ambos CMS están enfocados a programadores y requieren conocimientos de HTML y PHP. Los blogs dedicados a los sistemas de gestión de contenidos siguen la misma creencia: el CMS más fácil y cómodo es WordPress, y el más pesado es Drupal.

En cuanto a la realización de proyectos complejos, se da la primacía a Drupal debido a su gran número de módulos, WordPress es el sistema menos adecuado para crear páginas web complejas. Joomla es una especie de "media de oro" en estas categorías, y si se compara el sistema en nombre del webmaster tal conclusión es cierta.

Las páginas web en Drupal se crean utilizando dos herramientas: vistas y bloques. El webmaster tiene más flexibilidad a la hora de crear páginas complejas. No necesita tener conocimientos de programación de módulos.

En cuanto a Joomla, el sistema ofrece conjuntos similares de herramientas (denominadas componentes en la documentación), pero son difíciles de utilizar sin conocimientos especiales. Si necesita crear rápidamente una página compleja sin conocimientos de desarrollo, Drupal es la mejor opción.

Sin embargo, crear funciones especiales a medida es otra historia. Una interfaz de usuario modular y una gestión de contenidos flexible no son suficientes en estos momentos. Sin software adicional, cualquier sitio seguirá siendo poco optimizado, pesado e incómodo, y los módulos disponibles no siempre satisfacen las peticiones.

Aunque Drupal ofrece herramientas flexibles de creación de páginas para el webmaster, la administración con este CMS sigue siendo compleja y tiene una curva de aprendizaje pronunciada. Los usuarios tendrán que contratar no sólo a un webmaster, sino también a un desarrollador que utilice activamente Drupal. Al usuario medio le llevará mucho más tiempo aprender Drupal que si se dedicara a dominar Joomla. La consola de Drupal es menos amigable para los desarrolladores novatos que las herramientas de Joomla.

Si un desarrollador abre el código fuente de una página escrita en Drupal, el análisis sintáctico y la comprensión de lo que está sucediendo le causará grandes dificultades. Configurar Drupal no es fácil porque el sistema utiliza una interfaz poco estructurada. Joomla, por otro lado, utiliza un marco orientado a objetos que sigue el patrón MVC. Integra un gran número de plantillas, como la práctica Listener, por no mencionar otras.

Un desarrollador competente familiarizado con Drupal (cuyos costes son mucho más elevados) no salvará al cliente del riesgo de que el sitio sea un sistema de ramificación sin estructura con un montón de dependencias y excepciones. Esto crea un montón de problemas en el futuro cuando se necesita hacer cambios, pero es imposible hacerlo en el sistema actual, ya que otras funciones están obligados a romper.

Joomla y Drupal tienen algo en común

Para considerar las diferencias entre Joomla y Drupal, vamos a desglosar su principio de funcionamiento en 5 categorías. Vamos a identificar puntos en común y diferentes enfoques en la implementación de herramientas, vamos a entender qué sistema de gestión de contenidos cumple con los requisitos del desarrollador.

Almacenamiento de bases de datos

Considere cómo Drupal gestiona la información del servidor:

  1. Las vistas del CMS (visualización del contenido del CMS) están en la base de datos. El usuario no puede establecer un sistema de control de versiones. Los programadores no tienen la capacidad de co-crear estas vistas.
  2. Si aparece nuevo contenido en Drupal, pasa a formar parte de las tablas de la base de datos. La vista de la base de datos cambia a medida que se crean nuevos contenidos. Esto significa que no hay un número fijo de tablas en la base de datos. Si un programador necesita crear una aplicación web y adjuntarle un modelo Entidad-Relación, no puede hacerlo. ERD requiere un número estático de tablas en el diagrama, debido a la estructura de las bases de datos, cambian dinámicamente.
  3. Los CMS modernos almacenan los registros en archivos, Drupal mantiene los datos de registro en la base de datos. Almacenar los registros en una base de datos hace que sea muy difícil acceder a ellos y, por lo tanto, más difícil perfilarlos y analizarlos. Para analizar el registro de un sitio en Drupal, un desarrollador no podrá utilizar los comandos habituales de Linux. Las herramientas sed, awk, cut, cat no estarán a su disposición.
  4. Guardar bases de datos es mucho más lento, y los propios datos ocupan mucho más espacio de almacenamiento. Esto infla innecesariamente la base de datos y la hace ineficiente. Cuando se trata de recursos con mucho tráfico, el análisis de registros se hace casi imposible. Además, este sistema no permite rotar registros ni archivar registros antiguos.

Patrones de diseño modernos

En primer lugar, es necesario definir los dos enfoques CMS para la creación de código. Joomla es un sistema orientado a objetos. En cuanto al código de Drupal, aunque utiliza un método de codificación similar, muchas herramientas utilizan PHP de tipo procedimental.

Antes de Drupal 9, el CMS implementaba dos viejos patrones de diseño que se consideran malos en la comunidad de programadores:

  • Enfoque procedimental - código mal organizado, es "ilegible" y difícil de entender;
  • Hooking o hijacking - capacidad de actuar cuando ya se ha creado un "nodo de contenido".

En cuanto a Joomla, el sistema utiliza nuevas plantillas de diseño:

  • patrón de programación MVC (modelo, vista, controlador);
  • programación dirigida por eventos
  • patrón de comportamiento Observador (Observer);
  • enfoque orientado a objetos (es decir, polimórfico, utilizando encapsulación, herencia)
  • patrón de generación "Singleton" (Singleton);
  • ObjectFactory.

Estos patrones utilizan los populares frameworks Symfony2, Zend. El patrón de diseño Database Abstraction Layer (DBAL para abreviar) está mejor integrado en Joomla. Si un desarrollador necesita un ORM en toda regla, Joomla puede utilizar Doctrine.

La introducción de prácticas de programación modernas en Joomla es el resultado de la mejora continua del CMS, mientras que Drupal se actualiza con un retraso de varios años. El desarrollo de Joomla es posible gracias a una activa comunidad Joomla.

qué cms es mejor para vps: joomla o drupal

Arquitectura de CMS

Joomla tiene una API extremadamente clara y bien diseñada. Drupal está escrito en código ininteligible con una mala organización de la estructura. Si hacemos una analogía, Joomla es como un árbol de Navidad en su arquitectura. Drupal puede compararse con una molécula llamada buckyball.

El desarrollador dispone en Joomla de una estructura jerárquica en forma de "árbol". El tronco principal es el núcleo de Joomla. Sobre el tronco se sitúan las grandes ramas (APIs), a las que se unen ramas más pequeñas (componentes y widgets). En las ramas están las hojas (widgets, módulos). Puede adjuntar fácilmente componentes adicionales.

Es posible utilizar las características de gestión de artículos, y los beneficios de las herramientas de seguridad de Joomla (niveles de acceso y controles). En los componentes son subcomponentes, existe la oportunidad de construir un camino a la rama de otra persona. Pero, en general, las ramas tienen un contacto mínimo entre sí. 

La arquitectura de Drupal es como un objeto en forma de bola con muchos puntos en la superficie llamados módulos. Cada extensión es capaz de conectarse a cualquiera de los módulos creados. Es decir, debido a la estrecha integración, todos los componentes interactúan entre sí. Esta estructura es difícil de entender. Cualquier característica que se pueda añadir reducirá aún más la calidad del código. En las nuevas versiones, Drupal se deshizo de los hooking, lo que simplificó notablemente el trabajo con el código.

Velocidad de funcionamiento

Para leer una página sencilla, Drupal requiere unas 100 peticiones. CMS Joomla es más ligero y más optimizado, el núcleo del sistema es mucho más rápido. La memoria mínima para Joomla es de 512 MB, Drupal necesita al menos 2 GB.

Para mejorar el rendimiento de los recursos con gran tráfico y amplia base de datos, Drupal utiliza Solr. Para Joomla existe Sphinx, esta herramienta está escrita en código nativo C++. La herramienta es mucho más fácil y rápida. Al mismo tiempo, el programador no necesita añadir Sphinx para la mayoría de los recursos. El rendimiento de Joomla es suficiente para trabajar rápidamente "out of the box".  

Joomla hace frente al tráfico pesado y puede acceder rápidamente a la base de datos bajo carga pesada. Sphinx se utiliza si se requiere una ganancia significativa de rendimiento. La combinación de Drupal y Solr no puede competir con las soluciones para Joomla.

Lo anterior demuestra de manera concluyente que, contrariamente a la idea errónea de la mayoría, Joomla es mucho más adecuado para el desarrollo de recursos web grandes y complejos que Drupal.

Caché de datos

La mayoría de los benchmarks coinciden en que Joomla es más rápido y utiliza menos recursos si no se utiliza la caché. Al mismo tiempo, los sitios de Drupal son más rápidos con la caché activada. En la práctica, una configuración adecuada de la caché en Joomla superará a Drupal en términos de rendimiento. Además, la caché de Joomla, consume menos recursos en comparación con la caché de Drupal.

Las promesas de Drupal y Joomla

El argumento para elegir Joomla en lugar de Drupal es linux.com. Los desarrolladores que trabajan en este sitio son conocidos por su obsesión por la calidad del código. Son modelos a seguir para otros programadores. 

Los miembros de la Fundación Linux calificaron a Joomla con 5, mientras que Drupal sólo recibió 3 estrellas. Dan López, arquitecto web de linux.com, dijo en una entrevista que él elige Joomla. Aunque muchos sitios del gobierno estadounidense están construidos con Drupal, el hecho de que el principal sitio de Linux utilice Joomla inclina la balanza a favor de este último.

En comparación con la comunidad de desarrolladores de código abierto Drupal, la comunidad que apoya Joomla, muchas veces más grande. Es decir, los programadores eligen un sistema más fácil de entender, cómodo y ligero.

Desde el punto de vista empresarial, las empresas que eligen Drupal tienen dificultades para encontrar especialistas. Los desarrolladores experimentados de alta calidad de este CMS son mucho menos numerosos, y sus servicios son más caros que los de los programadores de Joomla. La mayoría de los desarrolladores prefieren escribir código en Joomla. A menudo rechazan las solicitudes relacionadas con Drupal.

El futuro de Drupal

Drupal 9, que salió en 2020, no ha resuelto muchos problemas desde Drupal 7 y Drupal 8. El sistema de gestión de contenidos consiguió la introducción del framework Symfony2 y el compilador de plantillas Twig 2, pero la compleja estructura del código no ha ido a ninguna parte. Parte de las herramientas de CMS utilizan el enfoque orientado a objetos, el sistema se deshizo de enganche, pero completamente desde el método de procedimiento Drupal no ha ido lejos.

Otro problema era la compatibilidad con versiones anteriores. Sitio en Drupal 7 (soporte expira en 2023) no se puede transferir rápidamente a Drupal 9. Con Drupal 8 apareció el mecanismo de la depresión (donde las características obsoletas se eliminan del núcleo), que mejora ligeramente la herencia con la transición a la nueva versión.

En lugar de una conclusión

Tanto Joomla como Drupal son lo suficientemente buenos para implementar cualquier proyecto. En este caso, la complejidad del sitio no importa, cada sistema es capaz de implementar cualquier requisito. Joomla tiene una mayor prioridad debido a la rápida introducción de nuevas características, el uso de código estructurado y claro, y la adición de características sin el riesgo de "romper" todo el sistema. Drupal está "alcanzando" poco a poco a Joomla, pero nadie sabe cuándo estos CMS se igualarán en velocidad y facilidad para el desarrollador.

# VPS Compartir:
Artículos Relacionados