Perché Google ha usato il linguaggio Go per Kubernetes?
La gente spesso pensa che Go sia un linguaggio di programmazione di sistemi. Non è così. Go è un linguaggio compilato, e quindi funziona diversi ordini di grandezza più velocemente dei linguaggi interpretati, come Python o Ruby.
Non ha nemmeno l'overhead dell'uso di un compilatore Just-In-Time (JIT) come fa Java (Java è tecnicamente interpretato, ma così tanto tempo e sforzi sono stati riversati nella tecnologia JIT che ora funziona a velocità prossime alla compilazione).
Essere compilato lo rende anche efficiente in termini di memoria. Quindi può essere eseguito in ambienti molto più ristretti, il che fa risparmiare sui costi dell'hardware.
Ha anche caratteristiche di concorrenza integrate, che aiutano a fare un uso più efficiente delle risorse disponibili quando si comunica su una rete, così come a fare uso di CPU multi-core per compiti intensivi.
Inoltre, Google ha creato Go! È logico che cercheranno di usarlo per tutto ciò che possono.
Queste possono essere tutte buone ragioni per usare Go per creare Kubernetes, ma ce n'è un'altra.
La ragione migliore, tuttavia, è che Go si concentra sulla produttività. Vuole che siate in grado di scrivere codice con la maggior quantità possibile di stronzate che vi intralciano.
Non rispetta le vostre preferenze di indentazione o di disposizione del codice, non si preoccupa del modo in cui scegliete di definire i nomi degli identificatori.
Non si preoccupa di come vi piace disporre il vostro codice.
Taglia intenzionalmente un sacco di funzioni che altri linguaggi forniscono per costringervi a fare le cose a modo suo.
Non si preoccupa delle vostre stronzate.
Non dovendo preoccuparsi di scegliere come fare le cose, l'ingegnere può solo preoccuparsi di implementare una soluzione.
Più di tutto, credo che questo sia ciò per cui Go è stato progettato, ed è il motivo per cui Google lo userà per quante più cose possibili in futuro.
Articoli simili
- Qual è la differenza tra linguaggio macchina, linguaggio assembly e linguaggio di alto livello nei computer?
- Qual è l'architettura di Kubernetes?
- Perché il linguaggio assembly è migliore del linguaggio a livello macchina?
- Qual è la differenza tra un linguaggio assembly e un linguaggio ad alto livello?