¿JQuery mató las discusiones de JavaScript? [cerrado]

7

Hay más de 100,000 preguntas en Stack Overflow etiquetadas como preguntas relacionadas con la solución de problemas / uso de JQuery. Compare esto con las 124,000 preguntas sobre desbordamiento de pila que están etiquetadas para problemas de JavaScript. Estamos muy cerca de que casi la mitad de todas las preguntas relacionadas con JavaScript sobre Stack Overflow se atribuyen a JQuery (más o menos cualquier margen para los otros pocos marcos JS que reciben preguntas sobre SO).

Lo que quiero decir es que jQuery no es un lenguaje y no es el todo y el final de todos los marcos que deben aplicarse a cada escenario en el que JavaScript está presente, pero se está capturando rápidamente (y predigo que pronto eclipsará ) JavaScript como fuente de discusión / consulta en sitios como Stack Overflow.

¿JQuery está matando a la estrella de JavaScript? ¿Ya no existe una comprensión firme por parte de la próxima generación de desarrolladores web sobre el poder, la simplicidad y el uso de JavaScript como un medio para la manipulación del DOM? ¿Es esto solo la evolución natural de las cosas y el punto de vista que estoy presentando típico del ego del codificador (es decir, ¿es así como los programadores de ensamblaje ven a la multitud .NET / Java / Web?) O es realmente el principio del fin del fin verdadero desarrollador de JavaScript?

Brian
fuente
66
Hola Brian. Esta pregunta suena bastante argumentativa e invita a la discusión. Se desaconseja este tipo de preguntas en Stack Exchange. ¿Hay alguna edición que pueda hacer para que sea menos orientado a la discusión? Gracias.
Adam Lear
2
@Anna Lear - Mis disculpas - Interpreté las Preguntas Frecuentes sobre StackOverflow como una dirección para publicar la pregunta aquí: • Programadores expertos interesados ​​en discusiones profesionales sobre desarrollo de software, pregunte a los Programadores. - Ciertamente no quiero contribuir a conversaciones inútiles y entenderé si se elimina la pregunta. Pensé que este era el foro para un debate más teórico.
Brian
3
También me encantaría saber por qué mi pregunta es argumentativa e invita a la discusión (por lo tanto, inapropiada), pero "¿crees que cin y cout tienen las flechas al revés?" ¿está bien? programmers.stackexchange.com/questions/101234/… . Me parece que este sería un foro para el debate intelectual sobre el desarrollo de software, no solo preguntas y respuestas limitadas. - solo digo ...
Brian
2
Creo que nuestras preguntas frecuentes capturan / comunican el espíritu bastante bien.
Adam Lear
3
La sugerencia, muy fuertemente implícita en la pregunta, de que la generación actual usa JQuery porque no son tan buenos en JavaScript como la anterior, es lo más obvio para responder a su pregunta de por qué esto es argumentativo. (FWIW Recuerdo los días anteriores a JQuery, y la manipulación DOM era cualquier cosa menos simple si querías que funcionara en varios navegadores).
Peter Taylor

Respuestas:

1

Ciertamente podría argumentar que jQuery mató la discusión de JavaScript, y este gráfico de tendencia lo respaldaría: http://www.google.com/trends?q=jquery%2C+javascript

También es bastante fácil observar esto en su tablero de mensajes de elección. En cualquier momento un "¿cómo haces xxx en javascript?" se hace una pregunta, casi puedes apostar a que las respuestas estarán en el formato de "usa jQuery y solo haz yyy".

Yo diría que es más exacto decir que ahora es más común discutir javascript en términos de marcos de nivel superior (si esto es algo como un jQuery / prototype o knockout / backbone o node.js o ...)


fuente
3
El sólo tiene que utilizar jQuery y hacer yyy respuestas implicar un downvote automática de mí por no jQuery etiquetados SO preguntas.
Michael
@kekekela: quizás el respaldo más ingenioso a ambos lados del argumento. Hubiera renunciado al contrapunto inmediatamente si las líneas de tendencia hubieran sido revertidas. Al menos sé por las respuestas que hay una multitud de personas talentosas e inteligentes que complementan su código con jQuery, sin basar cada una de ellas en línea.
Brian
3
@StuperUser Recuerde que las pocas líneas de código guardadas son convenientes para el desarrollador, mientras que 90kb es una penalización para sus usuarios finales. Por supuesto, el lugar de jQuery es con una gran cantidad de manipulación DOM o eventos como usted dice, pero se $(foo)convierte en la respuesta SO predeterminada para tareas simples como cómo obtengo todo <img>en una página . La penalización para los usuarios finales es indebida.
Michael
1
@Michael, estoy de acuerdo. Cada vez que se guardan unas pocas líneas de código en una aplicación completa, deben mantenerse, los desarrolladores con la habilidad suficiente para usar JS correctamente tendrán que ser empleados / entrenados, puede sumar mucho tiempo / dinero a lo largo del ciclo de vida. Con altas velocidades de descarga y almacenamiento en caché del navegador, se pueden guardar mucho más de 90 kb. Entiendo que sabes cuándo usarlo y cuándo no, solo esperemos que más usuarios califiquen sus respuestas en lugar de $('selector')esperar y votar de manera predeterminada.
StuperUser
1
@StuperUser +1 Tan contento cuando un desacuerdo de Internet, cuando se explica, se convierte en un acuerdo en lugar de una discusión.
Michael
12
  1. No, jQuery no elimina JavaScript, sino que desarrolla el lenguaje.
  2. Hay Nodejs, que usa Javascript como cli o para secuencias de comandos del lado del servidor.

Sobre jQuery . Estaba programando con las API de DOM desde 2001 y puedo asegurarle que una API de DOM simple y bien probada como jQuery le permite trabajar más en el problema real que en la API.

También manipulé DOM en Javascript sin procesar en 2005, y la mayor parte del tiempo lo pasé haciendo que funcionara en varios navegadores.

Antes de jQuery, muchos de nosotros pasábamos tiempo reparando las diferencias y errores del navegador, de forma independiente y con poco código compartido. Repetimos el mismo trabajo y los mismos errores una y otra vez. jQuery nos liberó de este deber. Hoy en día, con muchos complementos de jQuery, trabajo principalmente en mi campo de problemas, pero también puedo hacer manipulaciones mucho más complicadas del documento. Solo liberado de los dolores de cabeza DOM pude aprender el verdadero poder de los cierres y el bucle de eventos JS (¡debe verlo para cualquier programador js!)

La mayoría de los programadores de Javascript usan jQuery para manipular el DOM, por lo tanto, la mayoría de las preguntas se refieren a esta área y jQuery.

Hay alternativas a jQuery:

  • Prototipo, tiene muchos puntos de entrada (lo cual es confuso) y contiene bombas de tiempo (agrega algunos métodos a los objetos integrados, pero solo aquellos que aún no están en los objetos. Cuando los desarrolladores del navegador los implementen en un futuro cercano , los objetos cambiarán su comportamiento y muchos sitios dejarán de funcionar. Los desarrolladores deberán corregir sus sitios web con urgencia).
  • RightJS (no puedo decir nada, pero parece tener una buena API)

Node.js es un entorno en rápido desarrollo, y en un par de años puede convertirse en un lenguaje de servidor convencional. Mi impresión al respecto es que aún faltan muchas características que podrían hacer que el lenguaje se vea más elegante. En este momento se necesita mucho esfuerzo para organizar su código. No puedo decir si es reparable con un marco como jQuery o solo con una nueva versión de idioma, pero asegúrese de que alguien lo aborde, hay suficiente impulso en torno a Node.js y JS en general.


fuente
gracias por tu respuesta. Sin embargo, tendría que presentar que mencionó parte de lo que veo como uno de los muchos mitos de JQuery. Hay más de 5000 preguntas en StackOverflow para "JQuery firefox" y 5000+ más para "JQuery chrome". Más de 3k para "JQuery IE". Si bien estoy de acuerdo con su perspectiva general aquí, creo que parte de lo que me hace preguntarme si JQuery corrompe el grupo de talentos es un gran volumen de personas sorprendidas al descubrir que algo no funciona en un navegador que funciona en otro, y no tienen idea cómo comenzar a solucionarlo. Sin embargo, su respuesta es +1.
Brian
Tuve problemas con algunos complementos que no funcionan con algunos navegadores o como se esperaba (como livequery que no entiende las cadenas de filtros). Cargué la versión completa de jQuery y la depuré.
@Brian: diría que eso tiene más que ver con el hecho de que muchas de las personas que hacen esas preguntas no se dan cuenta de lo que realmente se necesita para hacer que todo funcione en el navegador. También encontrará una gran cantidad de material HTML o CSS que también trata sobre alguna pieza que no funciona en el navegador cruzado. Muchos de esos interrogadores ni siquiera sabían que los navegadores tenían herramientas de desarrollo para solucionar un problema determinado basado en el navegador.
Shauna
8

Lo vería como más cercano a la biblioteca estándar en C ++ que a la analogía .Net / Assembly. O incluso mejor, .Net y C #. No hay nada en la especificación de C # que indique que tiene que usar .Net, pero está estrechamente relacionado. Pero de todos modos, en cuanto a su pregunta, a la mayoría de los desarrolladores web no les importa JavaScript.

De hecho, argumentaría que la parte de manipulación DOM de JavaScript es bastante terrible (especialmente teniendo en cuenta que varios navegadores hacen que sea difícil hacer que las cosas funcionen en todas partes). No creo que pudieras poner algo más allí y recibir un mejor resultado, pero durante años fue un punto de frustración (una vez más, generalmente debido a los fabricantes de navegadores). La mayoría de las personas simplemente hackearían algo antes de jQuery y lo llamarían un día (y se proclamarían a sí mismos "expertos" la mayor parte del tiempo). jQuery simplemente toma las partes que a nadie le gustaron y le da una mejor cara. Como ese es el uso principal de JS por ahora (manipulación DOM), verá que jQuery aparece cada vez más (o algún otro marco como Prototype, etc.). Solo para que sepan, no creo que el desarrollador web promedio haya sido un gran desarrollador de JS antes de jQuery.

Dicho esto, JavaScript funciona bien como lenguaje. Node.js es un buen ejemplo de cómo retomó su uso como idioma real. Incluso he considerado usarlo como un lenguaje de script integrado en algunas de mis aplicaciones (perdí ante LUA, pero solo porque LUA tardó menos tiempo en configurarse).

JaCraig
fuente
3

Jquery abstrae las tareas más molestas y aburridas de desarrollar un javascript para un sitio web. Atravesar el DOM es una tarea repetible que requiere mucho trabajo manual con muy pocos beneficios de hacerlo de la manera difícil. Los únicos casos en los que no uso jQuery hoy en día son las versiones móviles de los sitios: simplemente no puede permitirse una solicitud más y 100k allí. Lo mismo ocurre con la carga ajax.

También jQuery hace que la programación cuasi funcional parezca divertida. Introduce el concepto de función como un objeto de primera clase realmente intuitivo para los desarrolladores. Lanza algunos efectos llamativos y algunos complementos muy buenos: es una pequeña herramienta bastante impresionante que es perfectamente adecuada para la tarea.

JavaScript estándar -> Jquery para mí se sintió como en la migración de C ++ y mfc a winforms y C #.

Daniel Iankov
fuente
Para el registro, me gusta más esta respuesta. Es honesto y me da la esperanza de que jQuery esté siendo utilizado adecuadamente por algunos en el mundo, como una extensión, y no gratis (+1 para tener en cuenta la descarga de js en dispositivos móviles). Sin embargo, estoy marcando kekekela como correcto según las estadísticas de citas, aunque el 3% de todas las estadísticas están formadas de todos modos.
Brian