Bueno pues esto es una crítica, espero que constructiva , sobre por qué se le está dando tantísima importancia a jQuery en las conferencias/cursos de #mejorandola. Es cierto que puede que mi opinión, al igual que la de otros tantos como yo en el foro de JS, no sea la más objetiva posible, pero es que tenemos que ver cada cosa...
Con esto no quiero decir que jQuery sea un mal framework, ni mucho menos, porque tiene todo un equipo de expertos en JS detrás; lo que digo es que jQuery se puede reducir a DOM, DOM, DOM y AJAX. Lo que esto genera son legiones de self-called "programadores JS", que no pueden dar un paso sin ayuda de jQuery, y que en muy pocas ocasiones conocen los entresijos del lenguaje, porque jQuery se encarga de todo eso por detrás.
Coincido con @freddier en que hoy en día es un error ponerse a hacer algo en JS desde 0, a no ser que estés tratando de hacer tu propio framework, claro; pero creo que también es un error enseñar a alguien que no sabe JS cuáles son los tipos de datos y pasar directamente a jQuery: debe tener una base.
Y creo que es otro error el hacerlo así puesto que se le forma la idea de que JS sólo sirve para eso, para hacer animaciones bonitas y validar formularios. Puede que hace 3 ó 4 años eso fuera así, pero gracias a Dios, hoy en día JS es un lenguaje muy extendido. Cosas como Node.js, para crear un server orientado a eventos en JS; o como Unity, que permite escribir en JS un videojuego, en vez de hacerlo en lenguajes ultra-rápidos pero que, desde mi punto de vista, son asquerosamente feos, como C o Java (esto podría dar que hablar si le hace la competencia a Flash). Hay cientos de utilidades que permiten escribir apps para Android en JS, sin tener que tocar la API de Java.
Además, la parte bonita de JS no es el DOM, más bien todo lo contrario. jQuery lo embellece mucho, pero aún así es aburrido, hacer animaciones o peticiones AJAX no tiene mucho misterio. ¿Por qué no enseñar cosas como Underscore.js? Es uno de los frameworks que más me gustan, y eso que casi no lo he usado. ¿Por qué no enseñar Backbone.js, para mantener un MVC en apps gigantescas en JS? ¿O Lungo.js, que permite todo un entorno de desarrollo de tecnologías HTML5 y CSS3 para Android, Iphone, BB y WebOS (y además es español XD)? ¿O ExtJS4, que aunque es un poco más complicado permite una cantidad ingente de widgets (pie charts, tabs, modal windows, trees, etc.), y su versión para smartphones Sencha Touch? Y así podríamos seguir con un largo etcétera.
Por último, quisiera desvirtuar el hecho de que jQuery es megagenial porque provee de una manera sencilla de acceder al DOM con selectores CSS(3). Lo dice en las docs, y si no se puede ver en la versión de desarrollo: afortunadamente, hoy en día y desde hace algunos años, los navegadores se preocupan por esto, puesto que, aunque había alternativas, una manera nativa siempre es más limpia, rápida y eficiente, o al menos eso dice la teoría. Por eso disponemos de document.querySelector[All], que funciona... desde IE8! Así que se puede usar con completa tranquilidad. Y si aun así no estuviéramos contentos, jQuery usa como fallback, o usaba, Sizzle.js, de la Dojo Foundation, que es uno de los 509653541 selector engines que existen para JS. Así que teniendo suplido uno de los principales argumentos a favor, creo que podríamos darle soporte a otros frameworks menos usados como Mootools, Dojo, ExtJS4, Prototype o YUI; y promover la costumbre de usar librerías más pequeñas que hagan lo que necesites en vez de una mole que pueda hacerte macarrones con tomate usando 15k líneas.
Saludos (:
PD: Versión pastebin.com