banner
Casa / Blog / Socket Runtime mira a eliminare il cloud come dipendenza • The Register
Blog

Socket Runtime mira a eliminare il cloud come dipendenza • The Register

Nov 17, 2023Nov 17, 2023

Intervista Socket Supply Co ha presentato oggi Socket Runtime, un runtime open source per la creazione di applicazioni mobili e desktop native per Linux, macOS o Windows utilizzando tecnologie web, ma con connettività peer-to-peer opzionale come modo per integrare o addirittura evitare il cloud backend Servizi.

Un runtime è un ambiente per l'esecuzione del codice. I browser Web fungono da runtime per il codice JavaScript. Esistono anche runtime di server come Node.js, Deno e Bun, per app JavaScript eseguite al di fuori dei browser. Esistono inoltre runtime di app come Electron, Tauri e Socket Runtime, per app JavaScript eseguite localmente su dispositivi desktop (e mobili per gli ultimi due).

Electron, un popolare framework open source per la creazione di app multipiattaforma con tecnologie web (JavaScript, CSS, HTML), si affida al motore del browser Chromium per il rendering delle pagine web e all'ambiente runtime Node.js. Mette insieme un processo principale Node.js, per la gestione di funzioni orientate al server e cose come l'accesso ai file, con processi di rendering Chrome per la presentazione di interfacce utente basate su HTML.

"Il grosso problema con Electron è che non è mai stato progettato per funzionare su dispositivi mobili", ha affermato Paolo Fragomeni, CEO di Socket Supply Co, in un'intervista a The Register.

Tauri è un framework open source per la creazione di app mobili e desktop per varie piattaforme native utilizzando Rust e WebView per il rendering di HTML. Le app Tauri non vengono fornite con un runtime perché il file binario finale è compilato Rust.

Ma Fragomeni sostiene che Socket Runtime sia preferibile perché non c'è un nuovo linguaggio di programmazione da imparare. "Con Tauri, c'è Rust, e questo è un fallimento per la maggioranza del gruppo demografico degli sviluppatori web," ha detto.

Ha sollevato obiezioni simili al framework Flutter di Google. "Flutter introduce nuovamente questo nuovo linguaggio da imparare, Dart, che è piuttosto oscuro nel quadro generale", ha detto, anche se ha ammesso che Google "ha grandi ingegneri che lavorano su quella roba".

Fragomeni sostiene che le tecnologie web sono la strada da percorrere, facendo eco al grido di battaglia del creatore di JavaScript Brendan Eich: "Scommetti sempre su JS!"

"Amiamo il web", ha detto Fragomeni. "Ci sono più sviluppatori web che qualsiasi altro tipo di sviluppatore. Il web ha la migliore documentazione, i modelli di progettazione più conosciuti e le più grandi aziende vi investono."

Ma i browser, dice, sono stati progettati per un tipo specifico di software client-server, quindi abbiamo visto sforzi come Electron e Tauri (per non parlare di Capacitor, Cordova, Ionic, NativeScript e React Native) per portare la tecnologia web nelle app native. sviluppo. Questi sono stati accolti favorevolmente, dice, perché prendere di mira più piattaforme è una sfida dal punto di vista dello sviluppo e della gestione.

"È davvero difficile trovare, assumere, quindi incentivare e mantenere un ingegnere Android, un ingegnere iOS, un ingegnere desktop Windows, un ingegnere macOS e un ingegnere Linux", ha affermato.

"Socket aiuta gli sviluppatori web a creare app per qualsiasi sistema operativo, desktop e mobile. E tutto questo utilizzando HTML, CSS e JavaScript o i loro framework preferiti."

Socket Runtime ha anche un vantaggio in termini di dimensioni rispetto a Electron: produce app molto più piccole. Electron, dice, fornisce "un binario da 200 megabyte praticamente alla fine della giornata, mentre Socket fornisce un binario da 1,5 megabyte. E questo è un grosso problema se vuoi affrontare i mercati emergenti".

Tauri è competitivo in termini di dimensione binaria, anche se Fragomeni contesta le scelte architetturali di Tauri perché sono insicure nonostante i vantaggi di sicurezza della memoria disponibili in Rust.

"Tauri, c'è molto lavoro da fare", ha detto, "ma hanno portato avanti l'idea del processo principale [come visto in Electron]. Il processo principale è questo tipo di processo arbitrario che viene eseguito sul tuo computer. Ha accesso completo e illimitato al tuo computer e non c'è modo per un utente di avere alcuna garanzia su cosa farebbe questo processo."

"Socket adotta un approccio radicalmente diverso in quanto abbraccia gli standard web", ha affermato Fragomeni. "Negli standard web, esiste una cosa chiamata CSP: politica di sicurezza dei contenuti. La usiamo per mitigare effettivamente, in modo dettagliato, le chiamate IPC [comunicazione interprocesso] che vanno allo strato intermedio."