Série Go: Uma abordagem sobre a Linguagem de Programação Golang

O core Go, WebDev, GameDev, CliDev, GUIDev e exemplos diferentes. Hoje vamos iniciar séries sobre várias linguagens de programação diferentes. Trata-se de documentos que eu fui escrevendo durante muito tempo e ficou aqui parado e não sabia o que fazer com eles. Algumas pessoas sugeriram fazer um Curso, mas isso iria me tomar ainda mais tempo, pode ser até que eu transforme, no futuro, se der, em vídeo. Mas, pra não continuar com todo esse conteúdo aqui parado, vou começar a "soltar" como postagens. O diferencial dessas séries é que os exemplos são diferenciados dos que você pode encontrar por aí. São coisas que eu mesmo criei e as pessoas gostam das coisas que eu faço, acho que deve ser a experiência que eu carrego desde 2011 quando inicie o Terminal Root, aliás, ele começou assim, coisas que eu fazia pra mim e resolvi guardar no Blogger e sem querer, os links já estavam em vaŕios fóruns, que foi aí que eu descobri porque o meu blog tava tendo muito acesso. Nessa primeira série iremos abordar a linguagem de programação Go/Golang. A linguagem de programação Go é responsável por muitas coisas que muitos de nós usamos no dia a dia. Diversos softwares famosos são feitos com Go, dentre alguns deles, temos: Docker - Virtualização em nível de sistema operacional. Kubernetes - Orquestrador de containers amplamente usado. Terraform - Ferramenta de infraestrutura como código (IaC) da HashiCorp. Prometheus - Sistema de monitoramento e alerta. Grafana Loki – Sistema de logs escalável. Hugo – Gerador de sites estáticos rápido. Gogs/Gitea – Plataformas self - hosted de gerenciamento de repositórios Git. O mais recente é o TypeScript Go, trata-se de um runtime TypeScript feito pela Microsoft, que será o padrão para rodar em aplicações como: VS Code e outras. Esse port do TypeScript para Go deu muito que falar nos últimos dias, pois a execução do TypeScript ficou 10x mais rápida! Além de diversos outros menos conhecidos. Um dos diferenciais da linguagem de programação Go é que diferentemente de linguagens como: Swift, Rust, Zig, e entre outras, Go NÃO DEPENDE DO LLVM para compilar e criar seus arquivos binários, toda a estrutura da linguagem é original e própria. Além também de não ter recorrido a invenção do C++ de deletar ponteiros e sim utilizar Garbage Collector, que há um pequeno impacto no desempenho, mas não corre o risco severo de vazamento de memória. Para quem ainda não entende bem como isso funciona, saiba que o Rust que é visto como memory safety possui uma página em sua documentação alertando que é possível sim haver memory leaks. A única diferença é que o compilador original, assim como Swift, Carbon, Rust, Zig e outras, foi escrito em C++ que foi o gofrontend, mas também já "sofreu": bootstraping. Nesses episódios da série vamos tentar abordar de 3 a 4 tópicos. Nesse Episódio 01 de hoje vamos ver: 01. Introdução 02. Preparando o Ambiente 03. Olá, Mundo! e 04. Comentários 01. Introdução Go é uma linguagem de programação criada pela Google e lançada em código livre em novembro de 2009. É uma linguagem compilada e focada em produtividade e programação concorrente, baseada em trabalhos feitos no sistema operacional chamado Inferno. O projeto inicial da linguagem foi feito em setembro de 2007 por Robert Griesemer, Rob Pike e Ken Thompson(um dos criadores do UNIX). Atualmente, há implementações para Windows, macOS, GNU/Linux e FreeBSD. Para mais informações veja aqui, a página oficial do Go é: https://go.dev/ 02. Preparando o Ambiente Antes de mais nada você precisa ter o Go instalado no seu sistema. Você pode fazer o download aqui: https://go.dev/dl/ ou utilizar o gerenciador de pacotes do seu sistema operacional, exemplos: No Windows com WinGet > É interessante abrir o PowerShell como Administrador. winget install --id=GoLang.Go -e No macOS com Brew brew install go No Ubuntu via APT ou snap sudo apt install golang-go Após instalado teste rodando o comando go version se aparecer a versão similar ao conteúdo abaixo é porque está tudo certo. go version go version go1.22.2 amd64 Alternativamente você também pode usar o compilador do GCC que é o GCCGO, para isso veja os links abaixo: https://gcc.gnu.org/onlinedocs/gccgo/ https://go.dev/doc/install/gccgo É interessante também você instalar snippets para Go no seu IDE/Editor preferido. 03. Olá, Mundo! O programa mais básico de todos é sempre um Hello, World!, então vamos criar nosso exemplo com Go. Crie uma arquivo de nome qualquer e extensão .go, exemplo: hello.go e insira o conteúdo abaixo: package main import "fmt" func main (){ fmt.Println("Olá, Go!") } Para rodar você pode rodar o comando abaixo, apesar de não ser a melhor forma, pois fica lento, mas é possível: go run hello.go O correto mesmo é construir o binário(fica mais veloz) e executar posteriormente: go build hello.go ./hello Outra fo

Mar 20, 2025 - 22:48
 0
Série Go: Uma abordagem sobre a Linguagem de Programação Golang

O core Go, WebDev, GameDev, CliDev, GUIDev e exemplos diferentes.

Hoje vamos iniciar séries sobre várias linguagens de programação diferentes. Trata-se de documentos que eu fui escrevendo durante muito tempo e ficou aqui parado e não sabia o que fazer com eles.

Algumas pessoas sugeriram fazer um Curso, mas isso iria me tomar ainda mais tempo, pode ser até que eu transforme, no futuro, se der, em vídeo. Mas, pra não continuar com todo esse conteúdo aqui parado, vou começar a "soltar" como postagens.

O diferencial dessas séries é que os exemplos são diferenciados dos que você pode encontrar por aí. São coisas que eu mesmo criei e as pessoas gostam das coisas que eu faço, acho que deve ser a experiência que eu carrego desde 2011 quando inicie o Terminal Root, aliás, ele começou assim, coisas que eu fazia pra mim e resolvi guardar no Blogger e sem querer, os links já estavam em vaŕios fóruns, que foi aí que eu descobri porque o meu blog tava tendo muito acesso.

Nessa primeira série iremos abordar a linguagem de programação Go/Golang.

A linguagem de programação Go é responsável por muitas coisas que muitos de nós usamos no dia a dia. Diversos softwares famosos são feitos com Go, dentre alguns deles, temos:

  • Docker - Virtualização em nível de sistema operacional.
  • Kubernetes - Orquestrador de containers amplamente usado.
  • Terraform - Ferramenta de infraestrutura como código (IaC) da HashiCorp.
  • Prometheus - Sistema de monitoramento e alerta.
  • Grafana Loki – Sistema de logs escalável.
  • Hugo – Gerador de sites estáticos rápido.
  • Gogs/Gitea – Plataformas self - hosted de gerenciamento de repositórios Git.

O mais recente é o TypeScript Go, trata-se de um runtime TypeScript feito pela Microsoft, que será o padrão para rodar em aplicações como: VS Code e outras.

Esse port do TypeScript para Go deu muito que falar nos últimos dias, pois a execução do TypeScript ficou 10x mais rápida!

Além de diversos outros menos conhecidos.

Um dos diferenciais da linguagem de programação Go é que diferentemente de linguagens como: Swift, Rust, Zig, e entre outras, Go NÃO DEPENDE DO LLVM para compilar e criar seus arquivos binários, toda a estrutura da linguagem é original e própria.

Além também de não ter recorrido a invenção do C++ de deletar ponteiros e sim utilizar Garbage Collector, que há um pequeno impacto no desempenho, mas não corre o risco severo de vazamento de memória. Para quem ainda não entende bem como isso funciona, saiba que o Rust que é visto como memory safety possui uma página em sua documentação alertando que é possível sim haver memory leaks.

A única diferença é que o compilador original, assim como Swift, Carbon, Rust, Zig e outras, foi escrito em C++ que foi o gofrontend, mas também já "sofreu": bootstraping.

Nesses episódios da série vamos tentar abordar de 3 a 4 tópicos. Nesse Episódio 01 de hoje vamos ver:

  • 01. Introdução
  • 02. Preparando o Ambiente
  • 03. Olá, Mundo!
  • e 04. Comentários

01. Introdução

Go é uma linguagem de programação criada pela Google e lançada em código livre em novembro de 2009.

É uma linguagem compilada e focada em produtividade e programação concorrente, baseada em trabalhos feitos no sistema operacional chamado Inferno.

O projeto inicial da linguagem foi feito em setembro de 2007 por Robert Griesemer, Rob Pike e Ken Thompson(um dos criadores do UNIX).

Atualmente, há implementações para Windows, macOS, GNU/Linux e FreeBSD.

Para mais informações veja aqui, a página oficial do Go é: https://go.dev/

02. Preparando o Ambiente

Antes de mais nada você precisa ter o Go instalado no seu sistema. Você pode fazer o download aqui: https://go.dev/dl/ ou utilizar o gerenciador de pacotes do seu sistema operacional, exemplos:

winget install --id=GoLang.Go  -e

Go WinGet

brew install go
sudo apt install golang-go

Após instalado teste rodando o comando go version se aparecer a versão similar ao conteúdo abaixo é porque está tudo certo.

go version
go version go1.22.2 amd64

Alternativamente você também pode usar o compilador do GCC que é o GCCGO, para isso veja os links abaixo:

É interessante também você instalar snippets para Go no seu IDE/Editor preferido.

03. Olá, Mundo!

O programa mais básico de todos é sempre um Hello, World!, então vamos criar nosso exemplo com Go. Crie uma arquivo de nome qualquer e extensão .go, exemplo: hello.go e insira o conteúdo abaixo:

package main

import "fmt"

func main (){
  fmt.Println("Olá, Go!")
}

Para rodar você pode rodar o comando abaixo, apesar de não ser a melhor forma, pois fica lento, mas é possível:

go run hello.go

O correto mesmo é construir o binário(fica mais veloz) e executar posteriormente:

go build hello.go
./hello

Outra forma de criar um códigos com Go é criar um projeto para Go:

go mod init example/hello
cp ../hello.go .
go run .

Explicando o código:

  • package main → Cada programa Go é composto de pacotes. Programas começam rodando pelo pacote main.
  • import "fmt" → Este programa está usando o pacote com caminho de importação "fmt", alternativamente poderia usar a sintaxe: import ("fmt") usada para mais de uma importação.
  • func main() → Essa é a função principal, ele sempre precisa existir em todos os programas Go, precisamos abrí-la com { e fechar com }.
  • fmt.Println("Olá, Golang!") → Para imprimimos o conteúdo desejado usa-se fmt.Println(), a função Println() faz parte da biblioteca fmt, o P em maiúsculo deve ser respeitado.

04. Comentários

Go usa estilo C/C++ para escrever comentários(parte do código que não influenciará no resultado, somente para fins informativos de quem venha ler o código) // comentário ou /* comentário */(múltiplas linhas) , exemplos:

// Meu primeiro código Go
package main // importa o pacote main

import "fmt" // utilizando a biblioteca fmt para Println

func main (){ // função principal
  fmt.Println("Olá, Golang!") // Imprimindo
}
/*
Para rodar e/ou compilar use respectivamente
$ go run hello.go

OU

$ go build hello.go
$ ./hello

*/

Bom, por esse Episódio 01 da Série Go já tá de bom tamanho, lhe espero nos próximos episódios!