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


58

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


21
ruby se torna popular depois dos trilhos, objetivo-c depois do iphone, o que há afterpara ir?
ohho

11
Terrível, isso não resolve nada para a maioria das pessoas.
Daniel

6
As chances estão entre 0 e 1. Qualquer coisa mais específica exigiria um PhD em Prognóstico, que eu não possuo.
Rein Henrichs

11
@Rein Henrichs - você vai ter um, embora o comitê vai exigir algumas mudanças para a tese final
Martin Beckett

3
O Google realmente deve considerar o desenvolvimento de um idioma para Android SDK for Go. Pelo menos como um começo.
Setzamora

Respostas:


46

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, o Java foi trazido a nós pela Sun, a família .NET saiu da Microsoft e todos eles se tornaram muito populares muito rapidamente. Depois, temos o Objective-C e o Python, que estavam por aí por um bom tempo e permaneceram muito obscuros até serem descobertos e sensacionalizados pela Apple e pelo Google, respectivamente, e de repente eles realmente decolaram. Mas os idiomas sem um grande patrocinador tendem a definhar na obscuridade, por melhores que sejam.

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


13
@ixtmixilix: Você está falando sério? O App Engine e o GWT dizem o contrário.
Imgx64

4
@ixtmixilix - Guice (uma estrutura de IoC baseada em Java) é escrito pelo Google e usado no front end do Google AdWords e no Wave. Google costura para usar um número de idiomas.
mlk

3
+1 Concordo com o seu argumento principal (FORTRAN, COBOL e C estão vivos e bem), mas discordo do Go, porque é apenas um experimento distante para ter patrocínio corporativo.
Apalala 23/03

2
A AT&T realmente não pressionou C ou C ++. C ficou popular porque era a linguagem do Unix e, mais tarde, porque era melhor que o Pascal para programas maiores. O C ++ apenas se espalhou, de acordo com o livro de Stroustrup, "Design and Evolution of C ++". Normalmente, os idiomas precisam de um aplicativo matador ou de um grande patrocínio corporativo para atingir o sucesso, mas os idiomas podem atingir o sucesso sem isso ou perder com isso.
David Thornley

3
Faz cinco anos - o que você acha agora?
Hippietrail

17

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


17
Discordo. Dê uma olhada no código-fonte do Linux para 'echo' e, em seguida, dê uma olhada na implementação Go do echo. Se a linguagem pode raspar milhares de linhas de um comando simples como esse, provavelmente pode raspar linhas de coisas como bibliotecas de processamento gráfico. E se ele pode raspar linhas das bibliotecas de processamento gráfico, talvez o pessoal do software de identificação (por exemplo) um dia o ache mais útil que o C / C ++. E como a id tem o hábito de liberar o código-fonte para seus jogos, os gráficos 3D no Go podem ser enormes em cinco anos.
Ixtmixilix 25/09/10

14
@ixtmixilix O Linux não tem nada a ver com eco, isso faz parte do GNU.
alternativa

3
você já viu alguma coisa escrita em erlang? isso não é horrível.
The Unix Janitor

2
Acho que o Go só superará o C / C ++ como uma linguagem de sistema, se o sistema operacional do Google decolar. Se o sistema operacional do Google não decolar, acho que vai ser muito mais difícil atingir o mainstream.
Jordan Parmer

2
Neiter, acho que o Go crescerá muito rápido. Minhas razões: 1. sintaxe é muito estranho 2. Limbo 3. Biblioteca não exaustiva 4. modelo de concorrência Demasiada é melhor em Erlang
Daniel Voina

15

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, reconhecidamente há algum tempo, nem sequer havia exceções.) Além disso, pelo menos na medida em que o Jogo de benchmark de linguagem de computador é uma boa medida (é reconhecidamente um indicador muito grosseiro), não é quase tão rápido quanto uma linguagem de sistemas "real" precisa ser.

Eu acho que a língua com a melhor chance para preencher o vazio de uma linguagem de sistemas mais moderno é 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.


7
re "que nem sequer têm exceções" É uma grande decisão foi tomada - golang.org/doc/go_faq.html
user151019

11
@ Mark: Interessante. O pânico e a recuperação parecem exceções prejudicadas. D possui instruções de escopo, que são aproximadamente equivalentes a defer (), mas com exceções normais.
dsimcha

3
Não possui exceções, mas não precisa delas. Em vez disso, permite vários valores de retorno, tornando-o foo, err := SomeFunc()comum. Para problemas importantes ou pontos em que errar não funciona muito bem, você pode usar panic()e recover(). No entanto, estes são usados ​​intencionalmente muito raramente; não há como passar exceções na pilha se a pilha for muito curta, e pilhas pequenas são comuns onde há muitos encadeamentos simultâneos.
Crazy2be

3
"D é tecnicamente muito mais forte que Go", "Seu design é muito minimalista". Interessante como você diz isso como se fosse um fato. É apenas a sua opinião, encare isso.
Moshe Revah

10

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 linguagem 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ê: em i := 1vez de int i = 1, em func f(x, y, z int)vez de void f(int x, int y, int z), em type Foo struct { a, b int }; bar := Foo{1, 2}vez declass 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 principal para o Go é a simultaneidade. É uma linguagem do tipo C que possui um poderoso suporte de simultaneidade conhecido apenas em linguagens funcionais.


2
Recentemente, me apaixonei pelo Go enquanto aprendia com a programação do AppEngine, e não poderia ter dito melhor do que você. Bem feito.
Adam Crossland

5

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 facilita a vida (Ruby).


5

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 tentar preencher esse vazio com o 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 os daemons e para aplicativos de desktop comuns. No momento, a única situação que falha para mim é para aplicativos Android, que espero que seja remediada em breve. Eu o uso para aplicativos de área de trabalho do Windows, aplicativos de área de trabalho Linux e aplicativos da Web baseados em Linux.

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


3

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 normalmente 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 todo o exposto, 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 pequenosempresas que usam o idioma. As grandes organizações estão muito bem - elas podem até ser essenciais para o crescimento de um idioma 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, é provável que queiram contribuir para garantir que ainda poderão fazê-lo no futuro. Eles também formam a base 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.)


Grande resumo do que significa "mainstream". Acho que o Go tem tudo isso, exceto "os clientes exigem que você o use".
Wildcard

2

Já é mais popular 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 massivos, que os sites de mídia social, computação em nuvem, Pesquisa e Dispositivos Móveis 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 o Ruby On Rails, pelo menos em alguns contextos.


1

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

Eu acho que no meu nível, não há mal algum 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

Eu apenas olhei para o Go por causa dessa pergunta, então não posso realmente comentar se ele decolará como um idioma convencional, 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.


0

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


2
Como um idioma de sistemas seria útil para o Google App Engine?
Ixtmixilix 25/09/10

Eu diria que o fato de ser uma linguagem de sistemas compilada no código de máquina no momento não impediria o Google de atingir outras plataformas no futuro. Veja o que eles fizeram com a compilação de java para JavaScript no caso do GWT e como identificar o dalvik vm para android. Da mesma forma, o Facebook compila o PHP. Eu poderia imaginar uma saída do Go que poderia ser instalável no appengine em algum momento no futuro.
Chris Buckett

+1 - o importante é que seja útil para alguma coisa. Veja o que o iPhone fez pelo Objective-C.

3
Bem, isso aconteceu . Agora vamos ver se ele decola ...
Elad

3
Para o registro, atualmente estou desenvolvendo um aplicativo Web grande e ambicioso no tempo de execução do AppEngine Go. Go é extremamente produtivo e rápido. O código é muito legível. É uma linguagem maravilhosa.
Adam Crossland

0

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, mesmo estilo de codificação por tool gofmt, evita erros variáveis ​​não inicializados. Na primeira vez, eu tento na primeira vez, pois é python + C, mas com uma 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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.