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.
@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.
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.
@ 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.
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).
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á.
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.
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.
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:
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.
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.
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
after
para ir?Respostas:
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.
fonte
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.
fonte
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.
fonte
foo, err := SomeFunc()
comum. Para problemas importantes ou pontos em que errar não funciona muito bem, você pode usarpanic()
erecover()
. 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.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:
i := 1
vez deint i = 1
, emfunc f(x, y, z int)
vez devoid f(int x, int y, int z)
, emtype 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);
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.
fonte
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).
fonte
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á.
fonte
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:
Visão dos desenvolvedores:
Visão profissional:
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.)
fonte
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.
fonte
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.
fonte
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.
fonte
Suspeito que se ele se torne mainstream dependerá de o Google adotá-lo como um idioma suportado para appengine e / ou GWT.
fonte
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
fonte