node.js, electron: due macchine infernali

coder-life

node.js, electron: due macchine infernali

Beh, da qualche parte bisogna cominiciare, è il mio blog e c’è libertà di pensiero.

Premessa #1: nutro profondo rispetto per chiunque, con la tecnologia di sua scelta, riesca a produrre buoni risultati, spesso migliori dei miei.
Premessa #2: se sei un fan di javascript ti avviso, scriverò cose che non ti piaceranno.

Mi ci trovo di tanto in tanto con javascript, linguaggio che non mi piace per niente, o meglio, mi piaceva tanti anni fa, quando era l’unica cosa che ti permetteva di veicolare contenuti sul web in modalità pro, eppoi era un ottimo compagno di flash, quello che spesso arrivava ben più in là. A dire il vero può farlo anche ora, ma i big di internet hanno deciso che no, è meglio js, eccoci qua.

Macchina infernale #1 – node.js

Stiamo ultimando la seconda decade del XXI sec.. Da bimbo, nei fumetti le macchine gravitavano, povertà e malattie erano sconfitte, donne tutte bellissime. L’unico problema era sconfiggere gli alieni.

Ora che dall’immagine siamo alla realtà, mi chiedo come oggi possa non esserci di meglio che node.js. Sarà anche una buona idea, nel senso che l’aver preso un ottimo jit per farlo lavorare lato server e fargli fare cose non possibili sul browser ha portato una novità non da poco, a volte è piacevole lavorarci, ma il più no, è ribrezzevole per i tanti motivi di cui solo un po’ qui ne espongo:

  • javascript, ok l’ho già detto
  • si rompe come niente. npm, yarn, grunt, gyp, mi danno il voltastomaco, che va e viene dai permessi di root, deprecati ma non sempre evitabili. Node riesce a dar problemi di permessi anche nel virtuoso caso di colui che non gli ha mai concesso un sudo in vita sua. Notizia recente, c’è anche un criminale che, approfittandosi della buona fede di un package mantainer (da cui dipende uno scuro di plugin interdipendenti tra loro), ha introdotto codice malevolo, non approfondisco, cercate nei threat di novembre 2018. Eppoi dicono di flash
  • non sei mai sicuro che la tua toolchain sia ok, negli anni ho installato e reinstallato node su tutte le piattaforme più in voga: osx, linux, win, il sospetto di aver sbagliato qualcosa è un compagno che ti fissa, appoggiato alla schiena. Non c’entra impegno o pigrizia, non v’è garanzia di star tranzulli
  • il deploy web richiede strutture ad hoc, costose. Solo il cliente con danari da spendere se lo può permettere. Quindi sì, è open source ma la questione trasmuta in ansia nel momento che ti devi cercare un provider. Php, apache, mysql li puoi avere per due dineri, ma non fa così figo, è vero.

Macchina infernale #2 – electron

con questa ci fai le app per desktop, osx, windows, linux. Se node ti mette in imbarazzo, electron ti fa dubitare la tua natura di essere senziente.

C’è questa cosa del main.js e del renderer.js, li devi debuggare separatamente, comunicano tra loro mediante messaggi di sistema, questo sì che è amore.

Ho cominciato con la versione 0.epassa, ora siamo alla 3.0.vattella e le cose sono migliorate da allora, sì, prima si inchiodava come niente e si irritava altrettanto facilmente. Ora è molto più stabile ma per farci qualcosa la storia è sempre quella: zillioni di dipendenze, la tua app avrà circa 120MB di attrezzatura solo per farle dire “hello world”.

Conclusioni

Quello che mi auguro è che questa follia di javascript, che capisco i browser non vogliono altro, ma da lì a fare anche tutto il resto, è che un giorno ciò sia solo un brutto ricordo, ma forse solo quando ci dovremo preoccupare di invasioni extraterrestri.

In tema di app cros-platform ho fatto buone app in Adobe air, che non è perfetto, gli installer pesano qualche MB e il codice è buono anche su mobile. Ora c’è anche Flutter, che promette [molto] bene anche se al momento è solo per mobile, non dubito arriverà anche su desktop presto o tardi.

jaco

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

Chiudi