O Google anunciou e antecipou o lançamento da plataforma Carlo, uma experiência do Google Labs para criar aplicativos Node.js. O Carlo utiliza o Puppeteer para a comunicação entre os aplicativos Node.js e o Chrome.
O Electron é o líder atual no fornecimento de ferramentas para criar aplicativos desktop com tecnologias web. Em contraste com o Electron, o Carlo não tenta empacotar uma versão específica de Chrome e Node.js, ao invés disso usa qualquer versão do Chrome instalada no computador do usuário.
O Carlo não fornece recursos para fazer aplicativos desktop com opções como alterar o nome, o menu ou o ícone de visualização no navegador. Em vez disso, está mais próximo de algo que roda um aplicativo em um servidor local de aplicativos e automatiza sua visualização no Chrome.
O Puppeteer, o projeto de automação para navegadores do Google que utiliza o protocolo DevTools, é o mecanismo pelo qual o Carlo se comunica com a instância do Chrome.
Os aplicativos baseados em Carlo não precisam ser atualizados toda vez que o Chrome é atualizado. A grande desvantagem é que qualquer nova versão do Chrome pode interromper a funcionalidade de um aplicativo. Os aplicativos retornarão um erro se não puderem localizar uma instalação do Chrome versão 70 ou superior.
O pacote pkg é recomendado para empacotar os aplicativos Carlo em binários executáveis. Em contraste, o Electron fornece um conjunto rico de infraestrutura para criação de aplicativos.
Provavelmente, o Carlo reacenderá o debate sobre o que é "web vs. o que não é". O engenheiro do Google, Alex Russell, já havia argumentado que ambientes como o Electron não são da web:
Muitas plataformas tentaram possibilitar o acesso a recursos "exóticos" e, ao mesmo tempo, permitir que os desenvolvedores construíssem com a tecnologia web de client-side. Ao fazê-lo, geralmente descartam um ou mais aspectos do sistema de valores compartilhados. E não são ruins - muitos são tecnicamente brilhantes - mas não são da web.
A abordagem incentivada pelo Carlo deve se adequar bem para Progressive Web Apps (PWA). Os desenvolvedores que procuram recursos completos para aplicativos desktop provavelmente continuarão usando o Electron.
Carlo está disponível sob a licença open source Apache 2. Contribuições são bem-vindas através do projeto Carlo no GitHub e devem seguir as diretrizes de contribuição do Carlo e as diretrizes de conduta de código aberto do Google.