quarta-feira, 29 de junho de 2016

O advogado do diabo ou: por que o Angular 2 pode ser bom se comparado ao Angular 1

Dizem que é do bom. Dizem que não presta. Oh, wait!


Rapidinho que tenho uma sprint pra resolver ainda.

Quando eu vejo a negrada (i.e. arquitetos de software) infamando por causa do angular novo, minha primeira reação é achar graça. Mas lá no fundo esse debate tem um quê de importante, a turma dos componentes vem com força, então vá la.

Em primeiro lugar, você precisa entender o seguinte: O angular 1.x trouxe um grau de produtividade e de abstração outrora desconhecidos. Era um tempo diferente, ferramentas revolucionárias à época, mas ainda havia a necessidade de explicitar muita coisa.

Com angular 1 houve aquela euforia com o Model - View - View - Model, era praticamente mágica aquilo. Qualquer um que tenha escrito código a sério nos idos 2013 - 2014 não apenas ouviu falar da tal queda de performance, esbarrou nela com força.

Mas aí bastava ser safo na hora de projetar a tela que tudo se resolvia, certo?

Estamos em 2016 e a plataforma primária é o mobile faz algum tempo. Aquele Moto E não faz milagres. Aquela tela outrora bem projetada está matando a performance do aplicativo. É a vida.

O único modo de recuperar a performance é ou não ter tanta informação no aplicativo, o que normalmente não é opção, ou mudar a forma como os dados são apresentados e capturados durante a interação com o usuário.

Daí a força motivadora do nosso polêmico amigo angular 2.

Você já ouviu isso por aí, mas deixa eu reforçar: angular 2 é diferente, muito diferente do angular 1. A maior semelhança é o nome mesmo.

Não se trata de uma mera decisão de marketing, o interesse de google, que mantém os dois projetos, é que você, desenvolvedor angular 1.x feliz e satisfeito, migre para o framework tecnologicamente mais coeso.

Muitas pessoas vêem isso aqui e isso aqui e pensam: "Mas quem vai usar uma bomba dessas?"

Calma lá.

Veja, mesmo eu já imaginei que o Angular 2 se tornaria o próximo Struts 2, ou seja, a versão melhor e mais nova não conseguiria ganhar para si os usuários da versão mais antiga e muito mais popular. Acredito que o perigo disso ocorrer não está no passado, mas enxergo isso com menos força agora.

Acontece que as comparações ainda são injustas. Em primeiro lugar, a comparação correta é disso com isso aqui.

Podemos dizer o seguinte: ao passo que o angular 2 te obriga a programar direito, sem onerar recursos do computador ou telefone, fazer isso no angular 1 era opcional.

Adicional a isso temos o kit de ferramentas, que no angular 2 está melhor mas não pelo motivo que você imagina.

Pra tocar um projeto angular 1.x, basta cara e coragem, enquanto que no 2 temos o System.js, o Babel.js e TypeScript. E o lite-server. Tudo pra configurar, resultando um boilerplate volumoso.

Mas boa parte disso aí vai sumir, sendo em realidade material que deixará de ser necessário com as versões futuras do javascript.

Tudo bem, tem ferramentas que te ajudam a cuidar dessas coisas, mas o fato é que, no futuro, o código do angular 2 será mais limpo, algo bem próximo do que temos hoje no angular 1.

Colocando de lado as diferenças e as motivações por trás do angular 2, o framework é promissor.

Acho que ainda pode melhorar, ver como outras soluções estão resolvendo pontos sensíveis e corrigir pontos de fragilidade na arquitetura atual.

A mensagem que eu quero deixar é a seguinte: não descarte o Angular 2 de imediato na hora de escolher um framework baseado em componentes. Tem coisa boa por vir desse projeto e, caso não pretenda adotá-lo agora, experimente-o no decorrer deste ano.

É isso. Fiquei otimista com relação ao Angular 2 e deixo aqui um pouco do por que disso.

Sem mais.

Nenhum comentário :

Postar um comentário