Você precisa escrever um código onde performance é o foco, mas não abre mão da simplicidade no desenvolvimento e ainda gostaria de aproveitar tudo que uma linguagem moderna tem para oferecer. A linguagem Go  — ou simplesmente golang  — oferece isso a você.

Com intuito de manter a simplicidade, foram removidos da linguagem Go, recursos como: Classes, Heranças, Overload de Métodos, Try/Catchs, entre outros. No momento em que essa postagem é escrita, a linguagem go encontra-se na versão estável 1.16.7. Recursos como Generics estão sendo considerados para a release 1.18.

Segundo o site oficial, Go é uma linguagem de programação Open Source que facilita a construção de software simples, confiável e eficiente.

Pronto para embarcar nessa linguagem de alta velocidade? Então, confira o que falaremos a seguir:

O que é a linguagem Go e como surgiu?

Go é uma linguagem compilada, simultânea, com coleta de lixo e tipada estaticamente, desenvolvida no Google após frustrações com a complexidade excessiva promovida pelas linguagens com as quais desenvolviam seus servidores web

Em 2007, Robert Griesemer, Rob Pike e Ken Thompson  — responsáveis respectivamente por projetos como Motor JavaScript V8, sistema UNIX e UTF-8  — foram convidados a projetar uma linguagem que contemplasse três necessidades básicas do Google: desempenho, escalabilidade e facilidade de manutenção.

A linguagem Go traz algumas diretrizes que a caracterizam, tais como: Programação concorrente/paralela nativa, Desempenho, Multiplataforma, Facilmente escalável, Compilado, Garbage Collector Nativo, Memory Safe, Simplista ao extremo. 

O que é uma linguagem compilada?

Diferentemente das linguagens interpretadas ou que executam em máquinas virtuais, uma linguagem compilada é uma linguagem em que todas as instruções do código fonte são convertidas para linguagem de máquina, tornando a execução mais rápida, o que possibilita que ocorra diretamente por meio do sistema operacional ou processador.

O correto é Linguagem Go ou Golang?

O nome oficial da linguagem é Go, porém, ela recebeu o apelido “golang” devido o site ter sido registrado como golang.org, já que o domínio go.org não estava disponível. 

Golang é o termo adequado para fazer pesquisas em buscadores devido ao frequente uso da palavra “go” no idioma inglês.

O logotipo

O logotipo segue a filosofia central da marca de simplicidade em vez de complexidade. Sua forma se assemelha a duas rodas em movimento rápido, comunicando velocidade e eficiência. Embora o logotipo oficial tenha duas letras maiúsculas, o nome do idioma está escrito Go, não GO. A forma circular das letras remete aos olhos do Go Gopher, mascote da linguagem. 

Logotipo Linguagem Go

O mascote Go Gopher

O Go Gopher foi criado pelo renomado ilustrador Renee French para ser o mascote da linguagem.

Mascote Go Gopher

A linguagem Go disparou em popularidade nos últimos anos!

O índice TIOBE mostra a popularidade da linguagem.  Ele é montado a partir de dados de 25 motores de buscas. Em agosto de 2021, Go encontra-se em 18º lugar. 

Índice TIOBE

Em 2009 e 2016, esteve no Hall da Fama, eleita a linguagem do ano. Os principais fatores que impulsionaram essa popularidade foram a facilidade na curva de aprendizado e a sua natureza pragmática.

Gráfico da Linguagem GO no índice TIOBE

Segundo o índice PYPL de agosto de 2021 em uma escala global, Go ocupa a 13º posição.

Índice PYPL

O índice de popularidade de linguagem de programação PYPL é criado analisando a frequência com que os tutoriais de linguagem são pesquisados ​​no Google.

A Freelancer Survey 2020, um estudo realizado pelo Freelancermap com 1856 participantes e 70 questões,  mostra que 18% dos participantes acreditam que Go será uma linguagem de programação importante no futuro.

Pesquisa sobre Linguagens de Programação do Futuro

The Stack Overflow Survey 2021, em uma pesquisa que abrange 82,914 respostas, Go encontra-se no top 10 entre as linguagens mais amadas com 62,74% versus 37,26% de temidas. 

Stack Overflow 2021

Onde a linguagem Go é usada?

O uso de Go vem crescendo em todo o mundo, especialmente — mas não exclusivamente — no ambiente de Cloud Computing Alguns dos principais projetos de infraestrutura em nuvem escritos em Go são Docker e Kubernetes. O Go Wiki mantém atualizado frequentemente uma lista de empresas que fazem uso da Linguagem Go. Além do próprio Google, outras empresas também utilizam Go em seus projetos. São elas:

  • Mercado Livre
  • iFood
  • Heroku
  • Nokia
  • SoundCloud

Quais as vantagens e desvantagens da linguagem Go?

É importante estar ciente que cada tecnologia possui suas vantagens e desvantagens. Saber os pontos fracos e fortes da linguagem ajuda a escolher sabiamente qual é a melhor linguagem para cada projeto. 

Vantagens

  • A facilidade de uso: A linguagem apresenta uma sintaxe fácil de usar. Isso torna fácil a manutenção do código.
  • Linguagem de segurança: como Go é uma linguagem de tipo estático, há menos probabilidades de erro. Essa é uma vantagem sobre as linguagens tipadas dinamicamente com um grande número de tipos de variáveis ​​e maiores chances de erros de codificação complexos. Além disso, o código escrito em Go é mais simples e fácil de depurar. A combinação desses fatores reduz as vulnerabilidades de segurança do aplicativo.
  • Excelente documentação: Go não só tem uma excelente documentação, mas vai um passo além. Os desenvolvedores que não documentam seu código o suficiente recebem alertas para colocar em prática a documentação necessária. Isso aumenta a capacidade de manutenção do código escrito em Go.

Desvantagens

  • Menos versátil: embora a simplicidade do Go ofereça muitas vantagens, ele também mantém afastadas algumas funcionalidades poderosas de alto nível. Isso torna a linguagem menos versátil quando você a compara a linguagens mais complexas. Go ainda não oferece suporte a genéricos.
  • Consome mais recursos computacionais: como não há máquina virtual para esta linguagem, os arquivos Go podem ser muito maiores do que algumas das linguagens de programação líderes de mercado. Isso faz com que o Go consuma mais memória RAM.
  • Construir um grande ecossistema para Go levará tempo: ao contrário de algumas das principais linguagens de programação, Go não se tornou indispensável em nenhuma área. Como resultado, a adoção demora mais. Naturalmente, levará mais tempo para construir um grande ecossistema.

Go vs Python, Java e NodeJS: conheça as principais diferenças!

É comum ver comparativos entre linguagens de programação. Veremos algumas diferenças entre elas:

Go vs Python

Python é uma linguagem interpretada, dinamicamente tipada e sem gerenciamento de memória, enquanto que Go é uma linguagem compilada, estaticamente tipada e possui gerenciamento de memória. 

Go vs Java

Java executa por meio de uma máquina virtual, enquanto que o Go executa nativo pelo sistema por ser compilado em linguagem de máquina. Go é capaz de paralelismo nativamente. 

Go vs NodeJS

Go passa por desenvolvimentos e aprimoramentos, no entanto, estes seguem um padrão sistemático. Por outro lado, várias APIs Node.js passam por mudanças frequentes. Isso demonstra falta de maturidade por parte do Node.js. Golang atingiu um maior grau de maturidade.

Por que aprender a linguagem Go?

Go é uma linguagem relativamente simples com uma biblioteca padrão relativamente simples. Foi criada com o objetivo de garantir alta performance. Otimização considerável no uso de recursos como memória e processamento. 

Por onde começar com a linguagem Go?

O site oficial do Go é o ponto de partida. Nele é possível encontrar as distribuições para instalação, acesso à documentação, informações sobre o projeto, wiki, etc. É possível testar Go sem necessidade de instalação e configuração prévia utilizando o The Go Playground.

Há também um tour Interativo por Go, com uma série de slides e lições para aprender. O tour cobre as características mais importantes da linguagem, onde é possível compilar e executar suas lições em um servidor remoto de Go. 

A partir dos módulos é possível aprender sobre:

  • Pacotes, variáveis e funções.
  • Estruturas de controle de fluxo: for, if, else e switch
  • Mais tipos: structs, slices, e maps
  • Métodos e interfaces
  • Concorrência

Go by Example oferece uma introdução prática ao Go utilizando programas de exemplo com anotações. De Hello World, Ponteiros, Recursão a implementações de Clientes e Servidores HTTP.

Para quem deseja aprofundar, é possível consultar a especificação da linguagem de programação Go.

Por fim, Karl Seguin escreveu o livro The Little Go Book, disponível gratuitamente.

Instalação e primeiro arquivo ”hello world” com a linguagem Go!

Agora chegou o momento tão esperado. Hora de arregaçar as mangas, instalar, configurar e executar nosso primeiro programa em Go!

Instalando e criando o primeiro arquivo na linguagem go

Instalação da linguagem Go

Instalação do Go para o Microsoft Windows:

1 – Acesse a página de download

2 – Baixe a última versão mais estável recente. O arquivo será semelhante a esse: go1.17.windows-amd64.msi

3 – Localize o arquivo que você baixou na sua máquina e dê um clique duplo para iniciar a instalação na seguinte tela.

Painel de instalação Go

4 – A partir de agora, siga a instalação padrão do Windows. Na tela de instalação para executar a opção Install será necessário que seu usuário tenha privilégios administrativos e será necessário permitir que o aplicativo faça alterações no seu dispositivo.

Painel de instalação Go 2

5 – Após o processo de instalação, clique no botão Finish.

Instalação do Go para o Linux:

1 – Acesse a página de download

2 – Como iremos fazer o processo de instalação pelo terminal, então na página de download localize um arquivo semelhante a: go1.17.linux-amd64.tar.gz

3 – Clique com o lado direito do mouse e procure a opção Copiar link/Copiar endereço do link (Essa opção varia de acordo com o navegador que você estiver utilizando)

Copiando link do arquivo

4 – No linux — utilizando um Ubuntu — abra o terminal (CTRL + ALT + T)

5 – Para fazer o download do instalador do Go no linux, digite o comando wget no terminal e clique com o botão direito do mouse e escolha a opção colar.    

Terminal Ubuntu Linux para instação do Go

6 – Após fazer o download, descompactaremos utilizando o comando: tar -xzvf precedido do comando sudo (será necessário colocar a senha do usuário com permissões de sudo)

sudo tar -xzvf go1.17.linux-amd64.tar.gz

7 – Ocorrendo tudo certo será gerado um diretório chamado go com todos os arquivos extraídos.

Geração do diretório

8 – Agora moveremos esse diretório go. A recomendação é que ele seja movido para /usr/local/go ou /opt/local/go

sudo mv go /usr/local/

É necessário configurar duas variáveis de ambiente para que o Go rode legal.

Path para o Microsoft Windows:

1 – Abra o Painel de controle e busque pelo termo “variáveis de ambiente”, na barra de pesquisa. Será necessário encontrar a opção “Editar as variáveis de ambiente do sistema”.

Caminho para Windows

2 – Na tela que abrir clique no botão Variáveis de Ambiente

3 – Na tela que irá abrir há dois grupos. O grupo superior é das Variáveis de usuário e o grupo inferior das Variáveis do sistema. Nesse passo é importante editarmos o grupo das Variáveis do sistema. Então localize a variável Path (Dê um clique duplo ou selecione e clique no botão Editar)

4 – Será necessário adicionar o caminho da instalação do go até o diretório /bin. Caso não tenha alterado durante da instalação, o caminho padrão ficará assim: C:\Program Files\Go\bin

Variável de ambiente Windows

Em alguns casos essa variável pode ter sido adicionada automaticamente durante a instalação, então não será necessário adicionar um novo valor.

5 – Para testar você pode abrir o cmd ou o PowerShell e digitar: 

go version

testando no Power Shell

Path para o Linux:

1 – Abra o terminal

2 – Utilizando o editor de sua preferência edite o arquivo ~/.profile

nano ~/.profile

3 – No final do arquivo adicione o seguinte valor:

export PATH=$PATH:/usr/local/go/bin

O arquivo ficará parecido com isso. (caso esteja utilizando o nano, CTRL+O para gravar e CTRL+X para sair.

4 – Será necessário executar o comando para carregar o arquivo:

source ~/.profile

5 – Abra o terminal e digite: 

go version

Tanto no Windows quanto no Linux é possível digitar o comando go env, isso exibirá todas as variáveis de ambiente que o Go utiliza.

O workspace do Go utiliza a variável GOPATH.

GOPATH para o Windows:

1 – Crie um diretório para conter o Go Workspace. Aqui utilizarei:

C:\go-workspace

2 – Nas Variáveis de ambiente, no grupo Variáveis de usuário, localize a variável GOPATH (caso não exista será necessário criar). Por padrão o valor colocado na instalação é %USERPROFILE%\go, mas no nosso caso iremos alterar esse valor para C:\go-workspace.

Localizando variável GOPATH

GOPATH para o Linux:

1 – Abrir o terminal

2 – Criar um diretório para o Go Workspace:

mkdir go-workspace

3 – Entre no diretório utilizando o comando:

cd go-workspace

4 – Você pode digitar o comando pwd dentro desse diretório e copiar o valor da saída no terminal. É provável que seja um valor iniciado em /home e finalizando em /go-workspace.

(Para copiar, selecione todo o caminho, clique com o lado direito do mouse e depois em copiar.)

5 – Ainda no terminal vamos editar novamente o arquivo .profile com o comando:

nano ~/.profile

6 – No final do arquivo, adicione o caminho copiado precedido de export GOPATH=

exportando o caminho

7 – Agora é só salvar, fechar e executar o comando para carregar o arquivo:

source ~/.profile

Entenda o Go Workspace

Dentro do seu Go Workspace será necessário criar três subdiretórios padrões:

  • src/: localização do código-fonte Go arquivos com as extensões, .go, .c, .g, .s).
  • pkg/: localização do pacote compilado (arquivos com extensão, .a). Raramente utilizaremos ela. 
  • bin/: localização dos arquivos binários, ou seja, programas executáveis compilados desenvolvidos por Go.

Escolhendo o Editor de texto

É possível utilizar o editor padrão do seu sistema operacional como o Bloco de Notas no Microsoft Windows ou o Nano no Linux, salvar o arquivo que contém seu código com a extensão .go. e executar o arquivo pelo terminal com o comando go run nomedoarquivo.go. sem necessidade alguma de IDE.

Já para quem prefere utilizar uma IDE, a ferramenta gopls (é pronunciado “Go please”), servidor oficial da linguagem Go desenvolvida pela equipe Go, pode ser uma solução. Segundo seu repositório no Github, ela fornece recursos de IDE para qualquer editor compatível com LSP (Language Server Protocol).

É possível utilizar gopls, a partir da instalação de um plugin LSP nos seguintes editores:

  • VSCode
  • Vim / Neovim
  • Emacs
  • Átomo
  • Texto Sublime
  • Acme

Agora veremos como fazer a configuração do plugin no VSCode a fim de obter recursos como IntelliSense, navegação de código, pesquisa de símbolo, teste, depuração, entre outros recursos que ajudarão no desenvolvimento Go. 

1 – No gerenciador de extensões do VSCode (CRTL + SHIFT + X) busque por Go e clique em install.

Adicionando a extensão Linguagem Go

2 – Para ativar a extensão é necessário abrir algum arquivo com extensão .go no workspace.

3 – A extensão depende de um conjunto de ferramentas extras de linha de comando. É possível executar comandos digitando CTRL + SHIFT + P e escrevendo “Go:”. 

Executando comandos Linguagem Go

4 – Será informado um alerta para cada ferramenta faltante com uma opção para instalar.

Componente faltando para a instalação

Comandos e ferramentas adicionais podem ser encontradas no diretório oficial.

Criando o primeiro arquivo “hello world”

Vamos agora criar nosso primeiro programa em Go.

Em seu editor preferido digite o código a seguir:

 package main
 import "fmt"
 func main() {
 fmt.Println("Hello World")
 } 

Agora salvaremos o arquivo com o nome de hello.go no do diretório /src do nosso go-workspace.

Executando seu primeiro programa em Go

Para executar nosso primeiro arquivo Go é bem simples. Basta digitar o comando:

go run hello.go

Resultado Hello World na linguagem Go

Pronto, você acabou de executar seu primeiro programa em Golang.

A Linguagem Go não é uma bala de prata, assim como qualquer outra não é. Porém, ela possui suas particularidades. Sua simplicidade é um grande ponto forte. Quando o assunto é performance, Go é a solução ideal para tal. 


Se você gostou de aprender sobre essa linguagem, conheça agora um pouco sobre a linguagem R!

Deixe um comentário
Você também pode gostar