Registro delle decisioni architetturali: linguaggio di programmazione Go
Titolo: adozione del linguaggio di programmazione Go
Stato: Accettato
Contesto
La nostra organizzazione ha usato principalmente il linguaggio di programmazione Java per costruire applicazioni web. Tuttavia, abbiamo riscontrato alcune difficoltà a causa della verbosità di Java e della complessità di alcuni framework. Inoltre, il nostro team ha mostrato interesse nell'esplorare linguaggi di programmazione moderni per uno sviluppo più efficiente e robusto. Dopo la ricerca, abbiamo individuato Go come potenziale soluzione ai problemi che incontriamo con Java.
Decisione
D'ora in poi adotteremo il linguaggio di programmazione Go per costruire applicazioni web.
Motivazione
Semplicità e leggibilità: Go è noto per la sua semplicità e la sua sintassi concisa. Ciò rende facile leggere e scrivere codice, riducendo la complessità del nostro processo di sviluppo.
Alte prestazioni e scalabilità: Go viene compilato in codice macchina che gira nativamente sul server. Ciò si traduce in tempi di esecuzione più rapidi e migliori prestazioni rispetto a linguaggi interpretati come Java. Inoltre, il modello di concorrenza di Go gestisce più richieste simultaneamente, rendendolo altamente scalabile.
Forte supporto della comunità: Go ha una vivace comunità di sviluppatori che hanno contribuito alla sua crescita nel corso degli anni. Ciò significa che ci sono molte risorse, librerie e framework che ci aiutano a iniziare e a costruire applicazioni robuste.
Flessibilità: Go può essere usato sia per lo sviluppo front-end sia per quello back-end. Ciò significa che possiamo sfruttare i suoi vantaggi in entrambe le aree per i nostri progetti di sviluppo.
Implicazioni
Formazione: I nostri sviluppatori dovranno seguire una formazione per imparare il linguaggio di programmazione Go e le sue sfumature.
Esperienza: Potremmo affrontare alcune difficoltà nel passaggio da Java a Go. Potrebbe volerci del tempo prima che i nostri sviluppatori diventino esperti nel nuovo linguaggio.
Strumenti: Dovremo adottare nuovi strumenti e framework specifici per Go. Tuttavia, possiamo sfruttare l'infrastruttura esistente per ridurre al minimo l'impatto di questo cambiamento.
Vendor lock-in: Go è un linguaggio di programmazione open source e non saremo legati ad alcun fornitore o provider di servizi.
Conclusione
L'adozione del linguaggio di programmazione Go ci aiuterà a migliorare il nostro processo di sviluppo e a costruire applicazioni robuste. Dovremo investire risorse in formazione e strumenti per supportare questa transizione, ma crediamo che i vantaggi di questa decisione superino i costi.