O jQuery matou as discussões sobre JavaScript? [fechadas]

7

Existem mais de 100.000 perguntas no Stack Overflow marcadas como questões relacionadas à solução de problemas / uso do JQuery. Compare isso com as 124.000 perguntas sobre estouro de pilha marcadas para problemas de JavaScript. Estamos muito perto de quase metade de todas as perguntas relacionadas ao JavaScript no Stack Overflow serem atribuídas ao JQuery (mais ou menos qualquer margem para as poucas outras estruturas JS que recebem perguntas sobre SO).

O que estou tentando entender é que o jQuery não é uma linguagem e não é o conjunto completo de estruturas que deve ser aplicado a todos os cenários em que o JavaScript está presente, mas está sendo capturado rapidamente (e eu prevejo que em breve eclipsará ) JavaScript como fonte de discussão / consulta em sites como o Stack Overflow.

O jQuery está matando a estrela do JavaScript? A próxima geração de desenvolvedores da Web não tem mais um entendimento firme sobre o poder, a simplicidade e o uso do JavaScript como meio de manipulação do DOM? Essa é apenas a evolução natural das coisas e o ponto de vista que estou apresentando típico do ego do codificador (ou seja, é assim que os programadores de montagem veem a multidão .NET / Java / Web?) Ou esse é realmente o começo do fim do desenvolvedor JavaScript verdadeiro?

Brian
fonte
6
Oi Brian. Essa pergunta parece bastante argumentativa e convida à discussão. Esses tipos de perguntas são desencorajados no Stack Exchange. Existem edições que você pode fazer para torná-lo menos orientado para a discussão? Obrigado.
Adam Lear
2
@ Anna Lear - Minhas desculpas - interpretei as perguntas frequentes no StackOverflow como orientação para postar a pergunta aqui: • Programadores especialistas interessados ​​em discussões profissionais sobre desenvolvimento de software, pergunte aos programadores. - Eu certamente não quero contribuir para conversas inúteis e vou entender se a pergunta é removida. Eu pensei que este era o fórum para um debate mais teórico.
Brian
3
Eu também adoraria saber por que minha pergunta é argumentativa e convida à discussão (portanto, inadequada), mas "você acha que cin e cout têm as flechas da maneira errada?" esta bem? programmers.stackexchange.com/questions/101234/… . Parece-me que este seria realmente um fórum para debate intelectual sobre desenvolvimento de software, não apenas perguntas e respostas finitas. - apenas dizendo ...
Brian
2
Penso que o nosso FAQ capta / comunica muito bem o espírito.
Adam Lear
3
A sugestão, fortemente implícita na pergunta, de que a geração atual usa JQuery porque não é tão boa em JavaScript quanto a anterior, é a coisa mais óbvia a se apontar em resposta à sua pergunta, por que isso é argumentativo. (FWIW, lembro-me dos dias anteriores à JQuery, e a manipulação do DOM era tudo menos simples se você queria que funcionasse em vários navegadores).
Peter Taylor

Respostas:

1

Você certamente poderia argumentar que o jQuery eliminou a discussão sobre javascript, e este gráfico de tendências o apoiaria: http://www.google.com/trends?q=jquery%2C+javascript

É muito fácil observar isso também no seu quadro de mensagens. Sempre que um "como você faz xxx em javascript?" Quando a pergunta é feita, você quase pode apostar que as respostas estarão no formato de "use jQuery e faça yyy".

Eu diria que é mais preciso dizer que agora é mais comum discutir o javascript em termos de estruturas de nível superior (seja como um jQuery / protótipo ou knockout / backbone ou node.js ou ...)


fonte
3
As respostas just use jQuery e do aaaa incorrem em um downvote automático de mim para perguntas SO não marcadas com jQuery.
Michael
@kekekela - talvez o mais engenhoso dos dois lados da discussão. Eu teria renunciado imediatamente ao contraponto se as linhas de tendência tivessem sido revertidas. Pelo menos eu sei pelas respostas que há uma multidão de pessoas talentosas e inteligentes que complementam seu código com o jQuery, sem basear todas as suas informações on-line nele.
Brian #
3
@StuperUser Lembre-se de que as poucas linhas de código salvas são convenientes para você, desenvolvedor, enquanto os 90kb são uma penalidade para seus usuários finais. É claro que o lugar do jQuery é com muita manipulação ou eventos do DOM, como você diz, mas $(foo)se torna a resposta padrão do SO para tarefas simples, como como faço para obter todo o <img>conteúdo de uma página . A penalidade para os usuários finais é indevida.
Michael
1
@ Michael, eu concordo. Cada vez que algumas linhas de código são salvas em um aplicativo inteiro, elas precisam ser mantidas, os desenvolvedores com habilidades suficientes para usar o JS corretamente precisam ser empregados / treinados, podendo adicionar muito tempo / dinheiro ao longo do ciclo de vida. Com altas velocidades de download e cache do navegador, é possível economizar muito mais que 90kb. Entendo que você sabe quando usá-lo e quando não, vamos apenas esperar que mais usuários qualifiquem suas respostas em vez de usar o padrão $('selector')e esperar votos positivos.
StuperUser
1
@StuperUser +1 Tão satisfeito quando um desacordo na Internet, quando explicado, se transforma em acordo, e não em argumento.
Michael
12
  1. Não, o jQuery não mata o JavaScript, mas desdobra a linguagem.
  2. Há os Nodejs, que usam Javascript como cli ou para scripts no servidor.

Sobre o jQuery . Eu estava programando com APIs do DOM desde 2001 e posso garantir que uma API do DOM simples e bem testada, como o jQuery, permite que você trabalhe mais no problema real do que na API.

Também manipulei o DOM em Javascript bruto em 2005 e na maioria das vezes gastei para fazê-lo funcionar em vários navegadores.

Antes do jQuery, muitos de nós gastávamos tempo corrigindo as diferenças e os erros do navegador, independentemente e com pouco compartilhamento de código. Repetimos o mesmo trabalho e os mesmos erros repetidamente. O jQuery nos isentou desse dever. Atualmente, com muitos plugins jQuery, trabalho principalmente no meu campo problemático, mas também posso fazer manipulações muito mais complicadas do documento. Liberado apenas das dores de cabeça do DOM, eu pude aprender o verdadeiro poder dos fechamentos e do loop de eventos JS (preciso ver para qualquer programador js!)

A maioria dos programadores de Javascript usa o jQuery para manipular o DOM, portanto, a maioria das perguntas diz respeito a essa área e ao jQuery.

Existem alternativas ao jQuery:

  • Protótipo, possui muitos pontos de entrada (o que é confuso) e contém bombas-relógio (adiciona alguns métodos aos objetos internos, mas apenas aqueles que ainda não estão nos objetos. Quando os desenvolvedores de navegadores os implementarem em um futuro próximo , os objetos mudarão de comportamento e muitos sites deixarão de funcionar. Os desenvolvedores precisarão corrigir seus sites com urgência.)
  • RightJS (não pode dizer nada, mas parece ter uma boa API)

O Node.js é um ambiente de rápido desenvolvimento e, em alguns anos, pode se tornar a linguagem principal do servidor. Minha impressão é que ainda faltam muitos recursos que podem tornar a linguagem mais elegante. No momento, é preciso muito esforço para organizar seu código. Não posso dizer se é corrigível com uma estrutura como jQuery ou apenas com uma nova versão de idioma, mas tenha certeza de que isso será abordado por alguém, há impulso suficiente em torno do Node.js. e JS em geral.


fonte
obrigado pela sua resposta. No entanto, eu teria que enviar que você tocou parte do que considero um dos muitos mitos do JQuery. Existem mais de 5000 perguntas no StackOverflow para "JQuery firefox" e mais de 5000 para "JQuery chrome". Mais de 3k para "JQuery IE". Embora eu concorde com a sua perspectiva geral aqui, acho que parte do que me faz pensar se o JQuery aumenta o número de talentos surpreende ao descobrir que algo não funciona em um navegador que funciona em outro - e eles não têm ideia como iniciar a solução de problemas. +1 para sua resposta.
Brian
Eu tive problemas com alguns plugins que não funcionavam com alguns navegadores ou exatamente como o esperado (como o livequery que não entende cadeias de filtros). Carreguei a versão completa do jQuery e depurei-a.
@ Brian - Eu diria que isso tem mais a ver com o fato de muitas pessoas que fazem essas perguntas não perceberem o que é realmente necessário para que algo funcione em vários navegadores. Você também encontrará um grande número de itens em HTML ou CSS que também tratam de alguma peça que não funciona em vários navegadores. Muitos desses questionadores nem sabiam que os navegadores tinham ferramentas de desenvolvedor para solucionar um problema específico do navegador.
Shauna
8

Eu o consideraria mais próximo da biblioteca padrão em C ++ do que da analogia .Net / Assembly. Ou melhor ainda, .Net e C #. Não há nada na especificação do C # que indique que você precise usar o .Net, mas ele está intimamente ligado. Mas, de qualquer maneira, quanto à sua pergunta, a maioria dos desenvolvedores da Web não se importa com JavaScript.

Na verdade, eu argumentaria que a parte de manipulação do DOM do JavaScript é bastante terrível (especialmente considerando que vários navegadores fizeram com que as coisas funcionassem em qualquer lugar). Eu não acho que você poderia ter colocado algo mais lá e recebido um resultado melhor, mas durante anos foi um ponto de frustração (mais uma vez geralmente devido aos fabricantes de navegadores). A maioria das pessoas simplesmente hackeava algo antes do jQuery e o chamava de dia (e se proclamavam "especialistas" na maior parte do tempo). O jQuery simplesmente pega as partes que ninguém mais gostou e coloca uma cara melhor. Como esse é o principal uso do JS no momento (manipulação do DOM), você verá o jQuery aparecer cada vez mais (ou alguma outra estrutura, como Prototype, etc.). Só para você saber que não acho que o desenvolvedor Web médio tenha sido um ótimo desenvolvedor de JS antes do jQuery.

Dito isto, o JavaScript está indo bem como uma linguagem. O Node.js é um bom exemplo disso, utilizando o idioma real. Eu até tentei usá-lo como uma linguagem de script incorporada em alguns dos meus aplicativos (perdidos para LUA, mas apenas porque LUA levou menos tempo para configurar).

JaCraig
fonte
3

O Jquery abstrai as tarefas mais irritantes e chatas do desenvolvimento de um javascript para um site. Atravessar o DOM é uma tarefa repetível que requer muito trabalho manual com muito poucos benefícios de fazê-lo da maneira mais difícil. Os únicos casos em que não uso o jQuery atualmente são as versões móveis dos sites - você não pode pagar mais uma solicitação e 100 mil por lá. O mesmo acontece com o carregamento do ajax.

Além disso, o jQuery faz com que a programação quase funcional pareça divertida. Ele introduz o conceito de função como um objeto de primeira classe realmente intuitivamente para os desenvolvedores. Jogue alguns efeitos visuais e alguns plugins muito bons - é uma pequena ferramenta bastante impressionante que é perfeitamente adequada para a tarefa.

Javascript padrão -> O Jquery para mim parecia migrar de C ++ e mfc para winforms e C #.

Daniel Iankov
fonte
Para o registro, eu gosto mais desta resposta. É honesto e me dá esperança de que o jQuery esteja sendo usado adequadamente por alguns no mundo - como uma extensão, e não de graça (+1 para contabilizar o download do js no celular). Estou marcando kekekela como correta, embora com base em estatísticas de citação - mesmo que 3% de todas as estatísticas sejam feitas de qualquer maneira.
Brian