Este artículo es una traducción, con permiso del autor, del editorial que escribió Aurelio De Rosa con motivo del lanzamiento de jQuery. Aurelio es editor del canal de JavaScript de SitePoint y es además miembro del equipo que desarrolla jQuery. Nos ha parecido interesante su punto de vista y por eso le hemos pedido que nos deje publicarlo. ¡Gracias Aurelio!
El pasado día 13 de Julio se liberaron las versiones "alpha" de jQuery 3.0 y jQuery Compat 3.0. Una versión "alpha" es una versión temprana, muy preliminar, no destinada a uso real y que puede diferir sustancialmente del producto final.
Nota de campusMVP: jQuery 3.0 será el sucesor de lo que ahora es jQuery 2.1.1, y jQuery Compat 3.0 será el sucesor de la actual jQuery 1.11.1 (Compat es por compatibilidad con navegadores antiguos).
Esta nueva versión "grande" incluirá varios cambios importantes, entre los que cabe destacar:
- Se ha implementado un nuevo, y bastante controvertido, comportamiento para los métodos show y hide.
- Se ha actualizado el método data() para que se adhiera a la especificación HTML5 dataset.
- jQuery.Deferred es ahora compatible con Promises/A+.
- width() y height() ya no redondean los valores devueltos.
- Se han eliminado los alias de eventos ya obsoletos como load, unload y error (se debe usar on para definir manejadores de eventos)
Como miembro del equipo estoy muy emocionado por la noticia, ya que ha pasado ya mucho tiempo desde que se ha liberado una versión mayor de jQuery. También estoy realmente expectante por escuchar lo que los desarrolladores de todo el mundo piensan sobre ella.
También estoy esperando a leer los inevitables posts sobre un tema que regresa de vez en cuando: ¿es jQuery relevante todavía?. Muchos desarrolladores tienen la sensación de que como los navegadores actuales son más consistentes entre ellos, y que todos se adhieren más a los estándares de la Web, la necesidad de usar jQuery ha disminuido. Algunos ejemplos de sitios o posts que comparten este sentimiento son los siguientes:
Aunque ambos puntos anteriores son ciertos, jQuery todavía oculta muchas cuestiones a través de su API. Lo que es más: tengo la sensación de que la mayoría de los métodos nativos carecen de algunas características importantes.
Por ejemplo, ¿cómo seleccionarías un conjunto de elementos y luego los eliminarías del DOM?. Este es el código que necesitarías con JavaScript puro:
var elements = document.querySelectorAll('.parent div');
[].slice.call(elements).forEach(function(element) {
if (element.parentNode) {
element.parentNode.removeChild(element);
}
});
Y esta es la versión de jQuery para hacer lo mismo:
$('.parent div').remove();
¿Qué versión preferirías escribir? Y no solo tú, ¿qué opinan los otros desarrolladores de tu equipo?
Pero incluso con un código tan sencillo existen otras cuestiones a tener en cuenta:
- forEach no está soportado por IE8, que todavía es utilizado por mucha gente.
- El valor devuelto por querySelectorAll no es un verdadero Array y por lo tanto tampoco puede ser utilizado con forEach.
- La técnica que he utilizado para convertir un objeto similar a un Array en un verdadero Array ([].slice.call(elements)) es bastante avanzado y desconocido para muchos desarrolladores principiantes.
- El código es más rápido pero también mucho más largo de escribir.
A partir de estos puntos probablemente puedes entender algunas de las razones por las que jQuery es todavía la biblioteca de JavaScript más utilizada del mundo. Algún día se abandonará definitivamente en favor de los métodos nativos, pero no creo que haya llegado el momento todavía. en cualquier caso jQuery permanecerá como la biblioteca más importante y disruptiva de la historia de JavaScript (¡al menos en mi opinión!).
Así que, ¿qué piensas tú de esta noticia? ¿Estáis usando jQuery tú o tu equipo? comparte tu opinión en los comentarios más abajo.
Aurelio De Rosa
Editor del canal de JavaScript de SitePoint
@AurelioDeRosa