Electron + Elm + Ruby


#1

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:

  1. Creo la mia gui standard con Electron che mi renderizza il mio
    index.html

  2. 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
    https://guide.elm-lang.org/architecture/ al ruardo.
    Sempre attraverso elm creo la mia comunicazione lato server attraverso i
    websocket.

  3. 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:

  1. 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.

  2. Come backend cosa utilizzereste voi?

  3. Secondo voi l’utilizzo di opal potrebbe portare dei vantaggi?

  4. Vostri pareri riguardo la creazione di isomorphic application
    seguendo questa strada.

Grazie a tutti per il vostro contributo.