JavaScript – Onde queremos estar em 2016?
O stack de tecnologias JavaScript aumentou exponencialmente nos últimos tempos por diversos motivos, e é possível sublinhar alguns pontos centrais para contextualizar sobre qual direção seguir daqui para frente. A adoção de grande parte da comunidade open source entorno da tecnologia foi e continua sendo crucial para esse crescimento praticamente orgânico que percebemos ao olhar o ecossistema JavaScript, desde ferramentas completas desenhadas para soluções abrangentes, até bibliotecas e pequenos frameworks para a resolução de problemas pontuais e recorrentes. Outro ponto crucial é o fato de o JavaScript ser uma solução Web dominante, e a Web está atualmente habilitada em quase todos os tipos de dispositivos que conhecemos, fazendo ser praticamente obrigatória a sua adoção quando falamos em Web. Com a introdução do JavaScript no lado do servidor com o NodeJS, acabou se tornando natural sua escolha.
Mas onde vamos chegar? Ou melhor, onde queremos chegar em 2016?
Com esse crescimento desenfreado, e sua adoção cada vez mais natural, precisamos de um norte para nos guiar nesse mundo onde tudo está em ebulição e constante movimento. E para isso, precisamos ver e entender quais as tecnologias vão se perpetuar ou estão em uma crescente muito grande. É importante salientar que é necessário falar tanto em tecnologias client side como em server side para um mapa mais completo e interessante.
O principal objetivo é servir como um mapa para o que está em alta dentro do ecossistema do JavaScript e apresentar uma visão sobre o que escolher para o seu próximo projeto, considerando algumas variáveis como: release, sponsors, documentação e utilização. A partir desta analise, será possível escolher a ferramenta que está mais aderente a suas necessidades e aprofundar os estudos até o domínio completo da ferramenta.
Front End
* Angular 2.0*
O AngularJS já é um framework consolidado no mundo JavaScript e talvez o mais conhecido por todos, porém está cada vez mais próxima a iminente release do AngularJS 2, e por esse motivo, essa tecnologia merece ser analisada e pontuada.
A versão 2 do AngularJS vem com uma série de novidades que mechem completamente com a forma que os projetos são desenvolvidos atualmente, e isso faz dessa versão praticamente um novo framework, e será necessário uma total reconstrução para adaptar projetos feitos em versões anteriores para a nova versão.
Release: Somente em build.
Main Sponsor: Google.
Documentação: Ótima documentação.
Utilização: Por enquanto, nenhuma grande empresa adotou essa tecnologia para o seu stack.
Por que adotar/estudar:
- Desenhado para browsers modernos;
- ECMAScript 6;
- Detecção de mudança mais rápida do DOM;
- Modular;
- Components;
- Anotações;
- TypeScript;
Onde estudar?
É com certeza uma tecnologia em total ebulição e que se perpetuará por consequência de sua força na comunidade e pelas suas features que tendem a ser uma referência para a próxima geração de frameworks front end, e mudar a forma como desenvolvemos nossos projetos. Porém, sua release final não foi lançada e não existe um caso de utilização por uma grande empresa que possa ser seguido como um case de sucesso, acreditamos que em um futuro próximo, sua adoção será de forma natural, mas atualmente, enquanto não houver uma release e utilização por empresas, a nossa opinião será:
Implementar: NÃO
* React.js*
O ReactJS é um framework para desenvolvimento web front-end, totalmente baseado no conceito de componentes, um componente é algo que pode ter estado, propriedades e um ciclo de vida.
Mesmo parecendo simples, o ReactJS é um framework com um approach bem definido. O ReactJS só cuida da view do projeto, e por esse motivo o conceito de componentes se encaixa de forma perfeita como uma abstração.
O ReactJS se torna a escolha perfeita pela sua ótima performance, isso é possível porque ele cria um DOM virtual, e analisa quando existe uma diferença entre o DOM virtual e o DOM da página, atualizando somente o que estiver diferente. Pelo fato de o ReactJS ser um framework para a view do projeto, é necessário usar algum outro framework em conjunto com ele para atingir um resultado satisfatório.
Release: v0.14.7
Main Sponsor: Facebook.
Documentação: Boa documentação.
Utilização: Instagram, Facebook, Uber, WhatsApp, Paypal, Netflix.
Por que adotar/estudar:
- ReactJS != MVC;
- Manutenção;
- Reativo Nativo;
- Reutilizável;
- Renderização Universal;
- Testabilidade;
Onde estudar?
ReactJS é uma tecnologia estável, que está em constante crescimento e em adoção pelas gigantes da web. Sem a menor dúvida, é uma ferramenta que merece total atenção, seu objetivo e escopo são simples e o retorno de valor é ótimo, e tudo isso faz desse framework uma ótima escolha para o desenvolvimento da camada de view do seu próximo projeto. A nossa opinião é:
Implementar: SIM
Vue.js é um framework front-end que tem como principal objetivo a simplicidade, de desenvolver a aprender, mas ainda sim, é um framework poderoso. O Vue faz uma mistura de tudo que existe de melhor nos frameworks de front-end atualmente, de forma coesiva e digestiva.
Começar no Vue tende ser mais fácil que em outros frameworks, como o ReactJS, pois existe a ferramenta de linha de comando para criar um scaffolding do projeto de forma simples e rápida, o vue-cli. Isso gera padronização na maioria dos projetos construídos com essa ferramenta, sendo natural reconhecer um projeto com Vue e começar a trabalhar nele.
Release: v1.0.17
Main Sponsor: Vue Team.
Documentação: Boa documentação.
Utilização: PearsonVue, Laracasts, MyAnimeList.
Por que adotar/estudar:
- Simples;
- Flexivel;
- Performance;
- Binding;
Onde estudar?
É uma ferramenta com um ótimo futuro e tudo indica que será adotado por grandes empresas, principalmente por suas features que atendem de ótima forma o lado mobile, porém, ainda necessita de um sponsor mais forte e de features que garantam a mesma performance que no ReactJS. Por esses motivos, a nossa opinião é:
Implementar: NÃO
Back End
* Sails.js*
O Sails é framework MVC-style para o NodeJS, especialmente desenhado para o rápido desenvolvimento de aplicações backend em JavaScript. Construído para ser um tipo de "Javascript on Rails", o Sails tem uma arquitetura robusta, que prove diferentes tipos de componentes que podem ser utilizadas para organizar o código e fazer a separação de responsabilidades.
Por baixo dos panos, o Sails é um framework construído sobre o ExpressJS. O Express é praticamente um standard na plataforma NodeJS, e isso é algo importante de ser lembrado, porque o Sails é a ferramenta que estende o Express para leva-lo para um próximo nível.
Release: v0.12.1
Main Sponsor: Treeline e Balderdash.
Documentação: Documentação ok.
Utilização: Por enquanto, nenhuma grande empresa adotou essa tecnologia para o seu stack.
Por que adotar/estudar:
- MVC;
- WebSocket;
- Database Agnóstico;
- Frontend Agnóstico;
- Auto-generate REST API;
Onde estudar?
O Sails ainda é um framework novo e com pouco adesão por grandes empresas, e um dos maiores problemas que pudemos encontrar ao mencionar o Sails, é o ORM provider que ele utiliza, o Waterline. O Waterline é uma interface que funciona para qualquer database, e por esse motivo, deve conter somente features que são comuns a todos os databases, ou seja, se for necessário utilizar alguma feature nova do PostgreSQL, não será possível. Também não tem suporte para transações, para tipos customizados do PostgreSQL (bigint, bytea, array), etc. Os problemas citados nos levam a seguinte opinião:
Implementar: NÃO
Strapi é um framework desenvolvido sob o KoaJS e totalmente focado em Restful API, construído inicialmente para não ser necessário escrever uma única linha de código para ter uma API funcionando.
Esse conceito se estende de duas maneiras, a primeira é desenvolver tudo pelo seu Strap Studio, na qual o usuário pode desenvolver sua API sem escrever nenhuma linha de código. Todas as modificações realizadas online são refletidas localmente. A segunda opção, é construir a API pela sua ferramenta de linha de comando, é possível desenvolver tudo com comandos, como na maioria das ferramentas de RAD (Rapid Application Development). Assim, a preocupação é focada na lógica e negócio da API, não tendo mais problemas com infraestrutura ou com componentes da API.
Segurança é talvez o ponto mais importante no Strapi, por esse motivo ele vem com várias camadas para configurar toda a parte de permissão e autenticação de uma API, dependendo do seu business value.
Release: v1.5.4
Main Sponsor: Wistity HQ
Documentação: Documentação ruim.
Utilização: Novamente, por ser uma tecnologia muito recente, nenhuma grande empresa adotou essa tecnologia ainda.
Por que adotar/estudar:
- Pode tornar-se uma nova tendência em desenvolvimento Restful API;
- Strapi Studio;
- Database Agnóstico;
- Suporte ao GraphQL;
- Autenticação;
- Permissão;
Onde estudar?
Esta ferramenta ainda é recente e deve ser utilizada com precaução. É importante ressaltar que a ferramenta é muito boa, mas não deve-se utilizá-la em sistemas core de uma empresa.
Implementar: NÃO
* Nodal*
NodalJS é um framework construído sob o NodeJS para desenvolvimento REST com foco na simplicidade e facilidade. Todo o ideal desse framework é ser simples, desde o desenvolvimento, até estar funcionando em ambiente de produção, sendo possível fazer o deploy para o Heroku com apenas alguns clicks.
O framework é realmente novo, mas vem recebendo uma adoção e suporte de veteranos conhecidos, que ajudaram a desenvolver outros frameworks, como por exemplo, o Django. Um dos destaques do Nodal é o fato de ser construído sob o ES6 desde o início e ser natural desenvolver a API nessa especificação. Além disso, a persistência é feita com o PostgreSQL.
Release: v0.8.0. No GitHub não há informações sobre as releases.
Main Sponsor: Keith Horwood.
Documentação: Boa documentação e comunidade ativa.
Utilização: Por enquanto, nenhuma grande empresa adotou essa tecnologia para o seu stack.
Por que adotar/estudar:
- Schedulers;
- CLI tools;
- Arquitetura montada para microservices;
- ECMAScript 6;
Onde estudar?
O Nodal é um framework interessante, mas a falta de um suporte mais robusto faz com que seja recomendado ter cuidado na adoção desta tecnologia. É também um framework muito recente, com poucos meses de vida.
Implementar: NÃO
Conclusão
Todos os frameworks citados nesse artigo, são as tendências que vemos para esse ano, e estão em fase inicial. Por esse motivo, a maioria dos frameworks ficaram com o status de 'não implementar', mas é necessário entender, que esse status é para ambiente de produção, ou ambiente final de uma empresa, e que, essas tecnologias podem se tornar estáveis e serem adotadas por grandes empresas, mudando assim a nossa avaliação.
Nós motivamos ao máximo para que todos utilizem esses frameworks para um contexto de experimentação e provas de conceito (PoCs) dentro de suas empresas, ou, em projetos pessoais. E principalmente, que se envolva com algum projeto, faça parte, a comunidade open source sempre estará de braços abertos para pessoas entusiasmadas e criativas.
Vale ressaltar que esses frameworks são tendências para esse ano, porém, toda a plataforma por trás deles, já não é mais. JavaScript para o backend e para o frontend já é realidade faz um tempo, e está se perpetuando, com novas versões da especificação, e com cada vez mais empresas e developers o utilizando.
Deixe seu comentário dizendo qual framework você utiliza atualmente para desenvolvimento web, ou qual pretende utilizar, vamos fomentar o assunto com nossas experiências.