BLOG

I’m smart enough to know that I’m dumb.

Porque gosto tanto da linguagem GO

Rápida performance

Go é compilado, isso significa que o código é convertido em código de maquina, onde o processador pode consumir sem ter que interpretar um script.

Isso faz com que Go seja uma linguagem rápida, podemos colocar o Go entre C++ e Java em termos de velocidade, batendo Java em quase todos os benchmarks.

go vs others runtimes

Compilação rápida = rápido Feedback de desenvolvimento

Falando do tempo de compilação do código, Go tem uma compilação extremamente rápida, e essa é uma grande vantagem em relação a Java e C++, você mal vai perceber que o código foi compilado de tão rápido. Isso faz muita diferença no dia a dia que você quer testar seu código inúmeras vezes ao dia.

compiling fast

Baixa complexidade

Programadores migram fácilmente de outras linguagem para Go, é fácil de ler e produzir, os criadores do Go procuraram manter a simplicidade na linguagem.

how productive you feel

veja um exemplo:

package main
import (
 "fmt"
 "time"
)
func hello() {
 fmt.Println("Hello world goroutine")
}
func main() {
 go hello()
 time.Sleep(1 * time.Second)
 fmt.Println("main function")
}

Portabilidade

Go tem poucas dependências e cria binários facilmente para práticamente qualquer sistema operacional. A grande vantagem de ser compilável é que as dependências são resolvidas durante a compilação e não durante a interpretação, ou seja, você não precisa ficar resolvendo dependências para cada máquina que for rodar a aplicação. Se você está escrevendo uma aplicação para usuários finais é muito conveniente, você faz o build e os usuários apenas precisam o executar.

Aqui vai um exemplo de como compilar um binário para windows usando linux.

primeiro você define algumas variáveis de ambiente e depois chama o comando de build:

GOOS=windows GOARCH=386 go build -o hello.exe hello.go

fácil, não ?

Feito para usar concorrência

Go é feito nativamente para usar concorrências de forma eficiente e abstraída, você cria goroutines e o Go se encarrega em alocar elas em threads e gerênciar possíveis conflitos de concorrências entre elas. Isso permite a desenvolvedores com pouca experiência aproveitar as arquiteturas atuais de vários núcleos de processamento.

Veja esse simples exemplo

Pouco Verboso

Apesar de ser sim verboso comparado a python, linguagens compiladas costumam ser verbosas, mas é Go muito menos verboso que C++, C# ou Java.

Garbage Collector

Go tem um ótimo garbage Collector. Go consome pouquíssima memória

Resumindo

  • Alta performance
  • Compilação rápida
  • Facilidade de gerenciamento de concorrências e memórias
  • Baixo consumo de memória
  • Sintaxe simples

Acredito que tais qualidades trouxeram Go para para o ranking das linguagens mais amadas e desejadas como podemos ver nos Surveys do stackoverflow dos últimos. Para mim GO não é Hype, é uma linguagem moderna que veio para ficar.

most loved languages desired language

Fontes: