Mentre stavo cercando di capire come usare Electron per creare le mie
gui usando HTML,Javascript e Css e come back-end ruby, ho scoperto
questo linguaggio http://elm-lang.org/, e mi ha incuriosito non poco,
sia per la sua espressività sia perché è un linguaggio di programmazione
funzionale, e anche per la sua velocità rispetto a Angular o React o Vue
o altri framework jvascript.
La cosa che mi ha colpito è che compila in javascript e quindi gira lato
client e questo mi ha aperto parecchie strade, posso creare sia gui
locali sia programmi che girano sul web usando come back-end sinatra o
rails o semplicemente con un Framework minimale e veloce come
http://www.rack-app.com/
Allo stato attuale sto sperimentando l’accoppiata Electron+ELM+Ruby:
-
Creo la mia gui standard con Electron che mi renderizza il mio
index.html -
All’interno del mio index.html con
inserisco il mio codice elm compilato in javascript che mi gestisce la
creazione della mia interfaccia (ELM supporta il virtual DOM) e
l’interazione tra le vari componenti attraverso MVU vedere
The Elm Architecture · An Introduction to Elm al ruardo.
Sempre attraverso elm creo la mia comunicazione lato server attraverso i
websocket. -
Come back-end utilizzo ruby e con rack in accoppiata con
websocket-rack, gestisco le comunicazioni tra il server e il client
attraverso dei semplici messaggi utilizzando i websocker devo
sperimentare il passaggio di dati in formato json.
Vorrei dei vostri pareri, sia negativi sia positivi riguardo questo
argomento e possibili sviluppi che si possono aprire.
I miei dubbi sono:
-
Cosa è meglio usare secondo voi per lo scambio di dati api,
websocket, zeromq, mi interessano sopratutto i tempi di latenza non
tanto le connessioni concorrenti visto che la mia applicazione avrà solo
un utente connesso alla volta, quindi mi interessa che sia più reattiva
possibile. -
Come backend cosa utilizzereste voi?
-
Secondo voi l’utilizzo di opal potrebbe portare dei vantaggi?
-
Vostri pareri riguardo la creazione di isomorphic application
seguendo questa strada.
Grazie a tutti per il vostro contributo.