Ciao, e benvenuto nella nona puntata della ventitreesima stagione. Nelle scorse puntate abbiamo esplorato il linguaggio Go in sé. Oggi allarghiamo lo sguardo a ciò che sta intorno al linguaggio, e che è altrettanto importante per capirne il successo: la sua libreria e i suoi strumenti. Perché un linguaggio non è solo la sua grammatica: è anche tutto il corredo che gli sta attorno, ciò che ti dà già pronto e gli strumenti con cui ci lavori. E Go, in questo, ha una filosofia precisa che si riassume in un'espressione: le batterie incluse. Oggi capiamo cosa significa e perché conta tanto.
Partiamo dal concetto di libreria standard, spiegandolo semplicemente. Ogni linguaggio viene con una dotazione di cose già pronte, di funzioni e strumenti che puoi usare senza doverli costruire da zero: questa dotazione si chiama libreria standard. È come la cassetta degli attrezzi che ti viene data insieme al linguaggio, piena di strumenti già fatti per i compiti comuni. Alcuni linguaggi vengono con una cassetta piccola, spartana, e per fare le cose comuni devi procurarti attrezzi altrove. Altri, come Go, vengono con una cassetta ricca e ben fornita, che contiene già gran parte di ciò che ti serve per costruire cose reali. Questa ricchezza della dotazione di base è ciò che si intende con batterie incluse.
Voglio farti apprezzare quanto sia ricca e ben pensata la dotazione di Go, con l'esempio più significativo, che tocca proprio il tuo mondo. Go è nato per il software in rete, e la sua libreria standard riflette questo: contiene già, pronto all'uso, tutto il necessario per costruire un vero servizio web, un server che risponde alle richieste in rete. Con Go, puoi costruire un server web funzionante usando solo la dotazione di base, senza dover aggiungere nulla dall'esterno. Questo è notevole: in molti altri linguaggi, per fare un server web serio, devi procurarti degli strumenti aggiuntivi, delle impalcature esterne. In Go, il necessario c'è già, nella cassetta di base, robusto e pronto. La rete e il web sono cittadini di prima classe della sua dotazione.
Voglio farti capire perché avere le batterie incluse sia un vantaggio così pratico, perché tocca la produttività quotidiana. Quando la dotazione di base contiene già ciò che ti serve, puoi metterti a costruire cose reali subito, senza dover prima cercare, scegliere, procurarti e imparare una serie di strumenti esterni. Meno dipendenze da fonti esterne significa anche meno cose che possono rompersi, cambiare, entrare in conflitto: la tua base è solida, ufficiale, coerente. E significa che il codice Go di progetti diversi tende a somigliarsi, perché tutti usano la stessa ricca dotazione di base, invece di scelte esterne diverse. Le batterie incluse portano produttività immediata, solidità e uniformità, tutte cose coerenti con la filosofia di Go.
Passiamo ora al secondo pilastro del corredo di Go, altrettanto importante: gli strumenti unificati. Oltre alla libreria, un linguaggio ha bisogno di strumenti per lavorarci: per tradurre il programma, per provarlo, per formattarlo, per gestire i pezzi che usa. In molti mondi, questi strumenti sono un guazzabuglio: tanti strumenti diversi, di provenienze diverse, che devi mettere insieme, configurare, far funzionare tra loro, in una complessità che scoraggia. Go ha scelto l'opposto: un insieme di strumenti unificato, ufficiale, coerente, che viene con il linguaggio. Un unico comando, con le sue varianti, per fare tutto: tradurre, provare, formattare, gestire i pezzi. Tutto integrato, coerente, che funziona insieme senza sforzo.
Voglio farti apprezzare il sollievo di questa unificazione, perché chi ha sofferto la frammentazione lo capisce al volo. In molti ecosistemi, prima ancora di scrivere una riga utile, devi combattere con la configurazione degli strumenti: scegliere tra mille opzioni, farli dialogare, risolvere conflitti, in una fatica preliminare che consuma tempo. Con Go, tutto questo in gran parte sparisce: gli strumenti ufficiali sono già lì, coerenti, e ti mettono subito in condizione di lavorare. È di nuovo la filosofia della semplicità pragmatica: togliere l'attrito, ridurre le scelte inutili, darti una via chiara per fare le cose. Meno tempo a preparare gli strumenti, più tempo a costruire.
Voglio unire tutto questo nel quadro complessivo, perché ora si vede il disegno intero. Go non è solo un linguaggio piccolo: è un ambiente pensato tutto insieme, in modo coerente, per essere produttivo. Il linguaggio semplice, la ricca dotazione di base, gli strumenti unificati: tre pezzi progettati per funzionare in armonia, per ridurre l'attrito e mettere il programmatore in condizione di costruire cose reali in fretta e bene. Non la ricerca della massima eleganza teorica, ma del massimo pragmatismo: rendere fluido e produttivo tutto il lavoro reale. Sono l'espressione, nel corredo intorno al linguaggio, della stessa filosofia di semplicità pragmatica che anima Go.
Per oggi ci fermiamo qui. Un linguaggio è anche il corredo che gli sta attorno, e Go segue la filosofia delle batterie incluse. La sua libreria standard è ricca e ben fornita: contiene già, pronto all'uso, tutto il necessario per costruire cose reali, persino un vero server web senza strumenti esterni, coerente con la sua vocazione per la rete. E i suoi strumenti sono unificati e ufficiali: un insieme coerente per tradurre, provare, formattare e gestire i pezzi, che elimina la fatica della frammentazione. Insieme, dotazione ricca e strumenti unificati esprimono lo stesso pragmatismo del linguaggio: togliere l'attrito e rendere produttivo il lavoro reale. Nella prossima e ultima puntata tiriamo le somme e guardiamo lontano. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.