Você está na página 1de 20

Linguagem Go: guia prático e rápido

sobre Golang 2022


07/10/2021 ∙ Atualizado em 07/07/2022

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 de
programação moderna tem para oferecer. A linguagem Go — ou simplesmente golang — oferece
isso a você.

Com intuito de manter a simplicidade na hora de programar, foram removidos da linguagem Go,
recursos como: Classes, Heranças, Overload de Métodos, Try/Catchs, entre outros.

Mas como exatamente ela funciona e quais são suas principais características?

Confira o nosso post!

 O que é a linguagem Go e como surgiu?


 O correto é Linguagem Go ou Golang?
 O logotipo
 O mascote Go Gopher
 A linguagem Go disparou em popularidade nos últimos anos!
 Onde a linguagem Go é usada?
 Quais as vantagens e desvantagens da linguagem Go?
 Go vs Python, Java e NodeJS: conheça as principais diferenças!
 Por que aprender a linguagem Go?
 Por onde começar com a linguagem Go?
 Instalação e primeiro arquivo ”hello world” com a linguagem Go!

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.
O mascote Go Gopher

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

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.
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.
Segundo o índice PYPL de agosto de 2021 em uma escala global, Go ocupa a 13º posição.

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.

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.

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!
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.
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.

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)
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.

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.

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”.

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
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

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.

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=


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.

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:”.

4 – Será informado um alerta para cada ferramenta faltante com uma opção para instalar.
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
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!

Cairo Noleto

Nascido na terra distante e quente de Teresina - PI em 1986, é quase Bacharel em Sistemas de Informação e trabalha com Desenvolvimento
de Software desde 2007. Começou sua carreira na linguagem PHP e depois, em 2009, mudou para Ruby, na qual teve a felicidade de
trabalhar no projeto de tradução da documentação para português (do Brasil) do framework Ruby on Rails. Já trabalhou em empresas como
Jus Navigandi, e Enjoei, marketplace. Além de ter lidado com as linguagens Ruby e GoLang (2013-2016), e por fim impactou mais de 2
milhões de estudantes em todo o Brasil no AppProva, com as linguagens Ruby, PHP, JavaScript, GoLang e Elixir. Atualmente na Trybe é
responsável pelo time de tecnologia de Experiência de Estudantes.

Você também pode gostar