Porque a linguagem Go é a mais popular de todos os tempos

A linguagem de programação Go, por vezes referida como “golang do Google”, disparado em popularidade nos últimos anos. Enquanto outras linguagens, como Java e C, continuam a dominar a programação, novos modelos têm se adequado melhor à computação moderna, especialmente no ambiente da nuvem. O uso crescente do Go é devido, em parte, ao fato de ser uma linguagem leve e de código aberto adequada às arquiteturas de microserviços de que dispomos hoje. Basta mencionar que tanto o Docker como o Kubernetes foram construídos usando a linguagem Go. O Go também tem ganhado força no campo da ciência de dados, com pontos fortes que os cientistas de dados procuram no desempenho geral e a capacidade de passar do “laptop do analista para a produção total”.

Como uma linguagem de engenharia (em vez de algo que evoluiu ao longo do tempo), o Go beneficia os desenvolvedores de várias maneiras, incluindo garbage collection, concorrência nativa e muitos outros recursos nativos que reduzem a necessidade dos desenvolvedores escreverem código para lidar com vazamentos de memória ou aplicativos em rede. O Go também fornece muitos outros recursos que se encaixam perfeitamente nas arquiteturas de microserviços e na ciência de dados.

Por conta disso, o Go está sendo adotado por empresas e projetos interessantes. Recentemente, uma API para o Tensorflow foi adicionada, e produtos como o Pachyderm (próxima geração de processamento de dados, controle de versão e armazenamento) estão sendo criados usando a linguagem Go. O Force.com da Heroku e partes da Cloud Foundry também foram escritas em Go. Mais nomes tem sido adicionados regularmente.

Aumento da popularidade e do uso


No índice TIOBE de setembro de 2017 para o Go, é possível ver claramente o incrível salto em popularidade do Go desde 2016, incluindo ter sido aclamado vencedor do “Hall of Fame” da Linguagem de Programação da TIOBE em 2016, como a linguagem com o maior aumento nas classificações em apenas um ano. Atualmente, o Go ocupa a posição n.°17 na lista mensal, acima do n 19 há um ano atrás e ainda mais distante da posição n.° 65 de dois anos atrás.


The Stack Overflow Survey 2017 também mostra sinais do aumento da popularidade oe Go. A pesquisa da Stack Overflow abrange 64.000 desenvolvedores e tenta descobrir as preferências dos desenvolvedores fazendo perguntas sobre as “linguagens mais queridas, temidas e desejadas”. Esta lista é dominada por linguagens mais recentes, como o Rust, da Mozilla, Smalltalk, Typescript, Swift da Apple e, claro, o Go do Google. Mas, pelo terceiro ano consecutivo, Rust, Swift e Go estiveram entre as cinco “linguagens de programação mais amadas”.



Vantagens do Go



Algumas linguagens de programação cresceram colaborativamente ao longo do tempo, enquanto outras foram criadas academicamente. Outras, ainda, foram projetadas em uma era diferente de computação com diferentes problemas de hardware e outras necessidades. O Go é uma linguagem explicitamente projetada, destinada a resolver problemas com linguagens e ferramentas existentes, enquanto aproveita nativamente as arquiteturas de hardware modernas. Ela foi projetada não só com equipes de desenvolvedores em mente, mas também com equipes de manutenção a longo prazo.

No seu core, o Go é pragmático. No mundo real da TI, o software complexo e em larga escala é escrito por grandes equipes de desenvolvedores. Esses desenvolvedores geralmente possuem diferentes níveis de habilidades, desde “juniores” até seniores. O Go é fácil de tornar-se funcional e também apropriado para desenvolvedores juniores trabalharem.

Além disso, ter um idioma que incentiva a legibilidade e a compreensão é extremamente útil. A mistura de tipagem duck (via interfaces) e features de conveniência, como “:=” para declarações de variáveis curtas, dão a sensação de uma linguagem dinamicamente tipada, mantendo também os benefícios de uma tipagem forte.

O garbage collection nativo do Go retira a necessidade dos desenvolvedores fazerem seu próprio gerenciamento de memória, o que ajuda a evitar dois problemas comuns:

  • Primeiro, muitos programadores esperaram que o gerenciamento de memória seria feito para eles.
  • Em segundo lugar, o gerenciamento de memória requer diferentes rotinas para diferentes cores de processamento. A tentativa manual de contabilizar cada configuração pode aumentar significativamente o risco de vazamentos de memória.


A concorrência nativa do Go é uma dádiva para aplicações de rede que vivem e morrem em concorrência. Das APIs aos servidores web e frameworks de aplicativos web, os projetos envolvendo Go tendem a se concentrar em redes, funções distribuídas e/ou serviços para os quais os “goroutines” e canais do Go sejam apropriados.

Apropriado para ciência de dados


Extrair o valor comercial de grandes conjuntos de dados tem rapidamente se tornado uma vantagem competitiva para as empresas e uma área muito ativa na programação, abrangendo especialidades como inteligência artificial, aprendizado de máquina e muito mais. O Go possui muitos pontos fortes em áreas de ciência de dados, o que tem aumentado seu uso e popularidade.

O tratamento de erros em nível superior e o debug facilitado ajudam a ganhar popularidade em relação ao Python e à linguagem R, duas das mais utilizadas em ciência de dados atualmente

Os cientistas de dados geralmente não são programadores. O Go ajuda tanto com prototipagem como produção, por isso acaba sendo uma linguagem mais robusta para colocar as soluções de ciência dos dados em produção.

O desempenho é fantástico, e algo crítico, dada a explosão do Big Data e o aumento de bancos de dados GPU. O Go não precisa chamar otimizações baseadas em C/C++ para obter ganhos em termos de desempenho, mas oferece ao usuário a capacidade de fazê-lo.

Sementes da expansão do Go


A entrega e implementação de software mudaram drasticamente. As arquiteturas de microserviços tornaram-se a chave para desbloquear a agilidade de aplicativos. Os aplicativos modernos são projetados para serem nativos na nuvem e para aproveitar os serviços vagamente acoplados oferecidos pelas plataformas da nuvem.

O Go é uma linguagem de programação explicitamente projetada, tendo sido seu design fortemente influenciado com estes novos requisitos em mente. Escrito expressamente para a nuvem, o Go tem crescido em popularidade devido ao seu domínio de operações simultâneas e da beleza de sua construção.

Não só o Google apoia o Go, mas outras empresas também tem ajudado na expansão do mercado. Por exemplo, o código Go é suportado e expandido com distribuições de nível empresarial, como o ActiveGo do ActiveState. Como um movimento open source, o site golang.org e as conferências anuais GopherCon formam a base de uma comunidade forte e moderna de código aberto que permite que novas ideias e novo fôlego sejam trazidos para o processo de desenvolvimento da linguagem.

Fonte: opensource.com

21