O que esperar do Node.js v7

Em:

Há poucos meses (abril 2016) falamos aqui sobre as novidades do Node.js v6, especialmente sobre o quase total suporte à especificação ES2015/ES6. O Node.js não para de crescer e evoluir. Desde o merge com o io.js e com a formação e formalização da fundação Node.js, o projeto ganhou uma nova cara, muito mais profissional, focada no mercado. Isso, sem perder a essência e o foco na comunidade.

Na última semana aconteceu o Node.js Interactive Europe, onde as novidades das próximas versões (v7 e v8) foram apresentadas. Abaixo listamos algumas:

VM agnostic

Dentre as principais novidades, o plano de tornar o Node.js agnóstico à VMs é o que mais se destaca. Segundo a fundação, em 2017, o Node.js se tornará completamente independente de VMs. Atualmente (e desde o início do projeto), o V8 é a engine base para o Node.js. Por muitos anos, o projeto ficou estagnado em versões desatualizadas do V8 – o que, de certa forma, impediu a evolução da plataforma. Mesmo com as recentes mudanças e o uso de versões recentes do V8, uma nova abordagem no uso de VMs emergiu. O V8 é a engine utilizada atualmente no Google Chrome.

No início do ano (janeiro 2016), a Microsoft fez um pull-request para o Node.js, habilitando o uso da sua engine, o ChakraCore, como motor base. O pull-request evoluiu tornando-se um projeto isolado da Node.js Foundation, chamado de node-chakracore. O ChakraCore é a engine utilizada atualmente no Edge.

Existem outras iniciativas semelhantes, como o SpiderNode, da Mozilla, que é um porte do Node.js rodando em cima do SpiderMonkey. O SpiderMonkey é a engine utilizada atualmente no Firefox.

Para tornar o uso de outra engine possível, em ambas soluções, a técnica utilizada foi a criação de um shim para a API do V8.

Node.js com ChakraCore


Node.js com ChakraCore

A possibilidade de uso de múltiplas engines é um passo extremamente importante para a evolução da plataforma. Dessa maneira, não ficamos “presos” exclusivamente às inovações no V8 e isso permite que o Node.js seja amplamente utilizado em diversas áreas, como IoT, servidores, desktop, sistemas embarcados, etc.

Vale salientar que a versão 7 do Node.js virá com a versão mais recente do V8, a 5.4, que possui melhorias relacionadas ao uso de memória.

Suporte a 99% da ES2015/ES6 e 100% ES2016/ES7

Imagem: The High Barrier To Entry For ES2015.


Imagem: The High Barrier To Entry For ES2015

A v6 do Node.js estava com suporte para praticamente toda a especificação (93%). Agora, na versão 7, o Node.js conta com incríveis 99% de suporte, segundo o node.green.

A ES2015/ES6 foi uma atualização densa, com inúmeras melhorias e adições na linguagem. A ES2016/ES7 inclui poucas funcionalidades e, a partir da versão 7 do Node.js, o suporte já está completo. A implementação da especificação ES2017/ES8 já está em andamento e a funcionalidade mais esperada é o suporte a async/await.

Vale lembrar que esses 99% de suporte a ES2015/ES6 devem-se à utilização da versão 5.4 do V8, citada na seção anterior.

Canary in the Gold Mine

Canary in the Gold Mine, ou simplesmente citgm, é uma ferramenta criada para a automatização de testes dos principais módulos existentes no ecossistema Node.js. Segundo o modulecounts.com, o Node.js é o maior ecossistema existente e em constante crescimento.

Node.js é o maior ecossistema


Crescimento ecossistema Node.js (npm)

Com esses testes, espera-se garantir que nenhuma atualização do Node.js afete os módulos mais utilizados pela comunidade.

Conclusão

Essas novidades só mostram o quanto o projeto Node.js amadureceu e justifica o hype e o uso da tecnologia nas mais diversas áreas. O JavaScript é uma linguagem incrível, em constante evolução, e a plataforma Node.js está cada vez mais no nosso dia a dia, direta ou indiretamente.

Referências (em inglês):

https:[email protected][email protected]where-the-technology-is-going-f168ce9ec8ee#.1ye68eohd

http://www.infoworld.com/article/3121237/application-development/nodejs-upgrades-module-safety-and-ecmascript-support.html

Crédito da imagem “The High Barrier To Entry For ES2015” (uso autorizado pelo autor): https://derickbailey.com/2016/04/18/the-high-barrier-to-entry-for-es2015-es6/

Patrocinadores BrazilJS

Gold

Silver

Bronze

Apoio

BrazilJS® é uma iniciativa NASC.     Hosted by Getup