comparte el articulo 

El futuro cercano de MooTools

Actualizado el 11/12/2013 < > 0 Comentarios

Resumen: El concepto de MooTools 2.0 se ha venido manejando desde hace un par de años, en este artículo te explicamos lo que esta nueva versión podría llegar a traer.

Desde hace unos años MooTools ha tomado un papel complementario en varios de los proyectos donde alguna vez fue utilizado como herramienta principal. El crecimiento que han tenido frameworks de JavaScript como jQuery, ha causado que exista un cambio en la percepción que se tiene de MooTools, llegando al grado de considerarse más como una alternativa que como una solución a la medida para un problema.

Hace aproximadamente poco menos de dos años, el equipo de trabajo de esta librería liberó la quinta actualización de Mootools 1.4, y desde entonces son pocas las noticias que se han tenido del framework. A partir de la liberación de la versión 1.4 en septiembre de 2011, el equipo de desarrollo ha venido haciendo hincapié que sus intereses por el momento están puestos en el desarrollo de la version 2.0 del framework.

Desde entonces la web ha venido evolucionando y es en esa constante evolución que Javascript está cambiando. La forma en que la gente codifica y específicamente escribe nuevas bibliotecas, módulos y widgets que todos compartimos y usamos, está siendo lentamente enfocado a utilizar un patrón de AMD.

AMD son las siglas de Asynchronous Module Definition, lo que en español significa Definición de módulo asíncrono, un concepto que por primera vez se manejo en el framework DOJO y cuyo objetivo principal es porpocionar la capacidad de definir y cargar cualquier módulo y sus dependencias de forma asincrónica. Si bien esto aún no es considerando un estándar, se podría definir como un acercamiento hacia el sistema de módulos propuestos en ECMA ES Harmony.

Relevancia de AMD

Teniendo en mente todo esto, ¿Qué es lo más relevante que podemos predecir ocurrirá al conocer la noticia de que MooTools 2.0 será compatible con AMD? Para que MooTools pueda llegar a ser verdaderamente un framework modular, capaz de compartimentar en pequeñas partes lo que por años ha estado definido en grandes bloques de código, tendrá que dejar de extender y cambiar los prototypes nativos de JavaScript, una de sus principales características del framework en el pasado.

Esto se convierte en necesario, ya que sólo así podrá garantizar que cualquiera de sus módulos podrá coexistir con cualquier otro módulo AMD sin ningún conflicto.

Ventajas y desventajas

Cuando decimos “dejar de cambiar los prototypes nativos”, no significa que nunca se va a modificar un método existente con MooTools, esto se puede dar, pero lo más probable es que ya no sean muchas las ocasiones. Incluso, con este nuevo enfoque el framework se podría llegar a utilizar como una librería microjs, donde solamente los componentes preferidos por el desarrollador sean los que se apliquen.

Hasta ahora todo suena muy bien y el manejo modular parece ser un gran avance, pero existe una parte poco placentera. Al no ser capaz de modificar Element.prototype, por ejemplo, significa que el uso de un código como el siguiente muy probablemente llegue a su fin:

document.id("elemId").addEvent("click", function(e) {
    this.addClass("abierto");
    var divsConImagenes = this.getElements("li").filter(function(el) {
        return !!el.getElement('img');
    });
});

Aunque es muy probable que el equipo de desarrollo integre una función que actue como wrapper, tal como se hace en jQuery, que permita realizar parte de los que obtenemos con el código anterior, document.id() dejará de devolver el elemento en sí y nos regresará una función. El código modificado podrá parecer el mismo, pero la manera en que se interpreta será diferente. Por ejemplo, this.addClass(“abierto”); no funcionará en absoluto, en su lugar, muy probablemente tendrás que usar $(this), document.id(this) o hacerlo a traǘes de los nativos Type o Slick.

Cambios

Básicamente todos los Types populares de MooTools como Array, Element, String, entre otros, estarán todavía disponibles en el objeto nativo. Si lo que deseas es una funcionalidad similar a la que anteriormente escibrimos, un código como este puede bastar:

Element.addClass($(this), 'abierto');

Array / Elements.filter puede ser llamado así:

var divsConImagenes = Array.filter(document.id(this).getElements("li"), function(el) }
    return !!document.id(this).getElement("img");
});

Aunque sinceramente, aún no tenemos una idea clara de como lucirá la nueva API, una cosa es cierta, aún en la versión 1.4.5, puedes darle un doble uso a la mayoría de los métodos en el objeto host o a través del prototipo.

var strTest = "texto de prueba";
// forma antigua via String.prototype
console.log(strTest.capitalize()); // Texto De Prueba
// nueva forma, mismo resultado
console.log(String.capitalize(strTest));

Conclusión

En conclusión, las cosas están mejorando para MooTools, el framework se está dirigiendo a la dirección correcta, aunque lo está haciendo de una manera muy lenta. Lo cierto es que alguien del equipo de desarrollo de la versión 2.0 del framework debería dar más noticias sobre el estatus del proyecto, y de igual manera informar sobre algunos avances referentes a la liberación del producto, ya que lo poco que sabemos se va sabiendo muy de vez en cuando y después de largos períodos de espera.

Tenemos que aclarar que lo que planteamos en este artículo son meras especulaciones, los datos que se presentan es información que se ha ido recolectando de distintos medios relacionados a MooTools, no existen libros, manuales ni nada parecido sobre MooTools 2.0 hasta el momento, por lo que no podemos asegurar que las cosas serán tal y como las explicamos en el presente texto.

Hasta el momento MooTools 2.0 no existe como una unidad, más bien es un conjunto de paquetes que se pueden utilizar por separado. Algunos de los avances del proyecto se pueden ver en los siguientes enlaces.

Publicado el 11/12/2013, última actualización 11/12/2013.

Contenido exclusivo de LaWebera.es. Prohibida su copia.

Autor: Daniel Ernesto Navarro Herrera

URL: LaWebera.es :: Diseño de paginas web

(Subir al texto)

Añadir Comentario

* Campos obligatorios

Meneame Bitacoras