Go sta riscuotendo un discreto successo presso la community dei developer, si tratta infatti di un linguaggio che una volta padroneggiato offre prestazioni e una pulizia del codice davvero notevole. Go non è stato pensato per lo sviluppo di web application, ma il mercato punta in gran parte su questo tipo di servizi ed ecco perché è nato Joy compiler, un compilatore che traduce codice Go in Javascript eseguibile tramite browser web.
Grazie a Joy sarà quindi possibile scrivere e sviluppare la propria applicazione Go per poi eseguirne il deploy in Javascript.
Prima di effettuare la compilazione vera e propria Joy compiler sfrutta gli stessi tool di Go per analizzare il codice, eliminare il dead code e successivamente eseguire il deploy della web application. Joy presenta inoltre un buon supporto per framework come React e Preact, elemento che gli consente di realizzare applicazioni Javascript dotate di UI ottimizzate.
Joy dispone di svariati tool di base tra cui un typed DOM e un virtual DOM package oltre ad un runtime minimale con cui limitare la presenza di codice inutilizzato. Le operazioni effettuate dal Joy compiler sono sostanzialmente parsing, indexing, traduzione e assemblaggio.
Il parsing traduce il codice Go in un'astrazione del syntax tree. Successivamente si avvia il processo di indexing del syntax tree che permette al programma di comprendere le operazioni che esegue il codice Go. In seguito viene creato un dependency graph con le varie funzioni, la lista delle variabili e le interfacce usate dal programma. In fine si avvia il processo di traduzione e assemblaggio in codice Javascript.
Il funzionamento è quindi molto semplice ed è dettagliatamente descritto nella pagina Github del progetto. Per iniziare a sperimentare con Joy compiler basta scaricare il suo script di installazione:
curl -sfL https://raw.githubusercontent.com/matthewmueller/joy/master/install.sh | sh