IL BLOG DEGLI RHCE ITALIANI

Il linguaggio Go – prima parte

Andrea Manzini

 

 

COS’E’ GO ?

Go è un linguaggio di programmazione, sviluppato presso Google dal 2007 e rilasciato ufficialmente nel novembre 2009 come free software. Opera di affermati esperti nel settore come Robert Griesemer, Rob Pike, e Ken Thompson, ad oggi è uno dei linguaggi più di tendenza nell’IT, e la sua validità sul campo è dimostrata anche dal successo di progetti come Docker, Kubernetes che sono scritti principalmente in Go.

Riassumiamo velocemente principali punti di forza di questo linguaggio…

INSTALLAZIONE

Visitiamo la pagina principale https://golang.org/ e già da questa notiamo subito la filosofia del linguaggio: pochi fronzoli, concetti semplici e chiari: con Go si va subito al sodo. Possiamo perfino provarlo direttamente nel browser senza installare nulla ma scegliendo il link “Download Go” possiamo scaricare il compilatore sul nostro computer. Assumiamo una versione di Linux a 64bit e scarichiamo quindi il file goN.NN.linux-amd64.tar.gz dove N.NN è l’ultima versione disponibile.
Una volta scaricato, basta seguire le istruzioni di installazione che in genere su Linux si riducono a due comandi

$ tar -C /usr/local -xzf goN.NN.linux-amd64.tar.gz
$ export PATH=$PATH:/usr/local/go/bin

per chi volesse invece usare il package manager della propria distribuzione, generalmente il pacchetto prende il nome di ‘golang’, anche se purtroppo la versione pacchettizzata non è sempre allineata con gli ultimi sviluppi, per cui potremmo non avere accesso alle feature più recenti del linguaggio.

Una volta terminata l’installazione, lanciamo subito un

$ go version

e dovremmo ottenere in output la versione installata. A questo punto perchè non provare il classico dei classici !

Hello, Go

// questo è un commento
package main

import "fmt"

func main() {
	fmt.Println("Hello, Go!")
}

salviamo il codice in un file con nome hello.go e compiliamo il nostro primo programma:

$ go run hello.go 
Hello, Go!

il comando compila ed esegue automaticamente il nostro programma; salvo errori il risultato sarà quello atteso!

se invece volessimo ottenere un eseguibile da lanciare eventualmente in un secondo tempo, ci basta dare un

$ go build hello.go
$ ls -la hello*
-rwxrwxr-x  1 andrea andrea 1855871 feb 20 09:01 hello
-rw-rw-r--  1 andrea andrea      99 feb 20 08:46 hello.go

Già da questo esempio possiamo intuire che a sintassi dei programmi Go e’ simile a quella dei linguaggi come C/C++ , Java, C#; ma visto che è molto breve, analizziamo il sorgente riga per riga.

Dopo il commento iniziale, abbiamo la dichiarazione obbligatoria del package. Per convenzione, il package main è quello che contiene la funzione main, ovvero l’inizio del nostro programma. Come vedremo prossimamente, possiamo infatti creare quanti package vogliamo e raggruppare così le nostre funzioni in moduli che poi potranno essere riutilizzati.

Subito dopo abbiamo la direttiva import: serve appunto per dire a Go che vogliamo usare funzioni di un altro package, che si chiameranno appunto “nomepackage.funzione” .

Di seguito la dichiarazione della funzione main, che non ha argomenti e come unica istruzione esegue una chiamata alla funzione Println contenuta nel package fmt, con l’effetto di visualizzare una stringa.

Notiamo anche un dettaglio: Go “esporta” (e quindi rende disponibili ad altri package) tutti i simboli (cioè funzioni e variabili) che iniziano con la lettera maiuscola; per cui se la nostra funzione si fosse chiamata println (minuscolo) non avremmo potuto invocarla, dato che siamo in un package diverso da “fmt”.

Per questa volta ci fermiamo qui; nel prossimo articolo cominceremo ad entrare più nel dettaglio pratico ed esplorare le potenzialità di questo fantastico linguaggio. Nell’attesa consiglio ai lettori di visitare il Tour interattivo per prendere familiarità con la sintassi e fare un po’ di pratica. A presto!

Info about author

Andrea Manzini

Prenota subito il tuo corso ufficiale Red Hat

GUARDA I CORSI