L'elettrone è il cancro

Non vorresti diffondere il cancro, vero?

Battendo un cavallo morto

Qualche tempo fa ho pubblicato alcuni benchmark confrontando Nano, Vim e Sublime con Atom e Visual Studio Code, questi ultimi due erano applicazioni basate su Electron.js e i risultati erano in qualche modo previsti. Le applicazioni elettroniche sono grossi bastardi a cui piace sgranocchiare la tua memoria e non sono assolutamente il primo a prenderne atto.

TL; DR
Atom utilizza circa un gigabyte di memoria per modificare un singolo file di medie dimensioni.

In quell'articolo sono andato abbastanza piano con Electron e non ci ho davvero preso. Ho appena controllato i numeri che ho ottenuto facendo i benchmark sul mio laptop carry giornaliero.

Ciò che è stato interessante per me, tuttavia, è stato il feedback per quell'articolo che è stato in gran parte a supporto di Electron.js e la maggior parte è andata in linea con quanto segue;

Bene, funziona bene sulla mia macchina e ho solo 32 gigabyte di RAM.
- Silicon Valley Developer, 2017

Se sei tu, allora va bene per te, ma solo perché qualcosa si comporta "abbastanza bene" sulla tua macchina non significa che non ci siano problemi di prestazioni. Non siete i vostri utenti finali e voi, se siete sviluppatori, molto probabilmente non eseguite hardware medio.

Le prestazioni contano ancora

A me sembra un po 'assurdo doverlo dire, forse potrebbe anche essere un po' condiscendente, ma sembra davvero che più potenza di elaborazione otteniamo più sciatti che gli sviluppatori stanno ottenendo con la scrittura di un buon codice, o diamine anche un po ' codice sano.

Quindi eccolo, le prestazioni contano! Solo perché il tuo processo potrebbe rallentare il processore e la memoria non significa che dovrebbe. Ciò è particolarmente vero se la tua applicazione ha uno equivalente nativo, come un client di chat di testo o un lettore musicale avrebbe un ingombro minimo, non ci sono davvero scuse per essere questo tipo di fannullone.

Un sistema operativo è un ambiente cooperativo, così come non tornerò su una pagina web invadente e fastidiosa, non userò un'applicazione invadente e fastidiosa.

Qualche anno fa potevamo fare cose incredibili con qualche hertz di potenza di elaborazione e pochi megabyte di memoria, in questi giorni possiamo usarlo tutto in modo da poter visualizzare l'icona del cursore lampeggiante!

L'elettrone è facile

In un modo o nell'altro, emerge la tesi secondo cui Electron migliora la produttività.

Electron è fantastico, non abbiamo dovuto assumere nuove persone, possiamo solo usare i tuoi web designer che abbiamo già in casa ed è così facile!
- Qualcuno l'ha detto davvero

Va bene, sicuramente avere un idraulico che taglia una ruota quadrata da una tavola è anche molto più facile da fare che far lavorare un falegname una ruota di legno perfettamente rotonda, ma sarà un inferno di una corsa sconnessa, e le ruote quadrate in realtà vanno bene , destra?

Per me, questo sembra più un sintomo delle caratteristiche generali delle prestazioni che vediamo, se l'unica cache di cui lo sviluppatore è a conoscenza è la memorizzazione delle funzioni o la memorizzazione nella cache http, allora non puoi davvero aspettarti che l'applicazione rimanga all'interno di qualsiasi tipo di linee di cache.

Linea di fondo; come utente finale non me ne può fregare di meno di quanto sia stato facile per te realizzare l'applicazione, se non funziona correttamente non funziona correttamente, essere lenti sull'hardware super veloce di oggi è un bug.

Consentitemi di ripetere che, come utente finale, non do due culi di ratto su come hai scritto la tua applicazione, puoi fare delle scuse per gli strumenti che hai usato e lodarlo tutto il giorno ma lento è ancora lento e cattivo è ancora male.

L'elettrone non è nativo

Tendo a chiamare le pagine Web delle applicazioni Electron ogni volta che ne parlo, il che a sua volta tende a far incazzare molti sviluppatori web, ma in realtà è tutto ciò che sono. Non c'è nulla di simile al desktop delle applicazioni Electron, si sentono sempre fuori posto, anche gli elementi più semplici come la barra dei menu nativa non sono disponibili, di solito è una cosa dall'aspetto alieno personalizzato se è anche lì.

Le applicazioni elettroniche non si integrano semplicemente con il sistema operativo come dovrebbe fare un'applicazione nativa, non è questo il motivo per cui abbiamo promesso di uccidere Flash e Air Runtime?

Ancora più strano, ultimamente ci sono stati progetti che compaiono da C # a Electron. Sì, lascia che affondi, dal codice nativo (C # può essere compilato AOT al nativo, ha tonnellate di framework GUI) a JavaScript, in modo che possa essere eseguito come una pagina web nel browser Electron.

Non ho nemmeno ...