Plugins: Ampliando la funcionalidad de los programas Imprimir E-Mail
martes, 31 de enero de 2006
PluginsMuchas de las aplicaciones más conocidas y populares actualmente, permiten el uso de plugins. Los plugins son pequeños programas que se integran dentro de otros más grandes para añadir alguna funcionalidad específica. Algunos ejemplos son Firefox, eclipse, jedit, Joomla o incluso el kernel de Linux si vemos a los módulos como plugins, ya que encajan en la definición previa. En principio, parece que todo son ventajas, puedo añadirle a mi aplicación este o aquel componenque incremente su funcionalidad, pero tienen algunos problemas...

Ejemplos de aplicaciones que permiten extenderse

Está de moda que las aplicaciones soporten plugins. Obviamente, la cantidad y calidad de los mismos depende de lo fácil que sea interactuar con la aplicación en sí y de la documentación que exista al respecto. La presencia o ausencia de documentación es un factor crítico. En el caso de eclipse o Firefox, existe bastante documentación y tutoriales de cómo diseñar paso a paso un nuevo plugin. Por tanto no es extraño que haya tal cantidad de plugins para estas plataformas.

Otro caso es el de Joomla. Joomla es un gestor de contenidos escrito en PHP. De nuevo, está diseñado de manera que se proporciona un núcleo para que los componentes interactuen, siendo estos los que proporcionan la funcionalidad. De serie, Joomla ofrece gestión de contenidos, de usuarios y poco más. Sin embargo, se pueden instalar editores WYSIWYG para escribir contenido (como mosCE), generadores de mapas del sitio (como samSiteMap), componentes que permiten añadir comentarios (como AkoComment), componentes para hacer las direcciones más agradables (como 404SEF)... ¿más? Vale, módulos para mostrar AdSense o mapas de Google, otros que integran foros en el sitio web, otros que permiten añadir contenidos multimedia en cualquier parte, otros que añaden la clásica encuesta...

Qué hacer para no perderse

En esta situación, uno piensa, esto está genial. Dispongo de la funcionalidad de mi programa y si quiero puedo ampliarla instalando nuevos componentes, plugins, extensiones o como quiera usted llamarlo. En este punto, hay dos tipos de usuarios, el que lo instala todo (y sueña con un bundle de su aplicación con 800 plugins) y el que instala poco o nada (que bien puede ser porque no lo necesita o porque teme romper algo).

Confieso que tengo un poco de ambos usuarios. Instalé un montón de plugins de jEdit cuando en realidad sólo necesitaba el que permite editar ficheros vía FTP de manera transparente y en otras aplicaciones como Firefox o Eclipse me cuido bastante de instalar plugins que no necesite.

En general, uno debería plantearse qué necesita que no esté presente en su aplicación, y si encuentra alguna necesidad, buscar si existe el plugin correspondiente. En general, hablamos de software libre, si no existe alguien podría decir Ey, escríbelo tú mismo. Siendo realistas, ningún usuario lo haría por falta de conocimientos técnicos, y de aquellos técnicamente capaces de hacerlo, sólo un 0,1% siquiera se lo plantearía. Por tanto, si no existe el plugin, nos aguantamos. Afortunadamente las necesidades más frecuentes de un usuario medio están cubiertas por ese 0,1% de heroicos desarrolladores que escriben plugins útiles.

Personalmente desaconsejo visitar páginas con muchos plugins, como por ejemplo la página de extensiones de Firefox. Lo cierto es que navegando por esta página uno sufre cierta angustia pensando ¡¡¡ cómo he podido vivir hasta ahora sin esto !!! Y lo cierto es que has vivido sin preocuparte por ello. Por ejemplo, hay un plugin muy útil que intenta eliminar la publicidad en las páginas. Si hasta ahora la publicidad no te ha molestado demasiado, hasta el punto de que no te has planteado si es posible eliminarla al navegar es que realmente no te hace falta. Nótese que una sencilla búsqueda en Google con las palabras eliminar publicidad navegar informa del componente, por lo que no es un nicho reservado a friquis o expertos. Los mismo sucede con el Top Ten de extensiones de FireFox y es extensible a otras aplicaciones. Límitese a lo que realmente necesita, lo demás, es complicarse la vida.

Problemas de los plugins

M-A-N-T-E-N-I-M-I-E-N-T-O. Si ya mantenerse al día con muchas aplicaciones puede ser complicado, mantener muchas subaplicaciones es un dolor de huevos. Por que con una buena distribución de Linux, las aplicaciones se actualizan de manera muy sencilla, pero los plugins no, y el cambio de una versión a otra puede romper la compatibilidad.

Supongamos que me he instalado el top-ten de extensiones de la aplicación WorldDominationApp. Aparece una nueva versión de WorldDominationApp que como a toda nueva versión, a cualquier buen friqui le aporta un cierto grado de excitación, el suficiente como para instalarla cagando leches. La nueva versión, con un changelog de chorrocientas líneas de errores corregidos, no aporta nada a ojos del usuario, lo único que muchos de sus plugins no son compatibles con la nueva versión. Cagüen la leche, a googlear para encontrar la página de los desarrolladores de cada extensión y ver si tienen una nota, foro o similar para ver qué pasa. Y pueden pasar muchas cosas, como que el tío haya estado currándose durante toda la noche anterior una nueva versión (loable pero improbable), que el tío haya dejado el café y no programe más, que no haya más versiones, o que el tío no tenga ni página ni madre ni perro que le ladre.

Si ya nos habíamos acostumbrado a la extensión y no podemos vivir sin ella, tenemos dos opciones, o ingresamos en el 0,1% de desarrolladores con ganas para arreglarla o bien usamos la versión antigua de WorldDominationApp. La segunda es más sencilla, pero pudiera ser que hubiera problemas de seguridad graves en WorldDominationApp y no fuera aconsejable hacer un downgrade.

Moraleja, otro punto a considerar cuando se instala un plugin es la pinta que tiene, es decir, la gente que hay detrás, los usuarios que tiene etc. Por ejemplo, en el caso de Joomla (y Mambo), muchas veces se encuentran componentes que funcionan bien, pero que no han sido modificados o no han aparecido nuevas versiones desde hace años. Joomla está cambiando rápido, y más que cambiará, por lo que la compatibilidad, salvo en componentes triviales, tarde o temprano se pederá. Esto es algo a valorar de manera muy seria, conocer el contexto de la aplicación y los plugins es muy importante.

 Ponía en la entrada como ejemplo el kernel de Linux y sus módulos. Para mí ese modelo es el mejor porque la gente que desarrolla módulos, en general, pertenece al equipo del kernel, de modo que cada nueva versión actualiza simultáneamente kernel y módulos, de modo que no se rompe nada. Si los plugins de FireFox se desarrollasen por gente que perteneciese al equipo de FireFox se solucionarían los problemas que antes se comentaron (ojo, supongo que más de un plugin lo desarrolla gente de FireFox, hablo en general).

Conclusión 

Permitir ampliar la funcionalidad de una aplicación con plugins es fantástico, pero se debe valorar con cuidado, sobre todo en aplicaciones críticas, cuestiones de compatibilidad en el futuro y mantenibilidad. FireFox actualiza automáticamente sus extensiones para solventar este problema y sería genial que otras aplicaciones hicieran lo propio.

Hay que valorar también si una extensión es necesaria para nosotros o no, aunque esta valoración es necesaria también para cada programa que tenemos instalado... 

Comentario[s]
Gracias
Escrito por Doken el 2008-03-07 17:59:36
Gracias a tu articulo me doy cuenta de la problemática de los plugins, dudaba entre Joomla y Wordpress, al final creo que Wordpress tiene mejores plugins.

Escribe tu comentario
Por favor cíñete al tema del artículo, sé educado y no envíes spam. Gracias por participar :)
Nombre:
Título:
BBCode:Web Address Email Address Load Image from Web Bold Text Italic Text Underlined Text Quote Code Open List List Item Close List
Comentario:





This image contains a scrambled text, it is using a combination of colors, font size, background, angle in order to disallow computer to automate reading. You will have to reproduce it to post on my homepage
Escribe lo que ves: *
Pulsa en recargar si tienes problemas para distinguir la imagen

Powered by AkoComment 2.2 *** SecurityImage 2.2.0

 
< Anterior   Siguiente >
Licencia de Creative Commons
Esta obra está bajo una licencia de Creative Commons.