Mas, por que Go?

Morvana Bonin
Author
July 9, 2020
3
min de leitura

Antes de listar os motivos para usar Go, vamos dar uma olhada em alguns resultados da edição 2020 da Developer Survey, conduzida pela Stack Overflow. Go está em 12º lugar no ranking das tecnologias mais populares.

No entanto, está entre as 5 linguagens mais amadas do ano.

A pesquisa mostra um contraste muito interessante. Parece que a Go ainda não ganhou uma fatia abrangente do mercado, ao mesmo tempo, está entre as línguas mais queridas e desejadas pelos desenvolvedores. Este artigo visa listar algumas características interessantes do que pode se tornar sua linguagem favorita. So, hey ho, let’s Go!

Fácil de aprender

Go tem uma sintaxe enxuta e simples, com poucas palavras-chave para memorizar, permitindo um aprendizado rápido. Mesmo para desenvolvedores acostumados a outras linguagens, como Java e C, Go apresenta uma pequena curva de aprendizado. É o tipo de linguagem que faz com que o programador leia um livro ou a própria documentação e se pergunte: "Mas é só isso?"

Linguagem compilada

É comum ouvir que Go é uma linguagem de programação rápida. Uma das razões é que o código desenvolvido em Go é traduzido pelo compilador em código de máquina nativa, gerando binários consideravelmente pequenos. O compilador Go é muito eficaz na detecção de falhas de pré-compilação e até mesmo na prevenção de possíveis "desperdícios", tais como variáveis ou importações não utilizadas. Não há necessidade de usar as VMs.

Multiplataforma ou cross-compile

É possível gerar executáveis de código Go para várias plataformas através do comando $gobuild , informando o sistema operacional e a arquitetura alvo através das variáveis de ambiente GOOS e GOARCH. Dessa forma, o código fonte permanecerá intacto. Também é possível fazer cross-compile da sua aplicação em um container portuário; confira aqui.

Garbage Collector

Recupera a memória ocupada por objetos que não podem mais ser referenciados dentro do escopo de execução. Ela é processada simultaneamente, durante a execução do programa Go.

Simultaneidade

Go tem um suporte muito eficiente e leve para a execução simultânea do código através de goroutines e canais. As goroutines são análogas a threads, mas a um custo consideravelmente menor. Para criar uma goroutine, basta adicionar a palavra-chave go antes que a função desejada seja chamada (ou através de funções anônimas). Isso fará com que ela seja executada como de costume, mas o programa não vai esperar por uma resposta antes de prosseguir para a próxima instrução. Os canais, por outro lado, possibilitam a comunicação entre as goroutines, permitindo a troca de valores entre elas através das operações de send e receive.

Uma opção interessante para a nuvem

Várias tecnologias de nuvem têm seu núcleo desenvolvido em Go. Isso é algo que nos leva a acreditar que a linguagem não só é adequada para o desenvolvimento das nuvens, mas também as compõem. Nesta entrevista, Steve Francia, Líder de Produto e Estratégia da linguagem Go, afirma que "seria razoável dizer que a nuvem moderna está escrita em Go". Outra vantagem é o Go Cloud Development Kit, que fornece APIs que auxiliam no desenvolvimento para os principais provedores de nuvem.

Um breve resumo dos motivos para usar Go

Go tem uma gama atraente de características que também podem ser encontradas em outras linguagens, mas nem sempre são combinadas. Por outro lado, por valorizar a simplicidade, não possui certas conveniências como exceções, genéricos, sobrecarga de funções, herança ou anotações. O livro Go In Action menciona que "Go não é definido apenas pelo que inclui, mas pelo que não inclui". É com esse pensamento que chegamos ao final deste artigo.

Quer conferir mais conteúdos técnicos produzidos pela Sensedia? Clique aqui para acessar gratuitamente nossos materiais!

Referências e links úteis

Inicie sua jornada conosco

Estamos prontos para guiar o seu negócio rumo ao futuro, com a solução certa para você se beneficiar do potencial das APIs e integrações modernas.

Sua história de sucesso começa aqui

Conte com nosso apoio para levar as melhores integrações para o seu negócio, com soluções e equipes profissionais que são referência no mercado.