- Artigo original: You Don't Need jQuery (anymore)
- Tradução: Gabriel
Muitos desenvolvedores web dependem do jQuery. Para muitos, jQuery e Javascript parecem ser a mesma coisa. Então, por que não usá-lo? Por que parar de usá-lo? Você simplesmente não precisa dele?
Com jQuery tudo fica mais fácil. Você não consegue desenvolver uma web app sólida sem ele. É muito difícil garantir que seu app funcionará corretamente em todos os browsers sem jQuery - A implementação da Web API varia muito entre os browsers. Todos os bons plug-ins que eu preciso, dependem do jQuery de qualquer maneira.
Usei estas desculpas acima durante a maior parte da minha carreira. E algumas delas foram, por um momento, boas desculpas. Em 2012, quando assumi a manutenção e o desenvolvimento de uma grande biblioteca de file upload, meu primeiro instinto foi o de reescrever tudo usando jQuery, porque eu pensei que aquilo facilitaria minha vida. A comunidade de usuários existente foi contra trazer qualquer outra dependência para a biblioteca, então fui forçado a lidar com a API nativa do browser. E quer saber? Foi mais fácil colocar o jQuery de lado do que eu imaginei. Eu não precisava do jQuery, e nem você precisa.
Há algum tempo, quando entrei no mundo do desenvolvimento web, a primeira biblioteca que usei foi o jQuery. Na verdade, nunca me importei em aprender Javascript direito. Eu não tinha a menor ideia de como era a Web API, ou como mexer no DOM precisamente. O jQuery fez tudo por mim. Fui pego por esta enorme lacuna em meu conhecimento quando entrei em um projeto sem jQuery. Fui forçado a aprender desenvolvimento web direito, e nunca mais olhei para trás.
Cai numa armadilha que muitos desenvolvedores web novos, casuais e amadores caem. Se primeiramente tivesse gasto meu tempo para aprender Javascript e a API do browser, teria evitado muitos problemas. A sequência correta de estudos é:
- Aprender Javascript
- Aprender sobre a Web API
- Aprender jQuery (ou qualquer outro framework/biblioteca que você pode precisar nos projetos)
Alguns começam com o #3 e #1, e o #2 vem somente depois (ou nunca). Se você não entende o que o jQuery na verdade está fazendo por você, haverão muitos dias frustrantes a frente, descobrindo "vazamentos" em sua abstração, ou no caso de você não poder usar jQuery em um projeto futuro. Esta é uma armadilha que você precisa evitar se quiser crescer efetivamente como desenvolvedor web.
Uma das razões mais usadas para valorizar o jQuery é a de arrumar a API fraca do DOM. Este é um ponto válido, mas somente se você estiver trabalhando com o IE7 ou anterior. Estamos em 2014, e o suporte a IE7 é raro. A API do DOM não é tão ruim como muitas pessoas costuman dizer. Percorrer, manipular e criar elementos é consistentemente suportado por todos os browsers modernos.
A Web API como um todo é, de certa forma, bastante avançada e capaz desde o IE8. É claro, existem falhas nos browsers pré-IE10 e em algumas implementações muito antigas do Safari/Webkit, mas estas falhas podem ser solucionadas, conforme a necessidade, com bibliotecas pequenas e específicas. Em alguns casos, como o suporte cross-browser do file upload, suporte a MutationObserver ou suporte a Web Component, você precisará integrar outras bibliotecas fora o jQuery. O ponto é que jQuery não é bala de prata, e existe uma boa chance de você precisar somente de uma pequena parte do que o jQuery oferece.
Outra razão comum para se usar o jQuery, é a de usar atalhos para a linguagem que está por debaixo dos panos (Javascript). Esta é uma das desculpas mais esfarrapadas. É um pouco demais usar uma dependência como o jQuery simplesmente por uma maneira "melhor" de percorrer as propriedades de um objeto ou um array de elementos. Na verdade, isto é completamente desnecessário levando em conta a existência de forEach e Object.keys() (ambos disponíveis em IE9+). Ou talvez você ache que inArray() é útil? Não desde o IE9, onde Array.prototype.indexOf ficou disponível como parte do ES5. Existem muitos exemplos, mas eu vou guardá-los para um próximo post.
Mas é claro que não. Se você se sente confortável com o jQuery, e está familiar o suficiente em como o jQuery faz sua mágica, então continue usando. Esta série de posts é sobre como lhe capacitar para usar a Web API e (quando preciso) bibliotecas específicas para resolver problemas em seus web apps sem depender de grandes bibliotecas com vários propósitos que, na sua maioria, nem serão utilizados.
Isto é com você. Esta série toda é para mostrar a Web API e o vanilla Javascript. A resposta é não se você precisa dar suporte a browsers muito antigos e o jQuery faz sua vida mais fácil. Porém, se você pode suportar versões de browsers mais atuais, e/ou fica feliz em escrever seu próprio código, deixe o jQuery de lado.
Selecting elements without jQuery. (Em inglês)
Selecionando elementos sem jQuery. (Em português)