Ahora que estamos haciendo aplicaciones Web en la empresa, se nos hace necesario incluir Javascript para mejorar la experiencia del usuario (¡uy!, de qué me suena a mí esta frase…).
Bueno, el caso es que para facilitar la interactividad de los usuarios con las aplicaciones, incluimos Javascript, por ejemplo para editar una línea de pedido, cuyos datos pasan de estar en una tabla a un formulario en la misma página; o para seleccionar un cliente donde sale una ventana emergente (sí, ¡una ventana emergente!) en la que hay una lista de los mismos y se pueden seleccionar, cerrándose la ventana una vez seleccionado e incluyéndose sus datos en otro formulario.
Teóricamente, además de poder hacerlo con Javascript también se debería poder hacer con él desactivado. Pero bueno, de momento está casi toda la funcionalidad con Javascript.
La cuestión es que, como me enseñó mi amigo David, la inclusión de Javascript es de forma no intrusiva, es decir, entre otras cosas, los enlaces enlazan páginas, no funciones Javascript y también, una cosa que me gusta a mí mucho, ni una sóla gota de código Javascript dentro del HTML.
Para conseguir esto de no meter el código Javascript en el HTML se pueden hacer dos cosas: primera, currarselo todo en scripts y usando la maravillosa función getElementById; segunda, usar una librería con muchas funciones ya implementadas y que te facilite la vida de explotado programador.
Lógicamente, nosotros nos decantamos por la segunda opción. Y nuestra librería elegida es jQuery que es la que inicialmente me recomendó David.
Existen más alternativas, como por ejemplo Prototype, que es la que usa mi maestro ahora, aunque después de la lectura de sus respectivas documentaciones, me sigo quedando con mi jQuery.
Tutoriales de cada una de ellas hay muchos por la red. Muchos. Por eso aquí sólo voy a decir por qué usamos una en lugar de la otra.
En principio, Prototype es mucho más potente que jQuery. Además, tiene una arquitectura similar a la de cualquier lenguaje compilado como Java, es decir, todo orientado a objetos, perfectamente separado y ordenado. Por ejemplo, existen clases Array, Element, Event, Form, etc. cada una de ellas con los métodos correspondientes para ayudarte a programar tus aplicaciones.
En cambio, con jQuery tenemos sólo una clase, que es la propia jQuery, desde donde se hacen todas las cosas, como recorrer el DOM, añadir clases, modificar atributos, gestionar formularios, etc.
¿Y esto qué tiene de bueno y de malo? Pues principalmente la simplicidad. Con Prototype lo puedes hacer todo, igual que con jQuery. Con Prototype tienes que saber programar (o casi) usando orientación a objetos (y muchos desarrolladores Web no saben programar, sólo hacer páginas Web) mientras que con jQuery basta con saber utilizar sus funciones. Que sí, que también está orientada a objetos, pero sólo hay uno por lo que se puede usar como una función un poco rara.
Recordemos también que en jQuery sólo existe una función, la función $(...), mediante la cual podemos hacer de todo. En Prototype están $, $$, $F, $A, $H,… cada una para una cosa. Mucha potencia sí, pero también bastante complejidad.
Y es precisamente por su simplicidad por lo que hemos elegido la utilización de jQuery.
De todas formas, ni mucho menos digo que no se use Prototype (o cualquier otra), lo que digo que hay que buscar la mejor opción en cada momento según tus necesidades. Y, generalmente, las nuestras son siempre simplicidad, por eso solemos elegir lo más simple para desarrollar lo más simple. Porque hay que recordar que aquí usamos la metodología K.I.S.S.