10 ago 2011

jQuery vs MooTools

Trabajando con MooTools me ha pasado varias veces que me digan "eso en jQuery es más fácil", o la tan molesta "jQuery tiene un plugin que hace eso y mejor".
El caso es que para mi no hay punto de comparación, jQuery es un toolkit y MooTools un framework, que no son lo mismo. Un toolkit te da toda una serie de cosas prefabricadas para no tener que reinventar la rueda una y otra vez, y seguro mucho mejor que como lo haría uno mismo (a menos que seas un JavaScript ninja y en cuyo caso dudo que leas este blog), ya en la página de jQuery lo primero que se lee es "jQuery is designed to change the way that you write JavaScript", todo dicho.




Por otra parte un framework es una serie de utilidades a más bajo nivel que te proporcionan facilidades para hacer las cosas, posibilidad de agregar propiedades interesantes que el JavaScript nativo no tiene y hacer un poco más llevadero las carencias del lenguaje -que son muchas reconozco, ¿un trim nativo es mucho pedir?- pero no cambiará radicalmente mi forma de hacer las cosas.
Este razonamiento se lo hice ya a varios compañeros, no se, jQuery tiene ese olor a RoR, a cosa prefabricada que es para utilizar de determinada manera y no pedirle nada raro, en fin, impresiones mías tal vez, soy de la vieja guardia definitivamente :). Como anécdota un compañero de trabajo luego de utilizar  jQuery en un proyecto nada trivial termino odiándolo y optó por Dojo, otro que aunque no muy popular tiene unas posibilidades bien interesantes, eso sí, te advierto que tiene un tufillo a Java.


Este tipo de discusiones inútiles (que me encantan) sobre esta herramienta vs otra abundan bastante, no agrego más y traigo este enlace que resume muy muy bien todo esto: jqueryvsmootools.com, mejor explicado imposible. Como experiencia propia les comento que no depende de lo que quieran hacer ya que con ambos prácticamente todo es posible -cada uno a su manera claro- depende de hasta donde quieran llegar, de cuanto quieran ensuciarse las manos con JavaScript. Si estás buscando una de estas herramientas seguro que lo menos posible, pero si quieres ser medianamente bueno toca trabajar con el lenguaje a pelo, recién luego de eso te recomiendo estudies la posibilidad de optar por una u otra librería que te facilite el trabajo.

Debes aprender aunque sea lo mínimo, puede que no solo te pase que utilizas algo que no sabes como trabaja pero funciona, sino que tengas un problema y no sabes como trabaja y que tampoco funciona. Si ya pasaste esa etapa y comienzas a ver las carencias del lenguaje no dudes que cualquiera de las dos opciones son geniales, ahora sí como decía depende de cuanto quieras ensuciarte las manos: quieres algo vistoso y sin complicaciones? pues jQuery UI sin dudarlo, hay infinidad de módulos y cosas prefabricadas muy buenas. En cambio... le tomaste el gustito a JavaScript y quieres un poco más de potencia? pues MooTools entra en juego, esto no es broma ya que para utilizarla debes tener los conocimientos un poco más aceitados así que si no te gusto trabajar con JavaScript te aconsejo lo descartes. La curva de aprendizaje es más elevada y digan lo que digan siempre trabajarás un poco más, como recompensa sabrás lo que estás haciendo y porqué, y te aseguro que eso no es poca cosa, al fin y al cabo: eres un diseñador buscando un carrusel de fotos prefabricado o un desarrollador de JavaScript?, tú eliges.
Como se hace camino al andar agrego videito de un trabajo mío en que MooTools hizo la diferencia, solo para que no creas que lees a un charlatán.





Otra cosa es que quizás no estés necesitando precisamente una librería de estas y aún no lo sabes. Si lo que buscas son controles prefabricados, widgets y elementos visuales como árboles, paneles con tabs y cosas por el estilo dale un vistazo a UKI o la muy práctica Meteora, no te recomiendo Ext JS y demás monstruos ya que son muy potentes pero tienes que trabajar de la manera que indica la librería,con sus patrones y demás lineamientos, aparte por completas son pesadísimas y siempre cuidado con el tipo de licencia (nadie se fija en eso...? ah bien, pensé que era el único desprolijo).

Por otro lado quizás lo que necesites es algo que te permita estructurar un poco ese código espagueti tuyo, en cuyo caso no dudo en recomendarte Backbone.js para implementar el patrón MVC del lado del cliente, hay más opciones pero es muy madura y probada, tiene dependencias (de nuevo jQuery...) pero vale la pena probarla. Y como para no volar demasiado, empezamos con jQuery vs MooTools y ya andamos con MVC en el browser, antes de tomar una decisión siempre conviene darse una vuelta por micro.js, a veces solo necesitamos una utilidad muy concreta y mejor poner a dieta nuestro código.

Espero que este post haya sido de ayuda y no confunda aún más, siempre es bueno no quedarse en un par de opciones y te aseguro que abundan, suerte en esa selección.



No hay comentarios: