Aguarde...

12 de outubro de 2024

Anunciando VoidZero – Cadeia de ferramentas de próxima geração para JavaScript

Anunciando VoidZero – Cadeia de ferramentas de próxima geração para JavaScript

Ao longo dos anos, muitas ferramentas excelentes surgiram para lidar com a escala e a complexidade crescentes dos aplicativos JavaScript. No entanto, o ecossistema sempre foi fragmentado: cada aplicativo depende de uma miríade de dependências de terceiros, e configurá-los para funcionar bem juntos continua sendo uma das tarefas mais assustadoras no ciclo de desenvolvimento.

Como autor de um dos frameworks de frontend mais amplamente usados, dediquei um esforço significativo pesquisando cada camada da pilha de ferramentas JavaScript, montando centenas de dependências e projetando abstrações complexas sobre elas. O objetivo sempre foi dar aos usuários finais uma experiência de desenvolvimento coesa e pronta para uso. Esses esforços eventualmente levaram à criação do Vite em 2020.

Quatro anos depois, o Vite é agora uma das ferramentas de construção mais populares para desenvolvimento web, com mais de 15 milhões de downloads por semana e um vasto ecossistema. Além de ser a escolha certa para aplicativos de página única construídos com React e Vue, o Vite também está alimentando meta frameworks como Remix, Nuxt, Astro, SvelteKit, SolidStart, Qwik, Redwood e muito mais. Ele se estabeleceu claramente como a camada de infraestrutura compartilhada para a próxima geração de frameworks web.

Anunciando VoidZero - Cadeia de ferramentas de próxima geração para JavaScript

Veja os downloads semanais do NPM desde 2020

A confiança que a comunidade depositou no Vite me fez refletir profundamente sobre seu futuro. Embora o Vite tenha melhorado muito a experiência de desenvolvedor de alto nível, internamente, ele ainda depende de várias dependências, com abstrações e soluções alternativas para suavizar inconsistências. Em termos de desempenho, ele continua com gargalos por custos duplicados de análise e serialização em diferentes ferramentas, e não consegue aproveitar totalmente ferramentas nativas como o esbuild devido a restrições de recursos e personalização limitada.

Começamos a projetar um novo bundler, Rolldown, adaptado às necessidades do Vite. Mas, à medida que me aventurei mais profundamente nas camadas abaixo do bundler, percebi que os desafios que o Vite está enfrentando são um reflexo do ecossistema JavaScript em geral: fragmentação, incompatibilidades e ineficiência. Para mudar isso fundamentalmente, uma cadeia de ferramentas unificada é necessária.

Imagine uma cadeia de ferramentas que seja:

  • Unificado : usando o mesmo AST, resolvedor e interoperabilidade de módulo para todas as tarefas (análise, transformação, linting, formatação, agrupamento, minificação, teste), eliminando inconsistências e reduzindo custos de análise redundantes.
  • Alto Desempenho : escrito em uma linguagem compilada para nativa, projetado do zero para velocidade, com paralelização máxima e suporte a plugin JS de baixo overhead. O orçamento de desempenho desbloqueia recursos mais ambiciosos que melhoram não apenas a experiência do desenvolvedor, mas também a experiência do usuário final.
  • Componível : cada componente da cadeia de ferramentas é consumível de forma independente, oferecendo blocos de construção para personalização avançada.
  • Agnóstico de tempo de execução : não vinculado a nenhum tempo de execução JavaScript específico, oferecendo a mesma experiência ao desenvolvedor em todos os ambientes.

Tal cadeia de ferramentas não só aprimorará o Vite, mas também impulsionará melhorias significativas em todo o ecossistema JavaScript. Esta é uma visão ambiciosa, e alcançá-la requer uma equipe dedicada e em tempo integral — algo que não era possível sob o modelo de sustentabilidade independente dos meus projetos anteriores. É por isso que a VoidZero foi fundada.

Estou animado em anunciar que arrecadamos US$ 4,6 milhões em financiamento inicial para perseguir essa visão. Nossa rodada inicial foi liderada pela Accel, com a participação da Amplify Partners, Preston-Werner Ventures, BGZ, Eric Simons (StackBlitz), Paul Copplestone (Supabase), David Cramer (Sentry), Matt Biilmann e Christian Bach (Netlify), Dafeng Guo (Strikingly), Sebastien Chopin (NuxtLabs), Johannes Schickling (Prisma) e Zeno Rocha (Resend).

O progresso até agora

No ano passado, construímos uma equipe com profunda experiência em ferramentas JavaScript, incluindo criadores e colaboradores principais de projetos de código aberto amplamente adotados, como Vite, Vitest, Oxc e antigos colaboradores principais do Rspack.

Temos trabalhado arduamente desenvolvendo os elementos fundamentais da nossa cadeia de ferramentas imaginada. Além das melhorias contínuas no Vite, também entregamos:

  • O analisador JavaScript mais rápido e compatível com as especificações (oxc-parser), 3x mais rápido que o SWC – benchmark
  • O resolvedor compatível com Node.js mais rápido (oxc-resolver), 28x mais rápido que enhanced-resolve– benchmark
  • O transformador TypeScript / JSX mais rápido (oxc-transform), 4x mais rápido que SWC – benchmark
  • O linter mais rápido (oxlint), 50–100x mais rápido que o ESLint – benchmark
  • O executor de testes mais completo em recursos para aplicativos da web (Vitest)
  • O bundler mais rápido (Rolldown), construído sobre Oxc. Mais rápido que esbuild e todos os outros bundlers Rust – benchmark (atualmente em alfa)

Embora ainda seja cedo, nossos projetos de código aberto já estão sendo usados ​​por algumas das principais equipes de engenharia do mundo, incluindo as da OpenAI (cliente web ChatGPT), Google, Apple, Microsoft, Visa, Shopify, Cloudflare, Atlassian, Reddit, HuggingFace, Linear e muitas outras.

O que vem a seguir

Nosso principal objetivo para os próximos meses é estabilizar o Rolldown e torná-lo o bundler unificado para o Vite, tanto em desenvolvimento quanto em produção. Já fizemos um grande progresso e estamos mirando em um lançamento alfa do Vite com tecnologia Rolldown ainda este ano.

Em 2025, continuaremos a concluir os outros recursos planejados do Oxc (minificação, formatação) e gradualmente migraremos todo o ecossistema Vite para ser alimentado por Rolldown e Oxc. Trabalharemos em estreita colaboração com parceiros e stakeholders do ecossistema para garantir uma transição suave para os usuários finais.

Tudo o que disponibilizamos em código aberto continuará sendo de código aberto. Além dos nossos projetos de código aberto, ofereceremos uma solução de ferramentas JavaScript de ponta a ponta, projetada especificamente para atender aos requisitos de escala e segurança de ambientes corporativos.

Postado em BlogTags:
Escreva um comentário