Por que Go?
Last updated
Last updated
É frequente vermos essa pergunta por aí, e talvez a melhor resposta seja: por que não Go?
Go ou Golang, como também pode ser chamada para desambiguação, é uma linguagem de programação de código aberto publicada pela primeira vez em 2009 e desenvolvida, no Google, por Rob Pike, Robert Griesemer e Ken Thompson. Com base na sintaxe da linguagem C, ela vem com algumas mudanças e melhorias para gerenciar com segurança o uso de memória, gerenciar objetos e fornecer tipagem estática juntamente com concorrência.
Como Go é uma linguagem compilada, qualquer código escrito em Go é compilado diretamente em um formato que o processador entende. Outras linguagens, como Java, são compiladas em bytecode, que é executado pela máquina virtual.
A sintaxe de Go é pequena em comparação com outras linguagens, o que a torna mais limpa e mais amigável de ler e aprender. Devido à sua abordagem procedural, é fácil as pessoas desenvolvedoras se familiarizarem com Go, principalmente se tiverem uma base em C ou Java.
Assim como qualquer outra linguagem fortemente tipada, é mais fácil identificar erros no código, e fica mais legível para outras pessoas desenvolvedoras.
Qualquer struct
pode satisfazer uma interface simplesmente implementando seus métodos. Isso permite que você desacople as dependências em seu código. Você pode então criar mock (simulação) de suas dependências em testes. Usando interfaces, você pode escrever um código mais modular e testável. Go também possui funções de primeira classe, ou seja, as funções podem ser tratadas como qualquer outra variável, que abrem a possibilidade de escrever seu código em um estilo mais funcional.
A biblioteca padrão do Go fornece funções internas úteis para trabalhar com tipos primitivos, assim como pacotes que tornam mais fácil configurar um servidor web, lidar com IO, trabalhar com criptografia e manipular bytes brutos. A serialização e desserialização JSON, assim como o suporte a testes, também já estão incluídos.
O gerenciamento de memória em Go foi intencionalmente mais fácil do que em C e C ++. Objetos alocados dinamicamente são coletados pelo Garbage Collector. Go torna o uso de ponteiros muito mais seguro porque não permite aritmética de ponteiros. Também oferece a opção de usar tipos de valor.
Embora a programação concorrente nunca seja fácil, Go a torna mais simples do que em outras linguagens. É quase trivial criar uma “mini” thread, chamada de “goroutine”, e se comunicar com ela por meio de um channel. As “goroutines” são muito eficientes e consomem muito pouca memória. Padrões mais complexos também são possíveis.