Joomla

Hace ya algún tiempo que me encuentro desarrollando un proyecto en Joomla, del que quizás hablaré en otro momento. Mi impresión personal del sistema en un principio era buena y prometedora, pero hubo varias razones que luego me hicieron pensar lo contrario. Me sentí raro de tener esa sensación de un sistema tan conocido y usado, pero de alguna forma me alegra no ser el único.

La primera cosa que me impactó en mal sentido es la pobreza de sus actualizaciones. Hace años que vengo escuchandoo de Joomla en su versión 1.0, para que la actual de hoy sea la 1.6 y hace tiempo que ya no veo actualizaciones… cosa más preocupante cuando realmente creo que hay cosas que urgen ser remediadas. Sin embargo, entre ellas hay cuestiones que son de nivel arquitectural, que me atrevo a destacar (citando otras lecturas al respecto).

Antes de entrar en eso, no quiero comparar Joomla con otros CMS (por más que la tentación me lo indique). Sé que CMS hay muchos, y cada uno tiene un enfoque distinto en la forma en la que deben tratarse los datos, los flujos del usuario (es decir, nosotros), la forma en la que debería extenderse, y otras cuestiones extras. No soy quién para decidir si el enfoque de Joomla es correcto o no, incluso a pesar de no encontrarlo cómodo personalmente, pero esa es una apreciación propia.

Voy a completar mi lista citando varias cosas que dijo AhYap en su review de Joomla.

Yendo a los elementos, Joomla hace una suerte de nice URLs pasando parámetros al index.php. Si bien esto puede solucionarse con un .htaccess fácilmente, según parce, Joomla no posee ningún manejo interno de las mismas. No es algo end-user, como quisiera venderse (o como parecería intentar serlo su administrador interno).

Joomla, en su versión 1.6 todavía no tiene soporte para los comentarios a los artículos. Esto me sorprende profundamente. Muchísimos (casi todos?) los sistemas CMSs poseían esa posibilidad, lo cual le daba algo de interacción al usuario, pero… aquí no apareció.

Joomla utiliza categorías y secciones. Si bien el concepto es fácil de comprender, es solamente una jerarquía de dos niveles y estática. Esto trae grandes problemas o, peor, quita flexibilidad. Prácticamente todos los sistemas han adoptado la política de los tags, que podríamos considerar como un superconjunto de categorías únicas. Otros sistemas también agregan la posibilidad de creación dinámica de categorías y de múltiples niveles jerárquicos a demanda.

El punto 4 que menciona AhYap es donde quiero detenerme. Programar en Joomla puede ser muy fácil, o puede ser traumático. La documentación disponible es realmente poca, y mucho de lo que hay se encuentra desactualizado. Peor todavía, Joomla impide el diseño de capas desacopladas, porque no permite la independencia de la forma de generar datos y la forma de mostrarlos. Esta terrible característica pone trabas desde el momento del diseño al momento de la implementación cross-browsing, haciendo que muchos buenos diseños terminen modificándose a la peor de las formas.

Alguien me dijo alguna vez que ya todo estaba hecho para Joomla, solo faltaba buscar el componente e instalarlo. Si bien es cierto que la web está atascada de componentes para Joomla, es un ejercicio interesante entrar a Milw0rm y hacer una búsqueda al respecto. Hagan el ejercicio y busquen Joomla. Igual de atascado y eso no es bueno.

Esto ha sido mi gran decepción. En el intento de creación de un template, tuve en cuenta las mejores y más prolijas prácticas para la web y PHP, para luego tener que desechar muchas para lograr que el sitio se viera como debiera verse. Decepcionante en verdad.

Su organización interna me resultó, por otro lado, terriblemente anti-intuitiva (ni mencionar que creo que le falta un poco de amigabilidad de interfaz). Leyendo la ayuda logré identificar la forma de configurar correctamente su comportamiento, pero se supone que debería de lograrse de una forma más intuitiva. Ofrece (o quiere ofrecer) mucha flexibilidad de contenidos, pero la configuración es ciertamente compleja, cuando se supone que está pensado para los usuarios finales.