ti-enxame.com

Quais são as chances do Go do Google se tornar um idioma comum?

Quem aqui está aprendendo o Go? Outras empresas estão procurando usá-lo? É provável que seja amplamente utilizado?

58
interstar

Quando se trata de linguagens de programação, o velho ditado, "não é quem você é, é quem você conhece" definitivamente é verdadeiro. C e C++ foram patrocinados pela AT&T, Java foi trazido a nós pela Sun, a família .NET saiu da Microsoft, e todos eles se tornaram muito populares muito rapidamente. Então temos o Objective-C e Python, que estavam por aí por um bom tempo e permaneceram muito obscuros até serem descobertos e sensacionalizados por Apple e Google, respectivamente, e de repente eles realmente decolaram. Mas línguas sem uma grande o patrocinador tende a definhar na obscuridade, por melhores que sejam.

Go é patrocinado pelo Google. Não é difícil chegar à conclusão correta aqui. Dê cinco anos e será enorme.

46
Mason Wheeler

Na verdade, acho que o Go não terá tanto sucesso. Uma razão pela qual não alcançará as grandes massas é que se destina a ser ma linguagem para a programação do sistema.

17
Jonas

Existe uma necessidade real de uma linguagem de sistemas com recursos mais modernos. C e C++ são muito limitados pelo código legado e pela compatibilidade com versões anteriores aqui para melhorar muito. Dito isto, acho que o Go não cumpre esse papel em sua forma atual. Seu design é muito minimalista. Embora seu modelo de concorrência seja empolgante, ele traz poucos outros recursos de linguagens de nível superior para o mundo dos sistemas. (A última vez que verifiquei, que foi admitida há um tempo atrás, nem sequer havia exceções.) Além disso, pelo menos na medida em que o Computer Language Benchmark Game é uma boa medida (é reconhecidamente uma indicador muito grosseiro), não é tão rápido quanto uma linguagem de sistema "real" precisa ser.

Eu acho que a linguagem com a melhor chance de preencher o vazio de uma linguagem de sistemas mais moderna é D . D é tecnicamente muito mais forte que Go, mas politicamente mais fraco. Não é apoiado por uma grande corporação. O que ele realmente precisa é de algumas bibliotecas (isso está sendo resolvido rapidamente agora que a especificação da linguagem é estável) e um aplicativo matador.

15
dsimcha

Estou aprendendo o Go e, sim, ele é usado produtivamente além do Google e do Heroku.

Go é definitivamente uma linguagem agradável para a programação do sistema. Código simples como em C, estruturas poderosas como em C++ e recursos de segurança como em Java. Como é uma língua muito jovem, muitas coisas legais de outras línguas foram herdadas:

  • iteração sobre intervalos
  • Canais (esqueça mutexes etc.)
  • sem hierarquia de tipos, apenas herança de interface
  • de fato, o Go nem conhece classes, mas "Tipos" mais flexíveis: as interfaces são herdadas automaticamente quando os métodos definidos correspondem
  • menos clichê: i := 1 em vez de int i = 1, func f(x, y, z int) em vez de void f(int x, int y, int z), type Foo struct { a, b int }; bar := Foo{1, 2} em vez de class Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
  • exceções ("pânico") apenas para casos realmente excepcionais: nos outros casos, a função propensa a erros pode retornar um parâmetro de erro extra que você pode ignorar facilmente

Considerando todas essas coisas legais e a segurança e o desempenho conhecidos apenas em idiomas tipicamente estatísticos, muitas pessoas da comunidade de idiomas dinâmicos começaram a gostar do Go. Na maioria dos casos, o código Go não é muito mais longo que o código Ruby, mas em todos os casos mais seguro e melhor estruturado.

Mas, no final, acho que o argumento mais importante para o Go é a simultaneidade. É uma linguagem do tipo C que possui um poderoso suporte de simultaneidade conhecido apenas em linguagens funcionais.

10
Philip

Eu diria que isso depende principalmente das bibliotecas/serviços/software que serão criados no/para/usando o Go. As pessoas usam algo em três situações (a ordem importa): quando praticamente não têm outra opção (Objective-C), quando o ambiente a utiliza (FORTRAN), quando isso facilita a vida (Ruby).

5
mbq

Pode ser um pouco tarde para isso, mas o Go está se tornando um idioma popular agora e provavelmente entrará no mainstream, com o Google avançando. Ele está sendo enviado como um idioma usado para sistemas e produtos no Google e está sendo enviado como um idioma para uso com o Google App Engine. Existem pessoas muito afiadas no back-end do edifício Go e aprimorando-o. Existem pessoas muito inteligentes e imaginativas trabalhando em bibliotecas de terceiros para o Go.

Go preenche um vazio que outros idiomas ainda não preencheram. Para mim, eu costumava preencher esse vazio com Perl e várias soluções e truques. Não acredito que seja a linguagem perfeita para todas as situações e para todas as pessoas, mas certamente é candidata a um grande número de situações. Por exemplo, funciona muito bem para aplicativos da Web e também funciona para aplicativos de desktop ou baseados em servidor. Ele faz um trabalho fantástico com HTTP e WebSocket (o que significa que você pode ignorar completamente o Apache ou o nginx) enquanto também executa muito bem no Windows, Linux e OS X para daemons e aplicativos de desktop comuns. No momento, a única situação que falha para mim é para aplicativos Android, que espero que sejam corrigidos em breve. Uso-o para aplicativos de desktop do Windows, aplicativos de desktop Linux e aplicativos da Web baseados em Linux. É bom realizar um trabalho real e não precisar mexer nas soluções alternativas.

Acredito que levará vários anos até que realmente chegue ao mainstream, mas chegará lá. Eu acho que precisa criar mais bibliotecas de terceiros, bem como o tipo de número e seleção que o Perl tem com o CPAN. Vai chegar lá.

5
Emmaly Wilson

O que significa "mainstream", afinal? Sem saber disso, é muito difícil responder a essa pergunta. Vamos dar uma olhada nisso.

Existem muitas definições possíveis. Aqui estão alguns:

Visão de gerenciamento:

  • Tenha clientes exigindo que você o use
  • Tenha a gerência exigindo que você a use
  • Não será criticado pela gerência por usá-lo

Visão dos desenvolvedores:

  • Ferramentas de idioma comumente disponíveis (por exemplo, em distribuições Linux)
  • As ferramentas de idiomas estarão normalmente disponíveis por 10 anos
  • Cria artefatos de software que persistirão e serão usados ​​por pelo menos 10 anos

Visão profissional:

  • As habilidades específicas do idioma são transferíveis para outros trabalhos
    • Os recrutadores pedem

Dado tudo o que precede, eu argumentaria que a única resposta honesta provavelmente é "muito cedo para contar", mas acredito que o melhor indicador de qualquer longevidade real é o número de pequenas empresas que usam o idioma . As grandes organizações estão muito bem - elas podem até ser essenciais para o crescimento de uma linguagem ou sistema de ferramentas devido à escala de investimento que podem aplicar - mas são propensas a passar modas (com algumas exceções). Por outro lado, se uma pequena empresa se desenvolver usando o idioma para fornecer produtos e serviços, é muito provável que deseje contribuir para garantir que ainda será capaz de fazê-lo no futuro. Eles também formam o alicerce de um forte mercado de trabalho na área e também exigem ferramentas. Engraçado, esses são vários indicadores de mainstreamidade na minha lista (possivelmente mais, dependendo dos caprichos da gerência).

Então, quantas pessoas fora do Google estão usando o Go no trabalho? Eu não faço ideia. (Não estou. Atualmente, minhas necessidades são bem atendidas por uma mistura de Java, C e Tcl. YMMV.)

3
Donal Fellows

Já é mais popular do que alguns idiomas.

É possível que Go seja a língua mais importante em mais de 20 anos. Realmente apresenta alguns grandes benefícios em termos de conjuntos de dados maciços, que sites de mídia social, computação em nuvem, Pesquisa e Mobile apresentam.

Sites como Facebook, Twitter, Linkedin, YouTube e redes de veiculação de anúncios têm muito mais uso do Google Go do que Ruby no Rails, pelo menos em alguns contextos.

2
mrhassell

Eu apenas olhei para o Go por causa dessa pergunta, por isso não posso comentar se ele decolará como idioma principal, mas uma coisa me deixou realmente empolgado:

http://golang.org/doc/go_spec.html#Channel_types

Eu me deparei com o conceito de Canais no Occam-pi e devo dizer que é um dos melhores conceitos de programação de todos os tempos . Faz a simultaneidade parecer tão fácil onde fazer a mesma coisa em uma linguagem do tipo C às vezes pode ser uma dor.

Pelo que vi (nos 10 minutos que olhei), o Go parece estar tentando combinar muitos conceitos de programação diferentes, mas isso corre o risco de ser um Jack de todos os negócios, um mestre de nenhum.

1
Richard

Eu olhei para o Go quando soube disso. Como iniciante completo, ainda estou aprendendo as linguagens para iniciantes (no meu caso, Java, C #, Python e Scheme), o que é muito difícil de entender, mas se eu não estivesse absorto nisso, muitas línguas diferentes eu teria considerado seriamente

Eu acho que no meu nível, não há mal nenhum em entender o básico antes de pular em bandwagons. Embora, se bem me lembro, quando estava olhando para Go, fiquei muito atraído por Erlang por algum motivo.

1
SnowMonkey

Suspeito que se ele se torne mainstream dependerá de o Google adotá-lo como um idioma suportado para appengine e/ou GWT.

0
Chris Buckett

Eu gostaria que o Go se tornasse popular.

É poderoso na sintaxe. (Aprenda as vantagens de python, C, Java). É bom para CPU multi-core. (O canal funciona muito melhor do que a programação de threads). O design evita a armadilha de muitos programadores. (ponteiro errado, o mesmo estilo de codificação da ferramenta gofmt, evita erros variáveis ​​não inicializados. Na primeira vez, eu tento na primeira vez, pois é python + C, mas com a velocidade próxima a 1/2 da velocidade de C.

Mas, depois de aprender profundamente, achei adequado desenvolver tolerância a falhas e arquitetura escalável

0
Daniel YC Lin