Desenvolvimento

17 set, 2018

Afinal, existe essa tal de fadiga no JavaScript?

Publicidade

A piada já vem pronta: você nem terminou de ler este artigo, e já apareceu outro framework em JavaScript. Afinal, quem nunca – no meio de uma conferência ou até de uma conversa na copa – ouviu falar dessa tal “fadiga”? Como fadiga é uma palavra que pode ser considerada praticamente como português arcaico, esta é raramente utilizada em contextos que não envolvam o Jaiminho Carteiro. Dessa forma, ouvimos falar dela de outra maneira: “Desenvolver em JavaScript está muito complicado”.

Dito, não é incomum se ouvirem odes ao passado, esbravejando o “no meu tempo”. Sim, não podemos negar, era muito mais simples abrir o Notepad++, escrever algumas tags, salvar um HTML, jogar num FTP e pôr no ar. Bons tempos esses para simplicidade, mas infelizmente o que se esquece ao fazer esse saudosismo é sobre o que JavaScript era e o que JavaScript é nos dias atuais.

De tanto escutar variantes dessa “reclamação”, resolvi ir mais a fundo e questionar o passado: antigamente era mesmo tão melhor assim? Quais foram os caminhos que fizeram a gente chegar onde está hoje? Quais são esses porquês?

“Já não tenho nenhuma esperança no futuro do nosso país, se a juventude de hoje tomar amanhã o poder. Essa juventude é insuportável, desenfreada, simplesmente horrível”. Deixando os pormenores políticos de lado, essa frase soa bem atual e com certeza há muitos que irão concordar que essa afirmação claramente reflete a situação da nossa sociedade. Mas ela foi cunhada por Hesíodo, por volta do século VII a.C.. A gente gosta de romantizar o passado não é de hoje.

Quem é velho de guerra na Internet deve se lembrar do Ajaxian. O Ajaxian foi (e tecnicamente é, só não é mais atualizado) um blog referência para quem queria trabalhar com – surpresa, surpresa – AJAX. O termo AJAX apareceu por volta de 2005. As tecnologias já existiam, só que alguém resolveu pôr um nome bonitinho para facilitar as coisas – afinal, um dos princípios básicos de ser programador é ser preguiçoso. Sem surpresas, a gente faz isso até hoje – quem não já fez um MEAN ou nunca ouviu falar de PWAs, não é mesmo?

E foi no lá Ajaxian que eu encontrei (depois de muito procurar!) a minha citação de Hesíodo. No dia 22 de maio de 2007 – onze anos atrás (era uma terça-feira, chovia muito) – era publicado o post “210 Frameworks para Ajax e contando”. O post é pequeno, mas é um deleite de se ver hoje: segundo as contas feitas, estava surgindo nada mais nada menos que 1.5 framework por semana.

Sim, em 2007. Ano do primeiro iPhone, do último livro do Harry Potter com Harry Potter e da primeira tour da Hanna Montana com a Miley Cirrus. E a gente já estava reclamando que tinha framework e biblioteca demais. E, em tempos de Internet, 2007 é igual ou até mais distante que o século VII a.C.

Ok, a gente já sabe que há mais de 10 anos éramos tão reclamões como hoje. Mas o que isso significa? Afinal, não tinha esse papo de fadiga nesse tempo, tinha?

Vamos ao contexto da época: o JavaScript, quando fora criado – em uma semana, diga-se de passagem -, não tinha um objetivo concreto para si, algo incomum para as linguagens no geral; algumas são especializadas em cálculos, voltadas para estatísticas, em gráficos, para uso em tempo real, outras foram projetadas para dispositivos específicos (como o Java, para TVs Inteligentes – melhor propósito de toda história). O JavaScript estava ali para basicamente podermos fazer pequenas interações com a página sem eu ter que enviar tudo aquilo para o meu servidor renderizar e cuspir um HTML estático de volta.

E nessa, sem querer querendo, o JavaScript virou resistência. E, sejamos justos, também foi sorte. JS não foi planejado para sair do Netscape, mas, como era líder, todo mundo copiou e ele apareceu nos outros navegadores. O JavaScript então permitia uma vantagem para os sites que até o momento mais ninguém oferecia: compatibilidade. Mal e porca, mas compatibilidade.

Não é como se, na época, a gente só tivesse o JavaScript para fazermos sites interativos. A gente faz questão de esquecer, mas tínhamos Applets em Java… Shockwave… e o amado Flash. Só que o JavaScript não era um plugin. Além do navegador, o usuário não tinha que instalar mais nada. Por fim, e talvez o mais importante: você, como desenvolvedor, não tinha obrigação com seu ninguém.

Sejamos francos: o Flash era maravilhoso. Em todos esses anos nessa indústria vital, com o Flash, tinha sido a primeira vez em que dava para fazer sites pixel-perfect. Não tinha designer triste. A renderização de fontes era incrível. Mas o JavaScript era livre. Mas do que isso: éramos nós que fazíamos.

Não tinha amarras, a gente escrevia do jeito que queria onde a gente queria, e entregava do jeito que queria. E então, quando o AJAX chegou foi uma revolução daquelas. A gente podia, finalmente, fazer e enviar requisições com dados. Era, literalmente, um novo mundo de possibilidades: JavaScript podia começar a se tornar uma camada da aplicação.

E por muita competência e (de novo) sorte, duas coisas extremamente importantes aconteceram em sincronia: apareceram os primeiros web apps extremamente robustos baseados em AJAX e JavaScript puro (como o Gmail e o Google Maps) e – tão ou mais importante – os usuários notaram que eles tinham controle do seu navegador.

Foi a época em que o Firefox começou a bombar, e como aplicações e sites com JS voavam nele, a consequência foi a comunidade se movimentar: em pouco tempo, já havia mais de 200 frameworks de AJAX (e contando!).

Por quê? Porque ninguém sabia direito o que estava fazendo, mas sabia que se todo mundo tentasse correr para frente junto, uma hora a gente ia chegar lá. Para o bem ou para o mal, no fim, tudo meio que convergiu pro jQuery.

E é nessas horas que a gente nota a beleza da web. De quanto o open source e a comunidade influencia nela. O JavaScript nunca teve como princípio se tornar um SDK da web. A gente transformou. Aí a gente conseguiu fazer transmissão de dados com ele. Aí a gente foi e notou que dava para fazer animações. Nós criamos templates. Notamos que a gente podia pegar o JavaScript e colocar do lado do servidor também. Aí a gente foi, tirou toda a renderização do servidor para renderizar só do lado do cliente (e agora a gente está colocando no servidor de volta, mas só o que precisa, e com JS). A gente amava por não ter tipagem forte e, quando precisamos, inventamos tipos.

Quando a gente quer a gente usa, quando não, não. E quando a gente quer mesmo, a gente mistura. É orientada a objetos, mas quando a gente quer, a gente a deixa funcional. A gente reinventa a roda tão bem às vezes que na última vez em que reescreveram o DOM ele foi parar em outras plataformas, levando o JavaScript junto.

A natureza do JavaScript permite que a gente simplesmente vá lá e faça. Se você não está satisfeito com uma biblioteca, você vai lá e faz outra. E não tem nada de errado nisso, muito pelo contrário: em vez de resolver um problema apenas para si, esse ato de compartilhar faz todo mundo crescer. A gente só nota isso com mais intensidade hoje, pois, além de tudo no mundo ser mais rápido e intenso, o JavaScript é a linguagem mais utilizada no mundo. E quando a gente trabalha nessa escala, o mínimo de ruído que seja incomoda e faz barulho.

Dois anos atrás, eu fiz uma tradução de um post no qual um frontender e um backender conversavam sobre como pôr dados numa tabela. Muita gente entendeu a piada, mas pouca gente entendeu a mensagem: seja bem-vindo, JavaScript sempre foi assim. E isso é bom!

Essa “fadiga” é um convite para abraçar as mudanças, para ir para frente. Para onde? A gente não sabe. Talvez seja só um novo jQuery. Mas nós sobrevivemos na última década. Prontos para a próxima

***

Artigo publicado na revista iMasters, edição #26: https://issuu.com/imasters/docs/imasters_26_v6_isuu