Discord sta riscrivendo il proprio client per ridurre il consumo di memoria e rendere più rapida l'apertura dell'applicazione. Il direttore tecnico Stanislav Vishnevskiy ha mostrato il progetto in azione: nella dimostrazione condivisa il 5 novembre, la nuova versione occupa 290,2 MB di memoria mentre è attiva.
Alla base del cambiamento c'è l'abbandono di Electron, il framework utilizzato per eseguire sul desktop applicazioni sviluppate con tecnologie come JavaScript. La struttura attuale poggia su Chromium, la stessa base di Google Chrome: il passaggio a Rust punta a eliminare il sovraccarico legato a questa architettura nel client per PC.
Il linguaggio scelto fa già parte delle tecnologie impiegate dall'azienda. Vishnevskiy ha spiegato che il suo utilizzo risale al 2018 e riguarda buona parte dell'infrastruttura, le tecnologie vocali e persino alcune componenti dell'applicazione attuale. Il traguardo indicato dal dirigente è estendere questo lavoro all'intero client, completando una transizione già avviata in altri ambiti.
Per costruire la nuova applicazione, il gruppo sta utilizzando GPUI, un framework scritto in Rust. Il CTO ha chiarito questo dettaglio rispondendo alle ipotesi che indicavano invece Tauri come soluzione prescelta. Ha inoltre precisato che il team applica modifiche proprie a GPUI, intervenendo quindi sulla base del framework adottato per il progetto.
La dimostrazione riguarda anche l'avvio più rapido: il dirigente ha affiancato due portatili, uno con il vecchio client e uno con quello nuovo. Dal filmato si possono stimare circa sei secondi per il primo e uno per il secondo. Sono durate indicative ricavate dal video; Vishnevskiy descrive inoltre come immediata la risposta ai clic durante la navigazione nell'applicazione.
La revisione coinvolge anche il versante mobile, dove è previsto l'abbandono di React Native. Le applicazioni manterranno un'interfaccia nativa, mentre il codice applicativo sarà condiviso con la versione desktop attraverso Rust. Il piano illustrato comprende dunque sia la sostituzione delle tecnologie attuali sia una base di codice comune tra le diverse versioni del servizio.
Il prossimo passaggio indicato da Vishnevskiy è portare il programma ai test con gli utenti. L'obiettivo dichiarato è avviare presto questa fase, permettendo di utilizzare la nuova versione oltre le dimostrazioni pubblicate dal direttore tecnico.