¿Ha notado que muchas aplicaciones de escritorio nuevas se parecen mucho a sitios web? No es tu imaginación.
Desde Trello hasta Slack, desde WordPress.com hasta Github, es cada vez más común que las llamadas aplicaciones de escritorio incluyan un sitio web con algunas características nativas como notificaciones, acceso al sistema de archivos y menús. La tecnología más común que permite esto se llama Electron , y es utilizada por algunas aplicaciones que quizás ni siquiera sospeches, como la aplicación de chat Discord y Visual Studio Code de Microsoft .
Electron facilita a los desarrolladores el lanzamiento de una aplicación simultáneamente en Windows, macOS y Linux, pero existen desventajas para los usuarios. Las aplicaciones de los electrones son enormes, por un lado. Slack, una aplicación de chat, ocupa 237 MB de espacio en el disco duro de mi Mac y el consumo de memoria tampoco es bajo. ¿Qué está ocupando todos esos recursos? ¿Y por qué los desarrolladores utilizan algo tan ineficiente?
Las aplicaciones electrónicas son bastante fáciles de hacer
Las aplicaciones de escritorio son difíciles de crear, especialmente si desea que sean multiplataforma. El acceso al sistema de archivos funciona de manera diferente en Windows que en Linux, por ejemplo, y las notificaciones funcionan de manera diferente en macOS que en Windows. Esto significa que cualquier persona que quiera escribir una aplicación para los tres sistemas operativos de escritorio (o incluso dos de ellos) debe volver a escribir gran parte de su código al realizar la migración de uno a otro.
Electron «resuelve» esto ofreciendo una única plataforma que funciona en los tres principales sistemas operativos de escritorio. Esto significa que los desarrolladores pueden escribir el código para cosas como notificaciones una vez y esperar que funcione de forma nativa en todos los sistemas operativos. Aún mejor para los desarrolladores: todo se puede construir usando Javascript, HTML y CSS, tecnologías con las que cualquiera que codifique para la web esté muy familiarizado.
Las aplicaciones electrónicas vienen con prácticamente todo el cromo
¿Cómo es esto posible? En parte porque cada aplicación de Electron incluye un navegador web completo: Chromium, la versión de código abierto de Google Chrome . Esto se incluye junto con las instrucciones específicas de la plataforma para garantizar que todo se comporte exactamente como los desarrolladores esperan en todos los sistemas. Es por eso que la versión de escritorio de Slack ocupa más de 200 MB de espacio en el disco duro: la mayor parte de Chrome está incluido allí.
Cada aplicación de Electron que ejecuta es más o menos una instancia completa de Chrome. Como señaló el bloguero Joseph Gentle , esto no es ideal:
Puede pensar en Slack como un pequeño programa javascript que se ejecuta dentro de otra máquina virtual del sistema operativo (Chrome), que debe ejecutar para esencialmente chatear en IRC. Incluso si tiene abierto el cromo real, cada aplicación electrónica ejecuta su propia copia adicional de toda la máquina virtual.
Así que sí, hay desventajas para los usuarios. En primer lugar, cada aplicación de Electron que descargas incluye la mayor parte de Chromium, y cada aplicación que ejecutas ejecuta una buena parte de ese código. Aquí no se comparten recursos como ocurre con las aplicaciones nativas, lo que significa que las aplicaciones de Electron ocuparán más espacio en el disco duro y memoria que una aplicación desarrollada con su plataforma específicamente en mente. Si el rendimiento es algo que realmente le importa, es posible que desee evitar las aplicaciones de Electron.
Espera, entonces, ¿Electron es bueno o malo?
En este punto, las computadoras son tan poderosas que la mayoría de los usuarios ni siquiera notarán cuán ineficientes son las aplicaciones de Electron. De hecho, la gran mayoría nunca ha oído hablar de Electron. La mayoría de mis compañeros de trabajo no lo habían hecho y todos usan Slack todos los días. Muchos estaban emocionados de ver salir una versión de escritorio de Trello, y nuevamente no tenían idea de que era una aplicación de Electron.
Y estas aplicaciones realmente se integran mejor con su sistema operativo mejor que los sitios web. Viven en su propia ventana. Ofrecen excelentes atajos de teclado, notificaciones nativas y otras cosas que no puede hacer de la misma manera con solo un navegador.
Y es una buena apuesta que aplicaciones como Slack, Trello y WordPress.com no se molestarían en ofrecer una versión de escritorio si Electron no existiera, centrándose en cambio en las versiones móviles y de navegador. Entonces la pregunta no es si Electron es malo; es si las aplicaciones de Electron son mejores que nada. Estoy dispuesto a decir que sí, pero las personas razonables pueden no estar de acuerdo. (Y bueno, para esas personas, siempre existe la versión web).