QNA > P > Per Cosa È Buono Golang?

Per cosa è buono golang?

Prima di tutto, golang è un linguaggio di programmazione di uso generale. Il che significa che si può fare quasi tutto in golang.

Perché è un linguaggio di programmazione generale, è più facile descrivere ciò che non si può fare in golang. Quindi ecco in cosa golang non è (ancora?) bravo:

  • Sviluppo di firmware e kernel del sistema operativo. In C, c'è un cosiddetto ambiente freestanding, che non si aspetta nulla, davvero nulla sul posto. Firmware e kernel OS sono tipicamente scritti in C, usando l'ambiente freestanding.
  • Sviluppo di UI desktop. Si può fare, ma le librerie per farlo in Golang non sono ancora così mature. Le rock star in questo campo sono ancora C++/Qt, e Java con JavaFX.
  • Web frontend. Golang può essere compilato in JavaScript e Web Assembly, ma non lo definirei ancora maturo.
  • Sviluppo di app per cellulari. Si può fare, ma anche questo è relativamente nuovo, le rock star in questo campo sono ancora Java/Kotlin per Android, Objective-C/Swift per iOS, e per il codice portatile, JavaScript con ReactNative.
  • XML. C'è un sacco di roba su XML presso gli editori e altrove. Le librerie Golang per XML sono primitive e implementano solo standard molto vecchi di XML. Qui, Java è il leader del settore, seguito da C# e JavaScript, soprattutto a causa di Saxon di Michael Kay.
  • SOAP. Nel caso si debba parlare con un sistema SOAP legacy, si può fare, ma non è così bello e comodo come sarebbe in Java.
  • Giochi. Golang ha la velocità, ma non le librerie/supporto. Detto questo, non vedo l'ora che Golang entri in questo spazio.
  • Bancario. La natura della gestione dei pacchetti di Golang rende difficile (ma non impossibile) usarlo in un ambiente bancario, dove tipicamente non c'è accesso diretto a internet, e dove ogni libreria di terze parti può essere usata solo dopo l'approvazione di un dipartimento di sicurezza dopo aver eseguito un processo di controllo.
  • Automotive, aerospaziale e medico. Queste industrie hanno una vasta infrastruttura di metodi e strumenti di verifica che non esistono ancora in Golang.

Per tutte queste limitazioni, bisogna dire che è possibile superarle, o con sufficiente potenza di sviluppo da parte vostra, o aspettando che qualcun altro lo faccia. In molti di questi, ho visto lo sviluppo e l'evoluzione di librerie di terze parti.

Inoltre, è facile integrare Golang con C e tutti i linguaggi che hanno reso facile l'integrazione con C, come Python. Molti linguaggi di programmazione, come Java, JavaScript hanno una forte disconnessione dall'ABI (Application Binding Interface) nativa. Per questi linguaggi, un'interazione con Golang è difficile. Per i linguaggi di programmazione che sono collegati all'ABI nativa, l'interazione con Golang è molto facile.

A parte questi, non ho trovato nessuna seria limitazione in Golang, e usarlo è divertente. È diventato uno dei miei linguaggi di riferimento per gli strumenti a riga di comando e i servizi REST (microservizi e monoliti), uno spazio in cui per me compete con Java, C, Perl, e occasionalmente JavaScript.

Go è un bel linguaggio con stranezze, come ogni altro linguaggio (Java, C#, JavaScript, Python, C, C++).

Di Richer

Qual è il miglior gioco di puzzle che tu abbia mai giocato? :: Perché la mia app ADT Pulse ci mette così tanto a connettersi al sistema di sicurezza?
Link utili