Equipe Microsoft Chakra comemora o primeiro aniversário do mecanismo de código aberto do navegador Edge

Por Brian Terlson, Gaurav Seth e Limin Zhu //

No dia 13 de janeiro comemoramos o aniversário de um ano do ChakraCore – o núcleo de código aberto do mecanismo Chakra JavaScript do Microsoft Edge – sob a licença do Massachusetts Institute of Technology (MIT). Queremos aproveitar o momento para dizer obrigado a cada um na comunidade que contribuiu, ajudou e foi nosso parceiro!

Suas contribuições e opiniões nos ajudaram a criar um produto melhor para a comunidade. Durante esse período, tivemos mais de 70 colaboradores, tanto internos quanto externos, contribuindo diretamente para a base de código do ChakraCore e diversos outros membros da comunidade JavaScript que se relacionaram conosco, tanto individualmente quanto como organizações. Novos produtos e serviços como TypeScript, Open Translator to Things e HoloJS estão agora usando o ChakraCore. E tem sido ótimo ver trabalhos fora do núcleo gerando valor para a comunidade com coisas como o test suite landing em Webkit e o SpideNode construído em ChakraShim.

 

github

 

 

No último ano, falamos sobre diversos recursos que incluímos no ChakraCore, como suporte à linguagem JavaScript e otimização de desempenho focado em experiências reais de usuários. Além disso, trouxemos novas tecnologias como o Time Travel Debugging e WebAssembly para o mecanismo. Agora, gostaríamos em compartilhar um pouco mais sobre o progresso que fizemos ao levar o ChakraCore para múltiplas plataformas.

O caminho para a paridade do ChakraCore com Linux

Um dos principais objetivos que definimos para o ChakraCore quando ele se tornou open source foi permitir que ele rode em outras plataformas além do Windows, começando com Linux, para que os desenvolvedores possam utilizar o mecanismo para suas necessidades, não importando a plataforma na qual seus apps ou serviços rodem. Em julho passado, compartilhamos a primeira implantação experimental do interpretador e runtime ChakraCore em x64 Linux (Ubuntu 16.04 e Clang 3.8+) e macOS. Essa implantação permitiu que um interpretador ChakraCore JavaScript de alta fidelidade fosse executado numa plataforma Linux.

Apesar de interpretadores normalmente não serem bons no que se trata de desempenho de transferência, eles podem ser muito úteis em casos nos quais a aplicação ou serviço tem limitações de memória ou o foco do usuário final é no desempenho de inicialização. Isso acontece porque interpretadores têm uma baixa ocupação de memória e latência de inicialização. Eles não precisam manter cópias do código JITed que foi criado baseado nas otimizações dinâmicas, que são comuns em compiladores JavaScript JIT. Funções JITed são, em geral, maiores em tamanho se comparadas com o bytecode compacto. Além disso, interpretadores pode começar a executar o código imediatamente, desde que tenha sido analisado (parsing).

Para cenários nos quais o desempenho de transferência importa, entregamos o ChakraCore JIT em dezembro. No entanto, o compilador JIT por si não é suficiente para maiores transferências já que o desempenho rapidamente fica limitado pela performance do coletor de lixo, que é uma parte inerente de qualquer engine JavaScript moderna. Agora, estamos felizes de compartilhar que também implementamos o suporte à barreira de escrita em software para Linux no ramo principal do ChakraCore, que é a chave para habilitar o coletor de lixo concorrente e parcial do ChakraCore.

Com o JIT e um coletor de lixo completo chegando ao ChakraCore, todas as principais peças da arquitetura do ChakraCore no Windows foram levadas para o Linux. A equipe agora está focada em adicionar os poucos recursos restantes, como o suporte à internacionalização, remover os últimos bugs e otimizar as características de performance para que o ChakraCore no Linux esteja emparelhado com o do Windows.

O que vem a seguir

Nossos próximos passos para o ChakraCore estão sempre disponíveis em nosso roadmap. Atualmente, estamos intencionalmente deixando de atualizar significativamente o roadmap que mostra nosso foco a curto prazo – fortalecer o suporte do ChakraCore no Linux e levá-lo à qualidade suficiente para o lançamento, seguindo nossos esforços junto à comunidade Node.js com as APIs Node ABI estáveis, aceitando mais recursos JavaScript e WebAssembly e melhorando o desempenho para padrões de utilização reais.

À medida que progredimos nas peças relacionadas a multiplataforma, você pode esperar nos próximos meses um lançamento do ChakraCore com melhor suporte e desempenho no Linux. Mas, para vocês que querem experimentar o ChakraCore no Linux ou macOS hoje e compartilhar suas primeiras opiniões conosco no suporte de qualidade Beta, aqui estão instruções para começar.

Mais uma vez, estamos honrados como equipe em trabalhar com a maravilhosa comunidade JavaScript e gostaríamos de agradecer a todos que contribuíram com o projeto e nos apoiaram. Esperamos continuar trabalhando com a comunidade e ver mais desenvolvedores contribuindo com o projeto e construindo coisas com o ChakraCore. Adoraríamos ouvir sua experiência, suas opiniões e saber o que você está produzindo – então continue compartilhando! Estamos sempre disponíveis pelo repo ChakraCore, via gitter ou pelo perfil @ChakraCore no Twitter.

Gaurav SethLimin ZhuBrian Terlson são Gerentes de Programação do Chakra.

Tags: , ,

Posts Relacionados