Via Marconi 20, Bussolengo (VR)
info@devinterface.com

Perché utilizziamo Go per le API più performanti

Copertina Go linguaggio di programmazione

Go è un linguaggio di programmazione open-source (OS) sviluppato a Google come antidoto alle limitazioni che il gigante tecnologico vedeva nei linguaggi di programmazione esistenti, in particolare per quanto riguarda i servizi di rete scalabili, i cluster e il cloud computing. Uno dei problemi che mira a risolvere è l'inefficienza del compilatore in C e C++. Verso la fine del primo decennio 2000 i migliori software engineers del gigante tecnologico non erano più soddisfatti dei linguaggi di programmazione su cui dovevano fare affidamento.

Go è stato sviluppato e spinto su iniziativa dei dipendenti di Google con lo scopo di migliorare la produttività della programmazione per i nuovi ambienti. L'idea era quella di mantenere le caratteristiche positive dei linguaggi di programmazione che Google voleva sostituire, come la tipizzazione statica e l'efficienza di runtime del C, e la leggibilità e l'usabilità di Python e JavaScript. Tuttavia, dovevano essere introdotte caratteristiche di rete e multiprocessore più potenti, così come una maggiore efficienza, per ottimizzare le dimensioni della base di codice e rendere Go una soluzione perfetta per la nuova generazione di software da eseguire nel cloud.

Dal suo rilascio nella primavera del 2012 nessun altro linguaggio di programmazione è stato in grado di crescere così fortemente. Sono numerosi i prodotti Google in qui è stato utilizzato Go, come ad esempio Google Chrome, Google Earth, YouTube e Google App Engine. Altre aziende degne di nota che si sono affidate a Go per sviluppare e migliorare prodotti software di base includono Uber, Twitch, SoundCloud, Docker, SendGrid e Dropbox.

Go rientra anche nello stack tecnologico di DevInterface e oggi dedichiamo una piccola intervista al nostro CTO Stefano che condividerà alcuni dettagli su Go e sul perché lo utilizziamo per le API più performanti.

 

 

Iniziamo subito chiedendoti per cosa viene solitamente utilizzato Go.

Go può essere utilizzato come linguaggio di backend per realizzare applicazioni di diverso genere, ma nel nostro contesto viene utilizzato prettamente per lo sviluppo di API.
In generale risulta molto popolare per sviluppare applicazioni in tempo reale, reti, infrastrutture cloud e microservizi. 


 

Quali sono i progetti con cui DevInterface ha lavorato in Go?

Finora abbiamo utilizzato Go per realizzare API altamente performanti e scalabili. Quattro progetti dei nostri clienti si basano su API che sono state scritte in Echo o in Fiber, entrambi web framework veloci e performanti. Le API in Fiber in particolare, costituiscono la base anche per due nostri prodotti interni:

  • EveryLog: app di notifiche per gestire meglio i progetti interni, pensata per sviluppatori e gestori di ecommerce 

  • StarterSaaS: un boilerplate che aiuta a risparmiare mesi di sviluppo per progetti Saas

 

Perché sviluppate API in Go e non in altre tecnologie?

Quando le esigenze primarie sono la velocità di risposta e l’affidabilità, scrivere API in Go è sicuramente la soluzione ottimale. Il vantaggio di avere un linguaggio fortemente tipizzato permette di diminuire drasticamente errori e bug; il fatto poi di essere un linguaggio funzionale e compilato è la chiave delle alte performance. Infine, l’utilizzo delle goroutine assicura la concorrenza e l’utilizzo effettivo di tutte le risorse del server. 
 

 

Secondo la tua esperienza quali sono i vantaggi di Go?

Oltre alle ottime performance, trovo che la sintassi semplice e l’utilizzo di sole 25 keyword sia un vero toccasana per ogni sviluppatore. Talvolta si ha la sensazione di dover ogni volta reinventare la ruota ma la semplicità insita del linguaggio permette di scrivere codice chiaro e manutenibile.
 

Un ulteriore aspetto da non sottovalutare è che Go si rivela un linguaggio di facile comprensione anche per uno sviluppatore junior, permettendo di raggiungere buoni risultati in un periodo relativamente breve. 


 

Perché Go è veloce rispetto ad altri linguaggi di programmazione?

Go viene eseguito direttamente sull'hardware sottostante e non viene eseguito su una macchina virtuale come Java, per esempio, il che significa che il codice del programma viene compilato direttamente in un file binario ed è quindi più veloce. Le prestazioni eccezionali e la semplicità di una sintassi ordinata sono certamente dei grandissimi vantaggi. 


 

Quali altri linguaggi di programmazione utilizzate per sviluppare API?

Alterniamo lo sviluppo delle API tra Fiber (Go), Rails (Ruby), Django o Flask (Python) ed Express o Fastify (Node) in base alle esigenze del cliente e a seconda del progetto.

L’essere non vincolati ad una sola tecnologia ci permette appunto di scegliere il linguaggio e framework migliori per ogni occasione, anche nel rispetto delle integrazioni future.



 

Ultima domanda: lo stack tecnologico di DevInterface è molto ampio. Ci sono novità all’orizzonte? 

Questo 2022 non prevede new entry in termini di linguaggi o framework, ma solo il consolidamento degli esistenti, come Next.js per le SPA e TypeScript.

C’è però da dire che stiamo guardando con un certo interesse il tema della blockchain, nft e smart contract. 

 

Con quest’ultima domanda siamo arrivati alla conclusione dell’intervista. Se sei interessato a qualche altro approfondimento lato sviluppo ti consigliamo di leggere “Django VS Ruby on Rails: quale framework scegliere?” e “Ruby on Rails: framework obsoleto o ancora rilevante?”. 

 

Hai in mente un progetto e vorresti farlo sviluppare con un linguaggio di programmazione specifico? Contattaci ed elaboreremo per te una proposta vincente.