Alcuni progetti nati dallo studio di Go

Pubblicato il 13/05/2021

Alla fine dello scorso anno ho iniziato a studiare Go

Perchè Go?

Per studi, esperienza e professione il mio linguaggio di programmazione di riferimento è sempre stato Java. Ultimamente ho deciso di inserire nel mia cassetta degli attrezzi professionale un nuovo linguaggio che fosse differente da quello a cui sono abituato. Ho scelto di avvicinarmi a Go perchè cercavo:

  • un linguaggio che generasse un eseguibile senza bisogno di altro per funzionare sul sistema operativo prescelto. Venendo da Java questa è una bella novità: una volta generato l’eseguibile basta copiarlo sulla macchina di produzione e non serve installare altro.
  • un linguaggio “pronto all’uso”, con una sintassi semplice e allo stesso tempo familiare.
  • un approccio diverso dalla programmazione ad oggetti a cui sono abituato per ampliare il mio punto di vista.
  • un linguaggio moderno, con un buon bacino di utenza e un ricco ecosistema di librerie. Go viene reso pubblico nel 2009 e fa parte di quella schiera di linguaggi di programmazione di “nuova” generazione, pensati seguendo nuove idee.

Alcuni progetti

Per studiare un nuovo linguaggio preferisco lavorare su piccoli progetti reali. Durante questo periodo ho sviluppato così alcuni piccoli progetti per impratichirmi con il linguaggio. Ho deciso di pubblicarli con una licenza Open su Github:

  • gmail-downloader: una piccola applicazione da linea di comando che permette di scaricare da un account Gmail tutti gli allegati delle email con una specifica etichetta. Progetto è pubblicato con licenza GPLv3.
  • gosh: una piccola shell linux che suggerisce le opzioni dei comandi digitati. Progetto pubblicato sotto licenza Creative Commons Zero.
  • enigma: un emulatore della macchina Enigma. Macchina utilizzata dall’esercito nazista durante la Seconda Guerra Mondiale per cifrare le proprie comunicazioni. Progetto pubblicato sotto licenza Creative Commons Zero.
  • I contenuti di questo articolo sono rilasciati con licenza CC-BY 4.0
  • Eventuali spezzoni di codice presentati seguono, dove non dichiarato, licenza MIT