0

Il linguaggio Go: velocità ed efficienza

Oggi scrivo un articolo diverso dal solito, non parlerò di progetti o simili, ma di un linguaggio nuovo che ho scoperto in questi mesi dedicandomi al mio lavoro di Tesi magistrale (per questo sono stato un po’ assente ma riprenderò presto a pubblicare nuovi progetti) del quale non mancherò di trattare in futuro.

Il linguaggio è Go, sul web lo trovate cercando il termine “Golang”.

Go è un linguaggio di programmazione versatile e potente, premiato nel 2009 e nel 2016 come “Linguaggio di Programmazione dell’anno” dalla TIOBE, una società informatica che si occupa di misurare la qualità del software e cura un indice di popolarità dei linguaggi di programmazione.

Grafico della popolarità di Go

 

Punti di forza del linguaggio Go

  • Concorrenza: grazie alle goroutine e ai canali Ł possibile gestire facilmente la chiamata contemporanea di più funzioni e la comunicazione tra di esse. Le goroutine (un esempio è mostrato nel Listato successivo) sono thread indipendenti gestiti da Go in un meccanismo di concorrenza. Questo quindi è molto utile nell’ambito di un server.
  • Stabilità: i programmi scritti con le vecchie versioni del linguaggio saranno compatibili con le nuove.
  • Documentazione generata automaticamente.
  • Comunità molto attiva.
  • Linguaggio compilato: Go è un linguaggio compilato. I linguaggi compilati sono noti per la loro velocità e per essere interpretabili facilmente da altri linguaggi e altre macchine.
  • Presenza di un compilatore: con un compilatore si ha il vantaggio di poter individuare facilmente errori, sviluppare ed ottimizzare il codice con semplicità.
  • Gestione degli errori e ottimizzazione: la gestione degli errori è semplice (gli errori bloccanti sono molto rari ma comunque possono essere intercettati e gestiti). Il compilatore Go è poi in grado di individuare variabili definite ma non utilizzate, pacchetti mancanti, import di pacchetti non necessari o operazioni non valide. Il compilatore rileva questi errori e warning a tempo di compilazione ma si può anche individuare gli errori a run-time.
  • Cross compilazione: una caratteristica di Go è di permettere la cross compilazione delle applicazioni e permettere quindi l’esecuzione su altre macchine diverse da quella usata per lo sviluppo. Il compilatore permette di compilare l’applicazione per altre macchine con semplici comandi.
  • Garbage Collection: Go libera automaticamente la memoria non più utilizzata e non più necessaria. Il tempo impiegato dal Garbage Collector (GC) di Go è molto basso.
  • Scalabilità: Go è stato sviluppato da Google proprio per soddisfare un loro bisogno di tempi di esecuzione veloci anche in caso di molte operazioni eseguite simultaneamente. Ecco dunque che grazie a goroutine e canali non vi sono problemi di gestione della concorrenza anche in caso di molte operazioni.
  • CGO: è possibile sviluppare applicazioni in Go richiamando funzioni e parti
    di codice implementate in C.
func f(text string ) {
   for i := 0; i < 3; i++ {
     fmt. Println (text , ":", i)
   }
}

func main () {
   go f(" goroutine 1")
   go f(" goroutine 2")
}


------------------------
Output :
goroutine 1: 0
goroutine 1: 1
goroutine 2: 0
goroutine 1: 2
goroutine 2: 1
goroutine 2: 2

Il simbolo di Go

Share This:

Simone

Studente Data di nascita: 12/07/1990 - Parma, IT Hobbies: Informatica, acquariofilia, viaggi, tecnologia, aria aperta, sport, web.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *