Neste artigo Adrian Thierry nos fala sobre o NectarJS, esse projeto meio maluco que apareceu recentemente no KickStarter permite compilar código JavaScript de forma nativa para qualquer plataforma, em WebAssembly ou mesmo em ASM.js.
Olá Adrien, e obrigado por esta entrevista, primeiro proponho apresentá-lo:
Olá Mathieu, sou um empreendedor francês, especialista em segurança de TI e apaixonado por novas tecnologias. Fundei a Seraum, uma empresa de consultoria e treinamento em segurança de TI, há cinco anos. Conduzi diversos projetos de pesquisa sobre segurança de pagamentos online e segurança de acesso em geral. Desenvolvo várias soluções de segurança e as testo em tempo real no hackmyfortress.com , um desafio de hacking que oferece US$ 30.000 para quem conseguir invadi-lo.
Você pode nos explicar o que é o NectarJS?
NectarJS é um compilador JavaScript multiplataforma em SAAS, ou CAAS (Compilador como Serviço). Ele permite que você compile JavaScript de qualquer plataforma, para qualquer plataforma. Atualmente, é possível compilar para Windows (32 e 64 bits), Linux (32, 64 bits e ARM), Arduino (UNO e Mega), em Webassembly. et ASM.JS. Portanto, é possível compilar JavaScript de um Rasbperry PI 3 para um Arduino. Estou falando de compilação, o resultado obtido é um arquivo binário executável ou firmware específico para a plataforma de destino. Você também pode compilar do seu telefone Android para Windows ou Linux. A plataforma de desenvolvimento não é mais um obstáculo. Dentro de uma equipe de desenvolvedores, não haverá mais necessidade de se preocupar com essa versão da VM ou com esse ambiente de teste ou compilação.

Como surgiu a ideia para este projeto?
Ao realizar testes de desempenho, descobri o Crystal , que permite compilar código de forma muito semelhante ao Ruby. O resultado compilado é de 5 a 10 vezes mais rápido que o NodeJS em requisições HTTP. Eu tinha duas opções para ganhar velocidade: migrar meu stack NodeJS para Crystal (que é restrito ao Linux) ou compilar JavaScript para melhorar a velocidade. Optei pela segunda opção e obtive resultados animadores muito rapidamente. Vários testes de desempenho confirmaram minhas escolhas e me motivaram a continuar o desenvolvimento. Publiquei uma notícia aleatória no Hacker News que viralizou (137 pontos e 78 comentários).
Este projeto realmente parece muito louco para ser verdade, você pode explicar um pouco como funciona sem dar a receita toda?
O NectarJS cria uma AST (árvore de sintaxe abstrata) e gera a partir dela uma linguagem intermediária (IL) que pode ser compilada para qualquer plataforma. O cliente NectarJS, instalado nas máquinas que desejam compilar, irá simplesmente criptografar o código e enviá-lo aos servidores para compilação.
Quais são as limitações atuais do projeto, posso compilar meu aplicativo Node/Express?
Ainda não, estamos no início do desenvolvimento e ainda temos muitas bibliotecas para codificar ou transcrever. Já podemos compilar algumas partes da biblioteca FS (FileSystem) ou Process do NodeJS, mas ainda há um longo caminho a percorrer. Eventualmente, não haverá limitações. Pretendemos compilar completamente o JavaScript para o padrão ES5, depois para ES6 e ES7. Também temos o algoritmo que nos permite compilar “eval()” ou “this.”.
Como eu depuraria meu aplicativo compilado nativamente?
Haverá várias maneiras de depurar seu aplicativo. O navegador, via WebAssembly, pode ser uma forma simples de analisar o funcionamento de seu código com ferramentas do dia a dia. Também planejamos integrar ao NectarJS todas as ferramentas de rastreamento e depuração, o que permitirá a compilação em modo de depuração e facilitará as investigações. Queremos muito democratizar o desenvolvimento e tudo faremos para que seja o mais simples e eficiente possível.
Você acha que seu projeto poderia substituir as linguagens nativas de aplicativos móveis?
Se for amplamente adotado, poderá substituir muitas coisas: desenvolvimento mobile, mas também desenvolvimento de IoT , desenvolvimento de servidores, desenvolvimento web… Com o NectarJS, o JavaScript se torna universal e eficiente. Qualquer pessoa pode programar em qualquer linguagem; o poder computacional é irrelevante, já que os servidores NectarJS fazem o trabalho. O NectarJS também reduz o consumo de energia, tornando a computação mais ecológica.
Também é possível permitir que pessoas com meios limitados codifiquem: um simples Raspberry permite desenvolver para qualquer tipo de plataforma com NectarJS.
O NectarJS permite que um desenvolvedor JavaScript seja tão eficiente quanto um desenvolvedor de baixo nível. Alguns benchmarks mostram que algumas operações matemáticas compiladas com NectarJS é mais rápido que C.
O NectarJS também pode ser usado em ambientes onde a velocidade é um fator chave de sucesso (negociação algorítmica, etc).
O projeto já foi muito bem sucedido?
Estamos em contato com empresas que desejam utilizar o NectarJS todos os dias. Começar uma comunidade do zero é muito complexo, e a campanha de crowdfunding no KickStarter me permite ver os problemas de comunicação e a resistência do desenvolvedor à mudança. Para muitos, JavaScript não é uma linguagem de programação, mas uma linguagem de script. No entanto, Paypal e outros grandes grupos usam JavaScript com NodeJS diariamente. Estou em contato com vários desenvolvedores conhecidos na comunidade JavaScript (NativeScript por exemplo), que apoiam o projeto. Muita gente acha que é fake, o que é uma pena.
O NectarJS fez o burburinho no Japão, por exemplo, e foi retransmitido em muitos sites de notícias em muito pouco tempo. Agora estou procurando fazer o mesmo nos Estados Unidos e na Europa.
Se o projeto KickStarter funcionar, quais seriam os próximos passos?
Conclua a compilação do padrão JavaScript ES5 e, em seguida, passe para o NodeJS. Ao mesmo tempo, adicionaremos rapidamente as plataformas ausentes à compilação (Mac Os, vários Arduinos e plataformas de desenvolvimento). Também criaremos um mercado para os desenvolvedores doarem ou venderem código ou bibliotecas. O objetivo da campanha é permitir que a comunidade de desenvolvedores escolha as próximas melhorias do NectarJS.
Caso a campanha falhe, temos investidores privados como respaldo, mas as escolhas de desenvolvimento serão feitas prioritariamente de acordo com suas necessidades.
A última palavra?
A todos aqueles que amam JavaScript ou são apaixonados por tecnologia, robótica ou IA, não hesitem em divulgar a informação e a campanha de crowdfunding: http://kickstarter.com/projects/adrien-thierry/nectarjs-compile-javascript-for-and-from-any-devic
Muito obrigado por esta entrevista Adrien e boa sorte com seu projeto.
Matheus Breton, CTO da JS-Republic.
[actionbox color=”default” title=”” description=”JS-REPUBLIC é uma empresa de serviços especializada em desenvolvimento JavaScript. Somos um centro de treinamento aprovado. Encontre todos os nossos treinamentos técnicos em nosso site de parceiros dedicado ao Treinamento” btn_label=”Nosso treinamento” btn_link=”http://training.ux-republic.com” btn_color=”primary” btn_size=”big” btn_icon=”star” btn_external ="1″]
