Chi sta imparando Vai? Le altre aziende stanno cercando di usarlo? È probabile che diventi ampiamente utilizzato?
Quando si parla di linguaggi di programmazione, il vecchio adagio, "non è chi sei, è chi conosci" è sicuramente vero. C e C ++ sono stati sponsorizzati da AT & T, Java è stato portato a noi da Sun, la famiglia .NET è uscita da Microsoft e tutti sono diventati molto popolari molto rapidamente. Poi abbiamo Objective-C e Python, che erano in circolazione da un bel po 'e sono rimasti davvero oscuri finché non sono stati scoperti e messi in risalto da Apple e Google, rispettivamente, e poi improvvisamente sono decollati. Ma le lingue senza uno sponsor principale tendono a languire nell'oscurità, non importa quanto siano brave.
Go è sponsorizzato da Google. Non è difficile arrivare alla giusta conclusione qui. Dagli cinque anni e sarà enorme.
In realtà non penso che Go avrà quel successo. Una ragione per cui non raggiungerà le grandi masse è che è destinato a essere un linguaggio per la programmazione di sistema.
C'è un reale bisogno di un linguaggio di sistema con caratteristiche più moderne. C e C ++ sono troppo vincolati dal codice legacy e la retrocompatibilità qui per migliorare molto. Detto questo, non penso che Go adempia a quel ruolo nella sua forma attuale. Il suo design è troppo minimalista. Mentre il suo modello di concorrenza è eccitante, porta poche altre funzionalità dai linguaggi di alto livello al mondo dei sistemi. (L'ultima volta che ho controllato, che era un po 'di tempo fa, non aveva nemmeno eccezioni.) Inoltre, almeno nella misura in cui Il benchmark Computer Language Game è una buona misura (è certamente un indicatore molto approssimativo), non è così veloce come un linguaggio dei sistemi "reale" deve essere.
Penso che la lingua con la migliore possibilità di colmare il vuoto di un linguaggio dei sistemi più moderno sia D . D è tecnicamente molto più strong di Go, ma politicamente più debole. Non è supportato da una grande società. Ciò di cui ha veramente bisogno sono alcune librerie (questo viene rapidamente affrontato ora che le specifiche del linguaggio sono stabili) e un'app killer.
Sto imparando Go e sì, è utilizzato in modo produttivo oltre a Google e Heroku.
Go è sicuramente un bel linguaggio per la programmazione di sistema. Semplice codice come in C, potenti strutture come in C ++ e funzionalità di sicurezza come in Java. Dato che è una lingua molto giovane, molte cose belle di altre lingue sono state ereditate:
i := 1
anziché int i = 1
, func f(x, y, z int)
anziché void f(int x, int y, int z)
, type Foo struct { a, b int }; bar := Foo{1, 2}
anziché class Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
Considerando tutte queste belle cose e la sicurezza e le prestazioni conosciute solo dalle lingue tipizzate staticamente, molte persone della comunità delle lingue dinamiche hanno iniziato ad apprezzare Go. Nella maggior parte dei casi Go-code non è molto più lungo di Ruby-code, ma in ogni caso è più sicuro e meglio strutturato.
Ma alla fine credo che l'argomento killer per Go sia concorrenza. È un linguaggio simile a C che ha un potente supporto di concorrenza che è noto solo dai linguaggi funzionali.
Direi che ciò dipende principalmente dalle librerie / servizi / software che verranno creati in / per / utilizzando Go. Le persone usano qualcosa in tre situazioni (l'ordine conta): quando non hanno praticamente altra opzione (Objective-C), quando l'ambiente lo usa (FORTRAN), quando rende più facile la loro vita (Ruby).
Potrebbe essere un po 'tardi per questo, ma Go sta diventando una lingua popolare ora e probabilmente entrerà nel mainstream con Google che lo spinge avanti. Viene spinto come linguaggio utilizzato per sistemi e prodotti all'interno di Google e viene spinto come linguaggio da utilizzare con Google App Engine. Ci sono alcune persone molto forti sul backend di Go building e lo migliorano. Ci sono alcune persone molto intelligenti e fantasiose che lavorano su librerie di terze parti per Go.
Vai a riempire un vuoto che altre lingue non hanno ancora riempito. Per me, cercavo di riempire quel vuoto con Perl e un sacco di soluzioni e trucchi. Non credo che sia il linguaggio perfetto per tutte le situazioni e tutte le persone, ma è certamente un candidato per un numero piuttosto elevato di situazioni. Ad esempio, funziona perfettamente per le app Web e funziona perfettamente anche per app desktop o app basate su server. Fa un lavoro fantastico con HTTP e WebSocket (il che significa che puoi saltare Apache o nginx del tutto) mentre gira molto bene su Windows, Linux e OS X sia per i demoni che per le normali app desktop. In questo momento l'unica situazione che non riesce per me è per le app Android, che spero presto venga sanata. Lo uso per le app desktop Windows, le app desktop Linux e le app Web basate su Linux. È bello fare un vero lavoro e non dover armeggiare con i workaround.
Credo che ci vorranno diversi anni prima che colpisca davvero il mainstream, ma ci arriverà. Penso che sia necessario creare più librerie di terze parti, proprio come il numero e la selezione che Perl ha con CPAN. Ci arriverà.
Che cosa significa "mainstream" comunque? Senza saperlo, è sempre così difficile rispondere a questa domanda. Diamo un'occhiata a questo.
Ci sono molte definizioni possibili. Eccone alcuni:
Visualizzazione gestionale:
Visualizzazione degli sviluppatori:
Visualizzazione della carriera:
Considerato tutto quanto sopra, direi che l'unica risposta onesta è probabilmente "troppo presto per dirlo" ma credo che il miglior indicatore di ogni reale longevità sia il numero di piccole aziende che usa la lingua Le grandi organizzazioni stanno tutte molto bene - potrebbero anche essere essenziali per la crescita di un linguaggio o di un sistema di strumenti a causa della scala di investimenti che possono applicare - ma sono piuttosto inclini a passare le mode (con poche eccezioni). Al contrario, se una piccola impresa si è costruita attorno all'utilizzo della lingua per fornire prodotti e servizi, è molto probabile che vogliano contribuire a garantire che saranno ancora in grado di farlo in futuro. Costituiscono anche il fondamento di un strong mercato del lavoro nell'area e anche la domanda di strumenti. Funnily, quelli sono diversi indicatori di mainstream-ness sulla mia lista (possibilmente più, a seconda dei capricci della gestione).
Quindi, quante persone al di fuori di Google utilizzano Go per il loro lavoro? Non ne ho idea. (Non lo sono. I miei bisogni sono attualmente ben serviti da una combinazione di Java, C e Tcl. YMMV.)
È già più popolare di alcune lingue.
È possibile che Go sia la lingua più importante in 20 anni. Presenta davvero grandi benefici in termini di enormi set di dati, quali siti di social media, cloud computing, ricerca e dispositivi mobili presenti.
Siti come Facebook, Twitter, Linkedin, YouTube e reti di annunci pubblicitari hanno molto più uso per Google Go che Ruby On Rails, almeno in alcuni contesti.
Ho cercato su Go quando ne ho sentito parlare. Come principiante assoluto sto ancora imparando le lingue per principianti (nel mio caso Java, C #, Python e Scheme) che è molto da prendere, ma se non fossi assorbito da così tante lingue diverse lo avrei seriamente preso in considerazione
Penso al mio livello, non c'è niente di male nell'ottenere le basi prima di saltare sui bandwagons. Però, se ricordo bene, quando stavo guardando Go, sono diventato molto attratto da Erlang per qualche motivo.
Ho appena guardato Go a causa di questa domanda, quindi non posso davvero commentare se decollerà come linguaggio mainstream, ma una cosa mi ha davvero entusiasmato:
Per la prima volta mi sono imbattuto nel concetto di Canali in Occam-pi e devo dire che è uno dei migliori concetti di programmazione mai . Rende la concorrenza così facile dove fare la stessa cosa in un linguaggio di tipo C a volte può essere un dolore.
Da quello che ho visto (nei 10 minuti che ho guardato), Go sembra stia cercando di combinare molti diversi concetti di programmazione, ma questo ha il rischio di essere un Jack di tutti i mestieri, un maestro di nessuno.
Sospetto che il fatto che diventi mainstream dipenderà dal fatto che Google lo adotti come linguaggio supportato per appengine e / o GWT.
Vorrei che Go diventasse popolare.
È potente nella sintassi. (Scopri i vantaggi di python, C, Java). È buono per CPU multi-core. (La funzione del canale è molto meglio della programmazione dei thread). Il design previene la trappola di molti programmatori. (puntatore sbagliato, lo stesso stile di codifica del tool gofmt, impedisce bug non inizializzati variabili, Al primo tentativo, lo provo alla prima volta poichè è python + C ma con velocità prossima a 1/2 velocità di C.
Ma, dopo aver appreso approfonditamente, ho scoperto che potrebbe essere adatto allo sviluppo di fault tolerance e architettura scalabile
Leggi altre domande sui tag go