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/

  • Weekly #180 – ECMAScript e mais ECMAScript, Palestra Mkt Digital e CFP CEJS

    A BrazilJS Weekly é a seleção semanal que reúne as novidades sobre o desenvolvimento Web no Brasil e no mundo. Ainda não é inscrito? Faça o seu cadastro e receba nossa Newsletter semanal 😎👊🙂👌👍 Sugira conteúdo para a Weekly usando o nosso canal de issues no Github. Um agradecimento especial aos 16 colaboradores da edição […]

  • BrazilJS Conf – Meia entrada

    Todo ano a BrazilJS Conf faz parceria com faculdades/universidades/escolas para proporcionar a ida de estudantes ao evento. Neste ano não será diferente. Com a liberação do primeiro lote, também liberamos um tipo de ingresso especial para estudantes, e assim será para todos os lotes seguintes. Então, se você é estudante e quer fazer parte da […]

  • Module folding: matando o código morto

    E aí galera! O tópico de hoje é module folding, também conhecido como tree-shaking. Estes termos são um tanto complicados de traduzir para o português, logo, utilizarei os nomes em inglês ao longo deste artigo. Module folding Module folding, ou tree-shaking, trata-se de uma técnica de eliminação de código morto (não utilizado), com o intuito […]

Patrocinadores BrazilJS

Gold

Bronze

BrazilJS® é uma iniciativa NASC.     Hosted by Getup