Do Trello ao Slack, do WordPress.com ao Github, tornou-se cada vez mais comum que os chamados aplicativos de desktop agrupem um site com alguns recursos nativos, como notificações, acesso ao sistema de arquivos e menus. A tecnologia mais comum que permite isso é chamada de Electron, e é usada por alguns aplicativos que você nem imagina, como o aplicativo de bate-papo Discord e o código do Visual Studio da Microsoft.
O Electron torna fácil para os desenvolvedores lançarem um aplicativo simultaneamente no Windows, macOS e Linux, mas há desvantagens para os usuários. Aplicações eletrônicas são enormes, por um lado. O Slack, um aplicativo de bate-papo, ocupa 237 MB de espaço no disco rígido no meu Mac, e o consumo de memória também não é baixo. O que está ocupando todos esses recursos? E por que os desenvolvedores estão usando algo tão ineficiente?
Aplicativos eletrônicos são bastante fáceis de fazer
A Electron “resolve” isso oferecendo uma plataforma única que funciona nos três principais sistemas operacionais de desktop. Isso significa que os desenvolvedores podem escrever o código para coisas como notificações uma vez e esperar que funcione nativamente em todos os sistemas operacionais. Melhor ainda para os desenvolvedores: tudo pode ser criado usando Javascript, HTML e CSS - tecnologias com as quais todos os códigos da Web estão familiarizados.
Aplicativos eletrônicos vêm com praticamente todo o cromo
Como isso é possível? Em parte, porque cada aplicativo da Electron inclui um navegador da Web completo: o Chromium, a versão de código aberto do Google Chrome. Isso é agrupado junto com as instruções específicas da plataforma para garantir que tudo se comporte exatamente como os desenvolvedores esperam em todos os sistemas. É por isso que a versão desktop do Slack ocupa mais de 200 MB de espaço no disco rígido: a maior parte do Chrome é fornecida lá.
You can think of Slack as a small javascript program running inside another operating system VM (chrome), that you have to run in order to essentially chat on IRC. Even if you’ve got the real chrome open, each electron app runs its own, extra copy of the whole VM.
Então, sim, há desvantagens para os usuários. Primeiro de tudo, cada aplicativo do Electron que você baixar empacota a maior parte do Chromium, e todo aplicativo que você executa está executando uma boa parte desse código. Não há compartilhamento de recursos aqui, como acontece com aplicativos nativos, o que significa que os aplicativos da Electron ocuparão mais espaço no disco rígido e memória do que um aplicativo desenvolvido especialmente com a sua plataforma. Se o desempenho é algo com o qual você realmente se importa, talvez você queira evitar os aplicativos de eletrônica.
Espere, o elétron é bom ou ruim?
E esses aplicativos realmente se integram melhor ao seu sistema operacional melhor que os sites. Eles vivem em sua própria janela. Eles oferecem ótimos atalhos de teclado, notificações nativas e outras coisas que você não pode fazer da mesma forma com apenas um navegador.
E é uma boa aposta que aplicativos como o Slack, o Trello e o WordPress.com não se incomodariam em oferecer uma versão para computador se o Electron não existisse, concentrando-se nas versões para dispositivos móveis e navegadores. Então a questão não é se Electron é ruim; é se as aplicações de elétrons são melhores que nada. Estou disposto a dizer sim, mas pessoas razoáveis podem discordar. (E, ei, para essas pessoas, há sempre a versão da web.)