Introduzione

Dal 2015, il GoLab è una delle conferenze più storiche e rinomate al mondo sull’ecosistema del Go Programming Language, attirando un vasto pubblico di Gopher da ogni angolo del pianeta.

Errore mio, ho dimenticato di fare una foto alla maglietta 🤷

Errore mio, ho dimenticato di fare una foto alla maglietta 🤷

Negli ultimi anni, gli organizzatori hanno ospitato alcuni dei più grandi nomi del settore, che hanno condiviso le proprie intuizioni ed esperienze con i partecipanti.

Come prima impressione di benvenuto, la sede era uno splendido hotel nell’affascinante città di Firenze ⚜️; adoro questo posto e non c’è molto altro da aggiungere.

Scelta notevole, nel 2024 il GoLab si è tenuto nei giorni immediatamente successivi al RustLab, mentre l’anno precedente i due eventi si erano sovrapposti nella stessa location. Una scelta saggia per evitare confusione e il rischio di perdersi il proprio talk preferito!

Grandi complimenti agli organizzatori per aver scelto di realizzare una conferenza sostenibile: piantare un albero per ogni speaker, eliminare la plastica, supportare i viaggi sostenibili e offrire un menu di pranzi e snack completamente vegetariano.

I tre giorni del programma erano fitti, con il primo riservato a workshop approfonditi. Più di 400 persone da tutto il pianeta hanno partecipato alla conferenza, con 30 speaker selezionati tra le migliori aziende del mondo (SUSE inclusa).

Alcuni punti salienti personali

un benvenuto affollato

un benvenuto affollato

Essendo riuscito a seguire circa la metà dei talk, ho la sensazione di essermene persi alcuni davvero ottimi; ecco un breve riassunto dei miei preferiti:

Giorno uno

  • Russ Cox ha fatto luce su un argomento controverso ma importante: la telemetria. Come il team di Go raccoglie specifiche metriche di build

    Russ Cox

    Russ Cox

  • Alessio Greggi di SUSE ha tenuto una presentazione con demo sulla creazione automatica di profili SECCOMP utilizzando diversi strumenti, come strace e Harpoon.

    Alessio Greggi

    Alessio Greggi

  • Tomáš Sedláček è andato a fondo delle ragioni di design per la scelta di comunicazioni I/O sincrone o asincrone.

  • Roberto Clapis ha tenuto un workshop sulla programmazione sicura e ha parlato dell’approccio difensivo, in particolare durante il parsing di dati di input complessi e sconosciuti.

  • Alan Donovan ha spiegato come sono riusciti a scalare le prestazioni di gopls (il Go Language Server) di un ordine di grandezza (10x).

Pause caffè e momenti di networking!

Pause caffè e momenti di networking!

  • Teea Alarto ha parlato di un approccio pratico ed efficace all’uso dei generics (una funzionalità relativamente giovane del linguaggio Go) per scrivere codice più robusto e semplice.
  • Ron Evans ci ha fatto viaggiare nel tempo in un’atmosfera da “Ritorno al futuro” (12 novembre, indizio indizio): il keynote includeva droni volanti alimentati da tinyGo, acquisizione video e streaming con riconoscimento facciale e un panel di “teste parlanti” di LLM malvagie sul futuro dell’umanità; date un’occhiata alla registrazione video.

Alla fine di questa lunga giornata, abbiamo festeggiato il quindicesimo anno di Go con una vera festa di compleanno! 🎂

Ron Evans con il cappello di stagnola, mentre modera il panel automatizzato delle LLM

Ron Evans con il cappello di stagnola, mentre modera il panel automatizzato delle LLM

Giorno due

Camminando verso la conferenza, sulla riva dell’Arno in una soleggiata mattina d’autunno

Camminando verso la conferenza, sulla riva dell’Arno in una soleggiata mattina d’autunno

  • Josephine Winter ha iniziato in ideale continuità con il giorno precedente, mostrando il suo progetto per automatizzare la routine quotidiana del suo animale domestico utilizzando Arduino e TinyGo, con un esempio reale di apertura della porta della cuccia e rilascio del cibo per cani.
Josephine appena prima di presentare il suo cane

Josephine appena prima di presentare il suo cane

  • Jan Mercl ci ha mostrato come sia possibile evitare cGo e creare una versione di sqlite in puro Go utilizzando il compilatore/transpiler da C a Go (modernc.org/ccgo/v4) e il supporto runtime che emula la libc del C (modernc.org/libc).

  • Davide Imola si è lanciato in un’avventura tra le terre del Domain Driven Design.

Davide Imola

Davide Imola

  • Michele Caci ci ha coinvolto con la sua passione per i giochi da tavolo, in particolare Ticket to Ride, usandolo come spunto per offrirci un ripasso della teoria dei grafi.
giocare a Ticket to Ride in Go

giocare a Ticket to Ride in Go

  • Federico Paolinelli ha fornito una panoramica degli strumenti che Go offre di serie per il testing unitario delle nostre applicazioni e ha proposto una serie di nuove tecniche per scrivere test più coerenti e comprensibili che si adattino bene a un progetto Go.
fondamenti sui test in Go

fondamenti sui test in Go

  • Jesús Espino ha presentato un’analisi molto approfondita e dettagliata a basso livello di un binario ELF di Go, lo scopo di ciascuna sezione e come ridurre le dimensioni dei nostri binari.
  • Takuto Nagami ha parlato della sua libreria in puro Go resigif per ridimensionare le GIF animate, ottenendo un significativo miglioramento delle prestazioni rispetto a strumenti classici come ImageMagick.
ridimensionare GIF animate senza strumenti esterni

ridimensionare GIF animate senza strumenti esterni

  • infine, c’è stato tempo anche per molti interessanti lightning talk…
Otter per lo sviluppo frontend

Otter per lo sviluppo frontend

Cosa mi porto a casa

  • L’equilibrio di Go tra eredità e innovazione mi ha davvero colpito. Vedere come è maturato pur rimanendo fedele ai suoi principi fondamentali è fonte di ispirazione. È una testimonianza del design del linguaggio e della community che lo spinge in avanti. Questo mi rende ancora più entusiasta di vedere dove andrà Go in futuro!
Com’era Go 10 anni fa?

Com’era Go 10 anni fa?

  • La community di Go è davvero qualcosa di speciale. Incontrare così tante persone appassionate e disponibili è stato un punto saliente. Rafforza l’idea che un linguaggio sia più di una semplice sintassi; riguarda le persone che lo usano e che costruiscono insieme cose straordinarie.

  • Uno dei miei maggiori apprendimenti è stato approfondire i testscript di Go. Offrono un modo così potente non solo per testare il codice, ma anche per documentare esempi e pattern di utilizzo. Sicuramente integrerò maggiormente i testscript nel mio workflow.

  • I lightning talk sono stati una miniera d’oro! Il concetto di utilizzare il contesto del comando per annullare i comandi a lunga esecuzione mi ha davvero sbalordito. È una soluzione davvero elegante a un problema comune e non vedo l’ora di sperimentarla nei miei progetti.

A presto!

A presto!