< Insights

Qual Framework Javascript Devo Utilizar?

  • Desenvolvimento de Software

A comunidade Javascript é vasta,  e é comum que a cada dia tenhamos atualizações de frameworks Javascript já existentes, bem como a criação de novas com o intuito de melhorar em relação a algum ponto das já existentes. Usuários por sua vez, tem a tendência de adotar um Framework, acreditando que o mesmo pode se aplicado de forma efetiva nos mais diversos projetos.

Em contraponto a estas abordagens cabe salientar que, assim como defendido pelos próprios criadores de tais frameworks, que a resposta para a pergunta “Qual o melhor framework Javascript?” é “São todos eles!”, pois o principal paradigma que deve-se ter em mente no momento em que vai se selecionar um framework para um determinado projeto é o seguinte: o mais importante é levar em conta seus requisitos para a escolha do framework que melhor se adeque ao seu problema.

Desta forma, o presente artigo é destinado a ser uma ferramenta de apoio com o intuito de apresentar características de alguns frameworks Javascript que são populares nos dias de hoje, não expondo prós e contras, mas sim características nas quais cada um deles melhor se aplica, de acordo com seus criadores e dados de pesquisas.

Frameworks Javascript Populares

Na comunidade Javascript, não há um número exato da quantidade de frameworks existentes. Resumidamente pode-se afirmar que toda ferramenta nova a ser criada tem seu ciclo de vida, podendo ser itemizado da seguinte forma:

  • Criação da ferramenta em lab, com um propósito definido em melhorar um aspecto que considera-se não tão bem trabalhado pelas soluções atuais;
  • Esta ferramenta é testada e experimentada ou por grupo de pesquisas de grandes empresas ou startups;
  • Caso venha a obter resultados satisfatórios pode acabar sendo uma tecnologia emergente para projetos reais e financiada de várias formas.

Com base nessas premissas vamos discutir sobre algumas tecnologias amplamente utilizadas e já consolidadas no mercado, sendo elas: AngularJS e Angular, React e Vue.js.

Angular JS

O AngularJS é um framework javascript de código aberto que foi desenvolvido em 2009 por desenvolvedores do Google, e podemos abstrair a motivação da sua criação como alcançar os seguintes objectivos:

  • Abstrair a manipulação do DOM, tendo seu próprio DOM para conseguir melhorar os testes de código da aplicação;
  • Por meio da ligação bidirecional dos dados (two way data binding), a abstração de como os dados trafegam entre cliente e servidor reduz a quantidade de códigos para estas operações;

Tudo em um projeto se resume na aplicação de diretivas em elementos HTML, responsáveis pela personalização do comportamento dos elementos, como “ng-app” que fará com que o elemento da raíz da aplicação tenha seu comportamento padrão modificado.

Como o AngularJS trata-se de um Framework robusto, o usuário consegue ter desde o controle de rotas de sua aplicação, bem como internacionalização e criação de testes unitários e E2E por exemplo, sem se fazer necessária a instalação de bibliotecas adicionais.

Além da complexidade de entendimento do Framework, e o tamanho da biblioteca em consequência da quantidade funcionalidades já presentes faz com que este framework seja melhor utilizado em aplicações de grande porte.

Paypal é uma entre muitas empresas, que em razão da complexidade de suas aplicações optaram por manter o uso do Angular JS. Em defesa da não transição, um dos argumento do Tech Lead foi que a aplicação da diretiva “ng-controller” dá um maior flexibilidade na criação de componentes reutilizáveis. Estes e outros aspectos você pode estar vendo no artigo original por meio deste link.

Outro aspecto interessante que vale ressaltar, é que em razão da comunicação de seus dados serem bidirecionais, este não é um framework indicado para criação de games web.

Angular

Comumente chamado de Angular 2+ ou Angular V2, é um framework que foi desenvolvido pelo mesmo time que desenvolveu o AngularJS, sendo feita uma total reescrita do framework anterior com o intuito de fazê-lo baseado em Typescript.

Typescript por sua vez, trata-se de um superconjunto de Javascript que foi desenvolvido pela Microsoft, inserindo alguns recursos a linguagem, sendo alguns deles:

  • Ser baseado em classes de Programação Orientada a Objeto;
  • Tipagem Estática;
  • Programação Genérica.

Este aspecto torna o Framework uma das principais escolhas para profissionais que têm uma maior familiaridade com linguagens fortemente tipadas, tais como Java e C#.

Ao contrário de uma aplicação desenvolvida com AngularJS, uma aplicação Angular é baseada em componentes. Por meio deles podemos definir comportamentos e regras de interfaces, tão quanto pode haver a encapsulação de componentes.

Seu ecossistema é rico quanto a existência de biblioteca de componentes tais como PrimeNG, Angular Material e ng-bootstrap.

Como ainda existem muitas empresas grandes que fazem uso do AngularJS no desenvolvimento de suas aplicações, a equipe do Google considerou muito importante manter times de suporte para o AngularJS  e para o próprio Angular até os dias de hoje.

Algumas empresas já estão construindo suas aplicações com o uso do framework Angular, enquanto outras têm feito o processo de migração de uma forma gradativa.

A Objective tem migrado a camada de Front-End da Taskboard de forma gradativa da biblioteca Polymer, também desenvolvida pelo time da Google, para o framework Angular. Em estudos, pude verificar que esta técnica é similar a escolhida pela Capital One, uma das maiores organizações financeiras americanas enquanto migrando sua aplicação do Framework AngularJS para o framework Angular, conforme você pode ver maiores detalhes no link.

React

O React, se trata de uma biblioteca mantida pelo Facebook e Instagram, com a responsabilidade de criação de UIs interativas e dinâmicas. 

Uma característica do ecossistema é que para aplicações mais complexas com gerenciamento de estados e controle de rotas por exemplo, você necessita utilizar outras bibliotecas além do React, bibliotecas essas que são mantidas pela comunidade, não especificamente pelo mesmo mantenedor do React.

Isto lhe dá o livre arbítrio de customizar sua aplicação da forma que você melhor goste, utilizando as bibliotecas que mais satisfazem os requisitos de seu projeto ou aplicação.

A razão de ser uma biblioteca, com escopo pequeno e não um framework como o Angular, bem como a simplicidade na criação de testes de componentes e os dados terem um fluxo unidirecional foram algumas das razões que levaram os desenvolvedores a escolher o React como novo framework do HipChat quando eles se uniram com a Atlassian, conforme pode-se ver mais detalhadamente no endereço oficial da postagem por este link.

Vue.js

Vue.js se trata de uma biblioteca independente criada por Evan You enquanto fazia parte do core team de desenvolvimento do AngularJS. Teve como motivação a necessidade de um framework com recursos suficientes para criação de um protótipo de interface de usuário.

Não se foge dos comparativos com o AngularJS nem com React, quando se fala em Vue.js. Isto se dá pelo fato que ele faz uso de diretivas nos elementos HTML para modificar o seu comportamento. 

Outro aspecto que manteve foco, foi de haver um ecossistema com um conjunto de bibliotecas mínimas para a criação de uma aplicação mantidas por um mesmo time, sendo o Vue.js sozinho uma biblioteca que atua na camada de View da aplicação, de uma forma similar ao React.

Assim como visto neste link, muitas empresas optaram pela adoção do Vue.js em razão da simplicidade na escrita de seus códigos e por não ser necessária a instalação de outros plugins, bastando realizar a importação da biblioteca para seu uso.

O Case Objective Solutions

Pela diversidade de projetos existentes na empresa, há profissionais com diferentes skills técnicas, o que favorece o ambiente colaborativo com a intenção de essas habilidades sejam difundidas entre todos.

É defendido aqui o quão importante é ter uma especialidade técnica, mas além disso também há uma preocupação e trabalho constante nos aspectos colaborativos da empresa, por meio de ações que façam com que seus colaboradores tenham contato e façam uso de tecnologias e ferramentas que fujam de sua zona de conforto.

A existência de vários times no ecossistema da Objective permite que se faça um trabalho de evolução técnica de uma forma eficiente e eficaz, pois a existência destes times facilita em questões de acompanhamento individual focando na evolução técnica de cada um, auxiliando no seu papel de colaborador na empresa.

Em razão da existência de projetos de diferentes amplitudes, como o Objective NG que é a solução da empresa voltada para empresas de telecomunicações, a Taskboard que se trata de uma solução para o gerenciamento de projetos e vários produtos Ad-hoc, permite que sejam exploradas diferentes tecnologias e consiga se ver de uma forma prática  a que a melhor se adeque em contraponto ao projeto que deseja-se aplicá-la.

Conclusões sobre Framework Javascript

Com base nas informações, pode-se concluir que cada ferramenta teve sua motivação para criação, tendo desta forma toda pessoa o livre arbítrio para escolha de sua ferramenta de acordo com suas necessidades e a skills de seus squads.

 Isto corrobora o fato de quanto é importante manter seus colaboradores sempre atualizados quanto a aplicabilidade de cada um dos frameworks e bibliotecas de mercado, auxiliando no processo de escolha de uma forma colaborativa e assertiva sempre quando se fizer necessário.

Não deixe de comentar o que achou de nosso artigo, bem como compartilhar nas redes sociais para melhorarmos cada vez a qualidade de nosso material.

Sugira um artigo

    Para enviar o formulário é necessário o aceite das políticas.

    Insights do nosso time

    Obtenha insights do nosso time de especialistas sobre metodologias de desenvolvimento de software, linguagens, tecnologia e muito mais para apoiar o seu time na operação e estratégia de negócio.