Los que me conocen, saben que soy mootoolero. Pero no por ser fanboy de MooTools sin razón, sino porque es el framework que elegí cuando comencé con javascript y es a lo que me acostumbré.
El domingo anterior (08/feb/09), me embarqué en la travesía de convertir todo el código MooTools de SexyAlertBox a jQuery. Esta es mi breve experiencia con el framework del que todo el mundo habla maravillas.

Tengo todo listo: notepad2 abierto, la ayuda de jQuery abierta, y Google preparado para despachar dudas.
Al comenzar a leer los ejemplos, me sentí a gusto con la sintaxis.
La función .css() reemplaza al .setStyle() de MooTools. El código se ve mas bonito con el encadenamiento de funciones. La ayuda es bastante completa, trae ejemplos funcionando y todo.
Luego de una horita de lectura, manos a la obra!
Al comenzar a codear, me dí cuenta de que faltaba algo: Las clases.
MooTools te permite crear clases, implementar métodos, y heredar ‘a la fuerza’ funciones/eventos propios.
jQuery carece totalmente de todo esto, y lo deja como algo “secundario” (el creador de jQuery John Resig publica un código ‘extra’ para crear clases que no se incluye en el framework).
Me dije a mi mismo: No importa, hay miles de plugins dando vueltas por ahí seguramente esos plugins de alguna forma lo hacen.
Crear elementos en jQuery es tan fácil como arcaico. En MooTools para crear un elemento debemos usar la función/clase new Element que nos devuelve el objeto creado. Para los que no estén acostumbrados a la POO esto puede resultar algo horrible. Para los que estamos acostumbrados, nos resulta algo común.
En jQuery usamos append para agregar html y crear el elemento. Obviamente no nos devuelve el objeto creado ni nada parecido pero nos ahorra escribir mucho código (10 lineas MooTools vs 2 jQuery).
Programo feliz en jQuery hasta completar el 90% del script… ahora viene lo difícil: los eventos.
La potencia de jQuery es lamentable.
jQuery es el “Visual Basic” de los frameworks en javascript.
Como jQuery no posee la función ‘bind‘ de MooTools, que sirve para setear el contexto de la ejecución de una función, tuve que agregarla como plugin.
jQuery tampoco posee la función ‘delay‘ que sirve para retrasar la ejecución de una función. Es el setTimeout de las funciones, sólo que a diferencia de la nativa, la de MooTools hereda el contexto desde donde se está ejecutando. También tuve que agregarla como plugin.
El crimen mas grande de jQuery es la inexistencia de la clase Chain. Los jCuleros le llaman “encadenado” a esto:
$('#id').nacer().crecer().comer().reproducirse().morir();
(adoro el encadenado de jQuery)
Los MooTooleros le llaman “encadenado” a esto:
this.chain(function () { alert('cola de mensajes') });
this.callChain();
La inexistencia de esto último en jQuery fue una traba enorme para SexyAlertBox.
¿La solución? Abrir el código fuente de MooTools, buscar la clase Chain y pegarla en el código fuente de SexyAlertBox
.
Mootools trae los ‘easeEffects’ (el efecto del tipo rebote). jQuery no los trae, hay que agregarlos como plugin.
En fin, lo que tenia que resultar algo agradable resulto ser muy molesto y tedioso, muchas trabas para funciones tan estúpidas.
Lo bueno: Me gustó como quedó el código fuente en jQuery. Se ve bonito, fácil de entender, fácil de escribir, es muy intuitivo, sin dudas el mejor framework para gente que se inicia en la programación en javascript.
Lo malo: La falta de funciones, la poca importancia que se les dio a las ‘clases’. Para los que necesitamos potencia, usar clases, herencia y tener a mano un puñado de funciones útiles, existe MooTools.

Voy a seguir programando en jQuery ahora que lo aprendí a usar, mi meta es migrar SexyLightbox 3 a jQuery asi que muy pronto tendrán noticias.
Deseenme suerte!
Tremendo guey! Yo también estoy jugando al JQuery y de principio me costo agarrarle la onda. Tuve que usar muchos pluigin para cosas que hacia normalmente con puro mootools, y otra cosa q me costo agarrar fue que todo dependiera de “$”, pero del resto me pareció buen framework pero todavía le falta pulirse.
Hola amigo, llevo siguiendo el RSS de tu blog desde hace casi un año. Como desarrollador web, me interesan mucho siempre tus articulos. Como yo digo, más vale poco pero bueno
Yo no he tenido el gusto de metermen en MooTools, pues lo mío es más “lucirme” con el PHP
del lado del servidor. Pero ya nadie puede negar que -tal como tú dices- se le puede dar un aspecto estupendo a nuestras páginas usando un framework de CSS/javascript, con solo escribir unas cuatro lineas
En este sentido -como usuario sin muchas aspiraciones en el javascript de mis páginas- ciertamente que el jQuery me ha venido que ni se sabe de bien!!!
Y como tú dices es más que sencillo hacer cuatro cosas, o bien utilizar sus plugins.
Lo malo es que en cuanto te pones con los plugins… mmmm… por poco “perfeccionista” que uno sea, siempre siente la necesidad de agregarles esto o lo otro, para adaptarlo a las necesidades propias
pero en fin… siempre es posible utilizarlos tal cuál.
Creo que no soy el único que piensa que esperamos con ganas esa “traducción” de tu SexyLightBox a jQuery, sobre todo si funciona tan espectacular como con MooTools
Un saludo!
SERGI
Inicialmente estuve utilizando jquery ya que me parecio una buena plataforma para darle efectos a algunas clases de css, sin embargo ayer vi lo que mootools podia hacer, y me parece muy interesante.
Alguien deberia hacer un jquery vs mootools para ver cual le conviene a las personas que se estan iniciando en los javascript frameworks asi como tambien ayudarle a decidir cuando empiece un nuevo projecto.
Saludos.
por cierto hay un problemilla en la plantilla en este div post-ratings-382 (donde dice votar articulo) , tiene poco padding y no se mira la imagen completa, no se si sea temporal.
si le pones unos padding:20px 0 40px 273px; se arregla.
saludos.
Gracias @prozaker por avisar, ya lo arregle se habia corrompido el plugin al actualizarlo xD
Sabes que hace tiempo estoy buscando algo del estilo jQuery vs MooTools y la razón por la cual no se los puede comparar es que son para dos públicos diferentes.
Igualmente voy a ver si hago algo a la fuerza pero mas adelante porque si lo hago ahora va a salir ganando MooTools porque no conozco las ventajas de jQuery al no usarlo nunca.
Saludos!
Buen articulo, se ve que le echaste ganas para portar tu aplicacion, muchos hubiesen tirado la toalla.
ummm…en lo de falta en jquery es cierto pero ganas en otras como todo…para gustos los colores….
abla de DWR ? esta pegando con fuerza, para las aplicaciones en JAVA.
Pues yo he ocupado jquery la verdad es un framework bastante chido y tiene bastantes plugins en mi blog hay un pequiñito tuto que hice de como usar un grig con jquery y json: http://isaacrobot.blogspot.com/
y esta muy chido su blog felicitaciones a todos ustedes….
Yo me encuentro actualmente en el proceso de migrar mi primer plugin para Mootools a jQuery. He leído los libros que Apress a publicado para los dos frameworks y ya le he echado unas cuantas horas a cada uno de los dos.
Mi opinión es que Mootools gana por goleada. Todavía no he encontrado nada por lo que sea mejor utilizar jQuery.
Sí que es cierto que Mootools quizás requiera un conocimiento mayor de programación, pero es un framework mucho más potente, flexible y que ayuda a escribir buen código.
Si yo he encontrado que la falencia de JQuery es para la creacion de objetos herencia pero encontre este plugin
Se nota que estabas acostumbrado a otro FrameWork como el mtools, es normal que el jquery sea distinto, pero es de muy poca inteligencia criticarlo simplemente porque la forma de programarlo no sea la misma en la que estabas acostumbradoy eso te crea frustración, según parece, leyendo tu forma de postear.
no entiendo a que te refieres con lo de el encadenado,bueno por lo menos en jquery es similar, tu programas(si es que podemos llamar programar a utilizar un framework) en moo tools y estas acostumbrado a eso, deberias probar mas frameworks, jquery no es el unico y veras que en todos hay muchos pros y contras, a mi gusto moo tools no es de lo mejor, pero tiene ciertas cosas buenas que lo hacen diferente de los otros frameworks, no puedes criticar algo que no entiendes o que no sabes usar.
Te agradezco tu opinión, pero debo decirte que llevo un año programando en jQuery (fijate la fecha de este post) y ahora que lo entiendo y lo conozco lo puedo criticar mejor: ES UN AZCO al no traer soporte para POO.
Saludos.
Hola muchachos, creo que la satisfacción de los requerimientos a la hora de programar depende de la claridad de tus objetivos, dado que hay tecnología disponible para todas las necesidades.
Por ello recomiendo echar un ojo a http://jqueryvsmootools.com/index_es-ar.html me parece un excelente aporte.
Saludos!