Oggi vi illustreremo il pensiero di Daisuke Maki, Software Engineer ad HDE Inc, sull'evoluzione dei programmatori Go. Il developer ha infatti individuato 7 step che portano un developer a padroneggiare tale linguaggio. Nato all'interno dei laboratori Google, il progetto Golang si è sviluppato notevolmente in questi anni ed è diventato una delle opzioni più gettonate per sviluppare programmi di viario genere.
Credere che Go possa essere usato come un object oriented programming
Si tratta di un errore comune, si cerca il polimorfismo ma in realtà questo è un approccio sbagliato che non è contemplato in Go.
Credere che le goroutines risolvano tutti i problemi
Go permette di realizzare milioni di goroutines senza sacrificare l'efficienza del codice. Tuttavia più si usano più sarà difficile mantenere e debuggare il codice in futuro. Dunque è sempre meglio usare le goroutines solo quando necessario non abbandonando mai il caro vecchio multi-process model.
Credere che invece dell'object oriented programming saranno le interfacce a risolvere i vostri problemi
Le interfacce permettono al developer di definire le API cosi da riuscire a scrivere codice migliore. Dunque le interfacce danno al developer un enorme potere, tuttavia non sono la soluzione definitiva visto che non offrono un vero polimorfismo e sono "limitate" solo alle feature offerte delle API che si utilizzano, senza la possibilità di associare altri dati.
Credere che i channels risolvano tutti i problemi
Cosi come per le goroutines anche i channels possono essere fuorvianti. Con i channels è possibile gestire tantissimi elementi del codice e possono essere davvero utili, tuttavia un abuso di essi può portare il developer in una strada a senso unico con progetti molto difficili da debuggare e da mantenere.
Iniziare a pensare che Go non è cosi potente
Queste difficoltà possono portare frustrazione. Nessun polimorfismo, la concurrency è difficile, i channels non risolvono i problemi. Questo perché molto spesso gli sviluppatori non comprendo i reali motivi per cui Go è stato pensato.
Realizzare che i precedenti step sono solo frutto della propria immaginazione
A malincuore dunque il developer sarà spinto a scrivere codice in modo più straightforward, rispettando le linee guida dei creatori di Go. Capire a pieno come lavorare con Go richiede di "disimparare" alcune abitudini precedentemente acquisite con altri linguaggi.
Accettare Go cosi come è stato pensato
Una volta che si smetterà di pensare a Go come uno dei tanti linguaggi di programmazione e si inizierà a rispettare le sue regole non si avranno più problemi o frustrazioni.
Concludendo, ogni linguaggio di programmazione ha le sue particolarità, anche se Go richiede forse più impegno rispetto ad altri strumenti simili. Quindi è sempre bene avere una mentalità aperta quando lo si affronta per la prima volta.
Via Daisuke Maki