Discord si prepara a una delle revisioni tecniche più radicali della sua storia: il client desktop abbandonerà Electron e verrà ricostruito attorno a Rust, con l'obiettivo di ridurre il consumo di risorse e migliorare le prestazioni complessive. A confermarlo è stato Stanislav Vishnevskiy, co-fondatore e direttore tecnologico dell'azienda, che ha spiegato come la società utilizzi Rust già dal 2018 per una parte dell'infrastruttura, come le tecnologie vocali e alcuni componenti del client attuale.
Addio a Electron, dentro GPUI
Il passo successivo sarà portare su Rust praticamente tutta la logica dell'applicazione. Sul desktop sparirà quindi Electron, il framework che consente di costruire applicazioni multipiattaforma usando tecnologie web e un motore Chromium: una scelta che ha semplificato il mantenimento di un'unica app su Windows, macOS e Linux, ma che da tempo è criticata per il consumo di memoria superiore rispetto alle applicazioni native. La nuova applicazione desktop utilizzerà GPUI, framework grafico scritto in Rust, e non Tauri, come molti utenti avevano ipotizzato: Vishnevskiy lo ha precisato esplicitamente rispondendo alle discussioni nate intorno al progetto.
290 MB contro oltre 1 GB
Per dimostrare i benefici del passaggio, Vishnevskiy ha mostrato una prima versione del nuovo client Windows che utilizza circa 290 MB di RAM. Il confronto con l'app attuale è promettente: Discord basato su Electron può facilmente superare diverse centinaia di megabyte e, con numerosi server e attività aperte, arrivare anche oltre 1 GB. Il dato dei 290 MB va comunque considerato per quello che è: una schermata di una versione ancora in sviluppo, non un benchmark comparativo eseguito nelle stesse condizioni.
Discord intende eliminare anche React Native dalle proprie applicazioni mobili, ma l'interfaccia di Android e iOS resterà nativa: il mobile condividerà con il desktop una parte maggiore della logica applicativa scritta in Rust. La versione web continuerà invece a usare HTML per il rendering, con la logica eseguita tramite WebAssembly anziché JavaScript, sfruttando sempre il codice condiviso.
Non è ancora stata comunicata una data per la sostituzione definitiva del client Electron. Vishnevskiy ha spiegato che l'azienda spera di portare la nuova applicazione nelle mani degli utenti "presto", facendo intendere che una prima fase di test pubblico potrebbe non essere troppo lontana.