Perché Google ha sviluppato Go?
Google ha due problemi enormi. Uno di questi è il tempo di compilazione. Negli anni '80, progetti di dimensioni ragionevoli richiedevano ore per fare una compilazione pulita. C'erano intere server farm dedicate alla ricompilazione. Si otteneva una nuova "build notturna" e si apportavano modifiche a quella.
Google costruisce cose che sono così ridicolmente enormi che è ancora così nel 2017. Ci vogliono 5 ore per ricostruire chrome da zero anche su un grosso sistema i7. Il dolore del tempo di compilazione su queste build fa così male che Google ha inventato strumenti di compilazione che separano l'analisi delle dipendenze e la compilazione, solo per guadagnare qualche punto percentuale nel tempo di compilazione utilizzando linguaggi convenzionali. Go è progettato per una compilazione veloce senza la necessità di controllare le dipendenze, quindi affronta il dolore della compilazione.
L'altro problema di Google è l'elaborazione delle stringhe. Google legge e analizza molte pagine web, che sono file di testo. Fanno un sacco di manipolazione delle stringhe, quindi è importante che questo sia veramente efficiente. Google ha costruito una ricca libreria di funzioni di stringa in Go, Garbage collecting rende le stringhe in Go semplici da pensare, ed efficienti in modi in cui altre librerie di stringhe non lo sono (sto parlando con te, comitato C++).
Tutti pensano di essere un designer di linguaggio. Microsoft e Apple avevano i loro linguaggi, (Apple ne ha due in questi giorni). Google ha deciso che avevano bisogno del proprio, credo. Poi Facebook si è unito alla festa del linguaggio proprietario, lasciando solo la povera Amazon da sola al ballo del linguaggio. Come design del linguaggio, Go non è irragionevole. Fa quello che dice sulla scatola. Non è in alcun modo innovativo, ma certamente ben progettato per un uso molto specifico.
Go ha un buon supporto per la concorrenza, che è essenziale per un linguaggio progettato dopo il 2002, e per le aziende che hanno un milione di server in attesa di essere avviati. Ma non è una novità nel campo della concorrenza.
Go = C + stringhe + garbage collection + concorrenza. Se volete costruire programmi veramente grandi per analizzare l'intera Internet, Go sarebbe una scelta piuttosto buona per voi.
Grazie per tutti gli upvotes.
Articoli simili
- Perché le repubbliche russe non hanno sviluppato il nazionalismo all'inizio del 20° secolo come è successo agli ottomani?
- Perché Microsoft non ha sviluppato una versione di Android che usa solo la loro UI a mattonelle?
- Perché così tante persone sono deluse da come si è sviluppato Five Nights At Freddy's e sentono la mancanza del vecchio FNAF?
- Taiwan è considerato un paese sviluppato?