O que esperar do Node.js v7
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
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
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.
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://medium.com/@nodejs/the-progress-of-node-js-a-year-post-node-js-and-io-js-merge-and-where-the-technology-is-going-f168ce9ec8ee#.1ye68eohd
http://www.infoworld.com/article/3121237/application-development/nodejs-upgrades-module-safety-and-ecmascript-support.html
https://blogs.windows.com/msedgedev/2016/01/19/nodejs-chakracore-mainline/
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/