Drupal vs. Wordpress

Algunas estadísticas indican que Wordpress en 10 veces más popular que Drupal, pero ¿es 10 veces mejor?

Visitas: 392

Wordpress en sus inicios fue pensado más para bloggers. Herramienta de facil uso y rápido montaje de un blog con mucho SEO. Su fácil uso ha hecho de Wordpress el CMS más popular ocupando casi un 38% del mercado. Algunas estadísticas indican que Wordpress en 10 veces más popular que Drupal, pero ¿es 10 veces mejor?

Wordpress ahora se considera como un CMS bien formado/completo y que puede servir para un gran abanico de “web apps” como puede ser un e-commerce, blogs, páginas corporativas, etc. Cabe también mencionar que los dos CMS tiene una comunidad inmensa que siempre está para ayudar.

Usabilidad

En un principio Wordpress era el líder indiscutible pero con la última versión de Drupal esto puede no seguir así. Drupal 8 trae consigo ventajas para el tema de la usabilidad.

  • Una interfaz de administración completamente responsive.
  • Mejora a la usabilidad de la página de creación de contenido.
  • Quick Edit poder editar contenidos desde al área publica.
  • Entidades como bloques. Esto da gran poder sobre la herramienta ya que permite al usuario tener todas las funcionalidades de los distintos tipos de campos dentro de un bloque.
  • Posibilidad de organizar todos los bloques del sitio dentro de las regiones de un tema

La usabilidad es tema de principal enfoque para Drupal 8. Y que como toda herramienta nueva, es solo cuestión de acostumbrarse. 

Otra gran ventaja en el multidioma en núcleo y de fácil uso.

Personalización

Definitamente Drupal. Drupal desde un principio siempre ha optado por dar un experiencia “out-of-the-box”. Siempre ha buscado que el usuario final pueda personalizar muchos aspectos de su web sin la necesidad de escribir una línea de código.

En Wordpress esto existe y la capacidad de extender funcionalidades es perfectamente posible pero la cantidad de funcionalidades “out-of-the-box” de Wordpress no supera a las ofrecidas en Drupal, como por ejemplo:

  • Nodos (Tipos de contenido).
  • Campos para cualquier entidad (usuarios, nodos, taxonomías, formularios, etc).
  • Entidades (Hablaré de ellas más adelante).
  • Taxonomías (Para clasificar el contenido).
  • Maquetación de la vista pública de un nodo.
  • Maquetación del formulario de creación/edición de un nodo.
  • Vistas (Creación de listados sobre prácticamente cualquier entidad/contenido mediante consultas SQL. Se pueden configurar paginaciónes, permisos, filtros contextuales y expuestos. Los listados se basan en campos de una entidad, en el modo de vista de una entidad. Distintos tipos de formato como una tabla, listados HTML, grids. Definir entrada de menú de la vista, definir la ruta, relaciones entre distintas tablas, cache, ajax, etc. Las vistas es uno de los puntos fuertes de Drupal junto con las reglas)
  • Reglas (Acciones que se ejecutan dado un evento y el resultado positivo de una serie de condiciones sobre prácticamente cualquier entidad en Drupal).
  • Roles y permisos (Cada usuario puede tener un rol diferente si es necesario trayendo consido la ventaja de que cada usuario de gestión no necesitaría un rol de administrador. Los permisos son la manera en que Drupal verifica los accesos a distintas áreas de la web, tanto el área pública como al área administrativa, por url, para las vistas, edición de contenidos, gestión de la configuración del sitio, administrar bloques, comentarios y muchos más permisos. Cada módulo de terceros puede traer sus propios permisos y que Drupal puede entenderlos perfectamente).
  • Ruta privada para documentos privados y públicos.

En fin, posibilidad de personalizar muchos aspectos de la web desde la interfaz administrativa.

Seguridad

Definitamente Drupal.

Drupal tiene un equipo de seguridad de nivel empresarial y provee reportes de seguridad completos y detallados. Muchas entidades gubernamentales optan por Drupal por este motivo

Trafico

Dada la naturaleza inicial de Wordpress su habilidad para manejar mucha cantidad de tráfico se va afectado en su performance. Drupal puede soportar desde una página estática básica hasta un “algo” que tiene miles de páginas y miles de visitas simultaneas, eso sí, esto va mano a mano con la capacidad del servidor. Cabe mencionar que cualquier CMS de hoy en día requiere cierto nivel de performance de servidor

Ahora conceptos más del área backend

Lo primero, Drupal 8 ahora está orientado a objetos (dada su nueva naturaleza con Symfony). Un gran avance para escribir mejor código.

Entidades

Es unos de los mayores avances desde Drupal 7. El concepto de “fieldable entity” ofrece un sinfín de modularidad a la hora de personalizar nuestros sitios. Cada tipo de entidad tiene “bundles” y a cada “bundle” se le pueden agregan campos de cualquier tipo (fecha, enlace, texto, imagen, referencia a otras entidades, taxonomías, correo, booleano, texto  largo, entero, float, etc.  Además de otros posibles tipos de campo que puede traer un módulo de terceros).

En casos de uso reales esto se traduce a, que se pueden crear  tantos “Bundles” de la entidad “node” se quieran y añadirle los campos que quisiésemos. Por ejemplo, un “bundle”  de la entidad “node” serían el tipo de contenido “Article”, “Basic page”, etc que vemos en una instalación por defecto de Drupal 8. Cada uno de estos bundles tiene campos específicos, el tipo de contenido “Article” tiene un campo del tipo file y el tipo de contenido “Basic page” no.

Otra gran ventaja sobre este concepto es el hecho de que los campos son reutilizables entre distintos “Bundles” pero esto no quiere decir que el contenido del campo va a ser el mismo para los dos “Bundles”, es decir, a nivel de base de datos, un campo que está siendo utilizado en varios “Bundles” sabe diferenciar que contenido pertenece a que “Bundle”. 

En pocas palabras y como lo indica la página oficial de Drupal tras gran popularidad en su comunidad, "las entidades en Drupal son como los bloques de LEGO. Se pueden quitar y poner en otros sitios y aunque se muevan de un sitio a otro, el bloque sigue siendo un bloque y tiene una función, forma, color etc."

En términos más de programación orientada a objetos, una entidad es una clase base, un bundle en una clase que extiende de una clase base y un campo es una propiedad de esa clase extendida.

Las nuevas tecnologías en Drupal 8

Lo esencial, Symfony 2.

Drupal 8 toma como base este framework de PHP el cual es un framework basado muy fuertemente en el uso de componentes desacoplados de la app y encapsulados, con la finalidad de responder a una petición de forma optimizada y efectiva.

Drupal 8 saca provecho a algunos componentes de Symfony como pueden ser:

  • Componente de Routing: Viene a reemplazar el hook_menu original de Drupal. Componente usado para el enrutamiento de URL a codigo. Por ejemplo, el componente enrutaria www.site.com/post/1 a el trozo de código encargado de renderizar el contenido de este post.
  • Componente EventDispatcher: Da funcionalidad para el despacho de eventos. Cuando se crea un nodo, se ve el sitio, se crear un nuevo usuario, etc.
  • Componente DependecyInjection: Se encargar de inyectar dependencias de clases cuando se requiere su uso.
  • Componente HTTP Fundation: Se encarga de peticiones HTTP, anteriormente Drupal implementaba esta funcionalidad de forma personalizada.
  • Componente Debug: Mensajes para debugear.
  • Componente Process: API para comandos CLI desde PHP.
  • Componente Serializar: Serializacion de XML y JSON.
  • Componente Validator: Validación de datos de clases.
  • Componente Yaml: Para parseo de archivos de configuración. Tambien se usa para exportar/impotar configuración de sitio de Drupal a Drupal.

Drupal solo usa algunos componentes de Symfony y también implementa algunos propios, por ejemplo, su propio DrupalKernel (Similar al kernel de Symfony) con la finalidad de cargar el entorno necesario para mantener toda la flexibilidad del CMS Drupal.

  • Componente de Libraries & Assets: Código base de librerías y recursos de terceros.
  • Componente de Core Library: Clases del núcleo de Drupal.
  • Componente Archiver: Crear .tar .zip
  • Componente Utility: Clases de ayuda/respaldo para arrays, urls, string, numbers, etc.

Composer

Composer no es más que un manejador de dependencias tanto para el nucleo de Drupal 8 como para módulos adicionales.

Twig

Nuevo sistema de plantilla sobre todo seguro ya que Twig no “parsea” código PHP, “parsea” variables, etiquetas, expresiones en un fichero de texto.

Multisite

Por defecto Drupal 8 soporta multisitios tanto de subdominios o por subcarpetas y por defecto cada sitio funciona con una base de datos diferente, es posible usar una sola base de datos con un prefijo para las tablas pero es desaconsejado principalmente si cada sitio tiene usuarios de distintos planes de negocio.

Se pueden separar “piscinas” de módulos, es decir, ciertos módulos solo están disponibles para ciertos sitios o una “piscina” general para todos los sitios.

 

Autor

Imagen de Gianni Paolo Di Falco

Programador

CAPTCHA
Esta pregunta es para comprobar si usted es un visitante humano y prevenir envíos de spam automatizado.