Logotipo del navegador Chromium.

Chrome no solo se hizo cargo de la web, también se hizo cargo de las aplicaciones nativas. Muchas de las aplicaciones que ejecuta en Windows, Mac e incluso Linux consisten en piezas obsoletas de Chromium, el motor que forma la base de Google Chrome.

¿Qué aplicaciones se crean a partir de Chromium?

Hay varias formas en que un desarrollador puede construir una aplicación utilizando el motor del navegador Chromium. Electron es el más conocido, pero muchas otras aplicaciones usan algo llamado CEF, el marco integrado de Chromium.

¿Hablando por Internet? Slack es una aplicación popular construida con Electron. ¿Tomando notas? Evernote usa CEF y Trello usa Electron. ¿Tocando musica? Sí, lo adivinó: Spotify usa CEF, al igual que Amazon Music.

Podría pensar que Microsoft se alejaría de Chromium porque, después de todo, creó Windows. Estarías equivocado. GitHub Desktop, Microsoft Teams, Skype, Visual Studio Code y Yammer son todas aplicaciones de Electron. Incluso la nueva aplicación Xbox para Windows 10 está construida con Electron, en lugar de la propia UWP (Plataforma universal de Windows) de Microsoft.

Los juegos de PC en su mayoría se quedan con aplicaciones nativas, pero sus lanzadores y herramientas de chat asociadas ciertamente no lo hacen. Discord y Twitch.tv usan Electron. Battle.net, Desura, Epic Games Launcher, GOG Galaxy, Uplay e incluso Steam usan CEF. El cliente Origin de EA usa Qt WebEngine, que también integra el código Chromium.

Puede hacerse una idea de cuántas aplicaciones utilizan Chromium echando un vistazo a las listas muy incompletas de aplicaciones de Electron y CEF en Wikipedia. Allí se incluyen aplicaciones de respaldo, como CrashPlan, así como administradores de contraseñas, como Bitwarden, y utilidades, como Adobe Creative Cloud.

Es como una aplicación web (pero usa más RAM y almacenamiento)

Uso de memoria floja en el Administrador de tareas de Windows.

Cada aplicación basada en Electron o CEF incluye una copia separada de partes de Chromium. Si bien las aplicaciones que usan Electron y CEF son similares a las aplicaciones web en su navegador web, son menos eficientes y usan más memoria en su sistema.

Cuando abre Gmail en una pestaña de Chrome y Facebook en otra, su sistema operativo solo necesita ejecutar una copia de Chrome. Pero cuando ejecuta dos aplicaciones diferentes de Electron o CEF, su sistema operativo necesita una copia separada de Electron o CEF para cada una.

No es raro ver que una aplicación basada en Electron, en particular, consuma una cantidad sorprendente de RAM. Nuevamente, debido a que cada una de estas aplicaciones incluye archivos Chromium separados, usan espacio adicional en su sistema.

¿Por qué están desactualizados y eso es un problema?

La documentación de seguridad de Electron explica por qué basa su código en versiones desactualizadas de Chromium:

“Si bien Electron se esfuerza por admitir nuevas versiones de Chromium lo antes posible, los desarrolladores deben ser conscientes de que la actualización es una empresa seria que implica la edición manual de docenas o incluso cientos de archivos. Dados los recursos y las contribuciones disponibles en la actualidad, Electron a menudo no estará en la última versión de Chromium, con un retraso de varias semanas o meses ".

Incluso después de que el proyecto Electron crea esa nueva versión, los desarrolladores que crean aplicaciones Electron deben tomar ese código, integrarlo en sus aplicaciones Electron y enviar una actualización.

Sin embargo, esto no es tan aterrador como parece. La documentación de Electron aconseja a los desarrolladores que eviten mostrar código que no sea de confianza y que dependan principalmente de recursos locales o contenido remoto seguro y confiable. Es por eso que muchas aplicaciones de Electron no parecen ser navegadores web. Por ejemplo, Slack utiliza tecnologías web para proporcionar una interfaz de chat, pero accedes a tu navegador web tan pronto como haces clic en un enlace.

¿Por qué los desarrolladores usan Chromium?

A los desarrolladores les gustan estas soluciones porque utilizan tecnologías web, con las que la mayoría de ellos ya están familiarizados. Como Electron promociona con orgullo en su página de inicio, "Si puedes crear un sitio web, puedes crear una aplicación de escritorio".

Sin embargo, son más poderosas que las aplicaciones web simples. Las aplicaciones de Electron pueden acceder a su sistema de archivos y otros recursos del sistema local. Muchas aplicaciones CEF son aplicaciones nativas que integran un navegador Chromium. Por ejemplo, Steam incorpora un navegador para mostrar la tienda y las interfaces de la comunidad.

Las aplicaciones de Electron también son multiplataforma, como Chromium. Puede ejecutar una aplicación como Slack en Windows, Mac y Linux, así como en la web. Un desarrollador no podría crear una aplicación multiplataforma si dependiera de las tecnologías Microsoft Edge o Apple Safari. Los desarrolladores quieren crear una aplicación una vez y ejecutarla en todas partes. Esto ahorra mucho tiempo y recursos en comparación con la creación de una aplicación nativa para cada plataforma.

Estas soluciones basadas en Chromium ofrecen una mejora con respecto a lo que venía antes de muchas maneras. Antes de adoptar CEF, Steam incorporó Internet Explorer. Muchas aplicaciones en Windows también simplemente incorporaron una interfaz de Internet Explorer; estamos mucho mejor con Chromium.

Las PWA podrían ofrecer una salida

La "¿Instalar aplicación?"  emergente en Google Chrome.

Electron, CEF y tecnologías similares tienen muchas ventajas, pero también algunas desventajas. Las aplicaciones web progresivas  (PWA) podrían algún día ofrecer una salida porque proporcionan a las aplicaciones web modernas una forma de trabajar sin conexión. Sin embargo, a diferencia de Electron y CEF, las PWA utilizan su navegador web estándar en segundo plano. También puede instalarlos a través de su navegador web, sin necesidad de actualizar y agrupar manualmente el código de Chromium.

A medida que Microsoft pasa a una versión basada en Chromium de su navegador Edge, será interesante ver si los PWA comienzan a competir con éxito con Electron. Definitivamente sería una solución más limpia con un menor uso de memoria.