6 mitos sobre o jQuery

Sendo o jQuery uma biblioteca tão usada, é natural que nasçam e persistam alguns mitos. Tentemos desvendar os mais comuns.

Artigo originalmente publicado na Revista PROGRAMAR, edição n.º 44, Fevereiro 2014 – pág. 41.

Mito #1: O jQuery substitui JavaScript

O jQuery não é nenhuma linguagem; é apenas uma biblioteca. Bibliotecas/toolkits/frameworks JavaScript são “apenas” um conjunto de utilitários escritos em/para JavaScript que ajudam a gerir uma página e as suas interações. Nenhuma biblioteca JavaScript substitui o JavaScript; uma biblioteca apenas junta diversas funções e outros elementos com os objetivos de reutilização, simplicidade e rapidez de desenvolvimento. É certo que, por uma questão de coerência de código, se estivermos a usar uma biblioteca, as várias instruções JavaScript podem ser feitas recorrendo a essa biblioteca mas isso não quer dizer que apenas com JavaScript não se o faça.

Por outro lado, há situações em que não devemos forçar o uso de uma biblioteca. Quando a velocidade é determinante (e não há problemas de suporte cross-browser), é escusado colocar “mais chamadas no meio”; mais vale recorrer diretamente às API/JavaScript nativos do browser.

Assim, aprender jQuery não significa que não tenha aprender e usar JavaScript; antes pelo contrário.

Sátira à loucura pelo jQuery

 

Mito #2: O jQuery serve para construir interfaces

Este é um grande mito que teima em permanecer. O JavaScript/jQuery servem essencialmente para pequenas manipulaçoes no DOM. Deve evitar-se ao máximo construir partes da (ou toda a) interface em JavaScript/jQuery que, por norma, servem para definir comportamento; a estrutura da interface deve ser definida em markup HTML, o seu local por excelência (pela mesma razão que não se deve ter CSS no código ou JavaScript no markup). É suposto que JavaScript/jQuery manipulem elementos já existentes no DOM. É certo que por vezes é necessário criar elementos programaticamente (ex. $(‘<div />’)), mas isso deve ser evitado. Por exemplo, em chamadas Ajax, o servidor pode enviar fragmentos em HTML; ou então o HTML pode já estar definido (escondido), ser manipulado e depois exibido.

Esta separação da interface do seu comportamento (apelidada de unobstrusive JavaScript) facilita a manutenção (ao programador web e ao web designer) mas também a graceful degradation, que dita que o site deve funcionar com o JavaScript inativo (pelo menos ter uma versão com a funcionalidade mínima) sem se tornar inutilizável. Numa abordagem declarativa do tipo AngularJS parece haver uma mistura (que contudo é aparente).

Isto também se aplica ao jQuery UI e outros plugins que geralmente assumem que há markup HTML, conferindo-lhe apenas um look&feel.

Como nota final, operações que se fazem facilmente em CSS devem ser feitas dessa forma. Por exemplo, mudar estilos ao passar o rato (:hover). (Quanto às animações feitas apenas em CSS, a resposta não é tão trivial.)

Mito #3: O jQuery é a melhor biblioteca JavaScript

É certo que o jQuery é a biblioteca mais popular (cerca de 50% do top 1 milhão de sites usam-no), pela sua versatilidade e facilidade de aprendizagem. Contudo, é incorreto dizer que é a melhor. É raro haver uma “solução milagrosa” para todos os problemas; há apenas a ferramenta ideal para o problema em causa. Existem inúmeras bibliotecas JavaScript, fieis a diferentes filosofías, pelo que o programador deve escolher aquela que mais se adequa às necessidades (consoante os browsers e plataformas a suportar, as funcionalidades a desenvolver, etc.). Por vezes, nem sequer é precisa uma biblioteca, outras vezes basta usar polyfills. noutras é possível recorrer a uma microframework (que se destina a colmatar uma necessidade muito específica)…

Em conclusão, não se deve forçar o uso de uma biblioteca em específico ou sequer de uma biblioteca. Deve haver argumentos que justifiquem o seu uso. Bons argumentos são o site/webapp adquirir alguma complexidade ou haver diversos browsers e/ou plataformas a suportar. Nessa altura, o jQuery é uma boa aposta, mas há que considerar outras possibilidades.

Mito #4: O jQuery torna o código mais rápido

Há até quem ache que a página fica mais rápida com jQuery… Na maioria das vezes, o código até fica mais lento. O jQuery facilita imenso a escrita de código JavaScript, pelo que é fácil cair-se em graves erros que afetam a performance (principalmente no mau uso de seletores e na manipulação do DOM). Não quer isto dizer que não se deva usar bibliotecas, pois a velocidade de desenvolvimento e inteligibilidade do código aumentam muito, mas ao fazê-lo, deve-se ter noções mínimas de como faria as coisas sem a mesma e como ela está a fazê-lo “por baixo”.

Bibliotecas JavaScript, como o jQuery, promovem a escrita de código cross-browser fácil de ler e modificar, oferecendo capacidades avançadas (ex.: emulação de classes), com isso aumentando muito a velocidade de desenvolvimento no geral.

Mito #5: O jQuery Mobile é o jQuery para mobile

O nome “jQuery Mobile” é muito enganador e é a causa deste mito: leva a crer que o jQuery Mobile é a versão do jQuery mas para mobile quando na realidade é um complemento. O jQuery UI está para o desktop assim como o jQuery Mobile está para o mobile: ambos dependem do jQuery e ambos oferecem componentes gráficos (ex.: listas, seletor de data, tabs, etc.). Assim, o jQuery Mobile não é alternativa ao jQuery mas sim uma biblioteca de componentes para mobile, tal como o jQuery UI o é para desktop.

Mito #6: O jQuery só existe por causa do IE

O jQuery apoia imenso no suporte cross-browser, especialmente no IE. São inúmeros os bugs do IE contornados pelo jQuery, principalmente de versões antigas. O jQuery 2.x, contudo, suporta o IE 9 e posteriores, deixando o 6, 7 e 8 para trás (isto fica para o jQuery 1.x, que segue o seu desenvolvimento). Então… se a tendência é os browsers respeitarem as normas e o jQuery deixar de suportar browsers que não o façam… faz sentido continuar a usá-lo? Sem dúvida que sim, pois:

  • É utópico pensar que os browsers serão todos iguais e respeitarão totalmente as normas, pelo que haverão sempre coisas que o jQuery tentará normalizar (por exemplo, o browser nativo do Android 2.3);

  • O estilo JavaScript obtido com o jQuery torna o código fácil de ler/manter, coerente e “fazendo muito com pouco” (o slogan do jQuery é: “Write Less, Do More”); a API do jQuery é fluidocoerente e chainable;

  • O jQuery tem inúmeras ferramentas utilitárias bem testadas: chamadas Ajax, travessia e manipulação DOM, animações, etc.; as funções do jQuery são muito flexíveis: a mesma função tem muitas combinações consoante o input que recebeu.

Isto leva à questão: “devo ou não usar jQuery no meu projeto?”… Em poucas palavras, depende das características do projeto. Em muitas palavras, a resposta será guardada para outro artigo

Saber mais sobre jQuery…

 

One thought on “6 mitos sobre o jQuery

Deixar uma resposta