terça-feira, 1 de setembro de 2015

Olá, Gopher!


O Google desenvolveu uma nova linguagem de programação, chamada Go, que tem uma proposta moderna e inovadora. Go é uma linguagem compilada, estaticamente tipada, e que foi inicialmente projetada para ser um substitudo de C. Com uma sintaxe simples e concisa, recursos de programação concorrente avançados, e com uma runtime e garbage collector, Go possui recursos avançados de programação.

Neste artigo nós vamos dar os primeiros passos em Go, instalando o compilador em ambiente Linux e escrevendo nosso primeiro programa. Neste artigo vamos explorar também algumas das características do Go que o tornam atrativo para o programador de hoje em dia.

Obtendo o compilador Go

Como é uma linguagem compilada, você vai precisar de um compilador Go. Existem aqui duas opções: você pode utilizar o GCC, se já está acostumado, pois o gccgo já faz parte das edições mais recentes do compilador Gnu. Eu recomendo a segunda opção: utilizar a compilador e a coleção de ferramentas do próprio Go. Além de vários recursos extras, o compilador oficial recebe os recursos novos primeiro.

Para obter o compilador Go, faça o download no site oficial da linguagem em https://golang.org/dl/. No site você pode escolher a versão correta para seu sistema operacional e arquitetura, e então seguir as instruções para instalar em seu sistema Operacional. Em sistemas Linux, basta extrair o arquivo baixado (.tar.gz) em sua pasta /usr/local. Em seguida, você pode então configurar a variável PATH para incluir a pasta onde o Go foi instalado.

Se você utilizar Linux, e seu computador for de 64 bits, pode utilizar estes comandos:

$ curl https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz | sudo tar -C /usr/local -xzf -
$ echo 'export PATH=$PATH:/usr/local/go/bin' >> .bashrc

Desta forma, basta você recarregar seu shell e confirmar que o Go está instalado:

$ go version
go version go1.5 linux/amd64


Agora vamos a uma etapa da isntalação que é importante. O Go assume que você vai guardar seus arquivos em uma pasta especial, chamada GOPATH. O compilador vai usar essa variável para encontrar seu código, bem como as dependências de terceiros que você utilizar. Imagine que isso é o equivalente à dezenas de milhares de -I e -L para compilar código C, ou configurar o CLASSPATH do compilador Java. Em Go, sempre preferimos convenção a configuração, e isso traz benefícios logo de início!

Escolha uma pasta onde você vai guardar seus projetos Go. Se estiver com dúvidas, você pode fazer a sua pasta principal ser a pasta do GOPATH:

$ echo 'export GOPATH=$HOME' >> .bashrc
$ echo 'export PATH=$PATH:$GOPATH/bin' >> .bashrc

Note que na segunda linha, eu adicionei mais um diretório ao PATH: o GOPATH/bin, que é onde o Go instala os programas. Isso faz com que logo depois de compilar e instalar localmente seus programas Go, eles já estão prontos para uso!

Seu primeiro programa Go

Agora que você já tem o comando go instalado, vamos usá-lo para criar nosso primeiro programa. O programa deve ser salvo na pasta src/hello de seu $GOPATH.

Vamos criar o arquivo hello.go com o seguinte conteúdo:

package main

import (
    "fmt"
)

func main() {
    fmt.Println("Hello, world!")
}

Salve o arquivo e em seguida, execute o comando go build:

~/src/hello$ go build
~/src/hello$ ls
hello  hello.go


Agora vamos executar nosso programa:

~/src/hello$ ./hello
Hello, world!


Pronto! Você acaba de criar seu primeiro programa em Go. O comando go build executa o processo de compilar e linkar seu programa, ou seja, ele irá transformar seu código fonte em um arquivo binário executável, estaticamente linkado. Isso significa que você pode simplesmente copiá-lo e executá-lo em outro computador com a mesma arquitetura/sistema operacional, as biblitoecas, a Runtime do Go e o Garbage collector são todos inclusos em seu programa.

Neste artigo não vamos entrar em detalhes sobre a sintaxe, mas como você pode notar no exemplo acima, ela é simples e elegante, direto ao ponto. Eu vou começar aqui uma série de posts sobre como programar em Go, todos com a tag golang, então fique de olho!

Poste nos comentários o que gostaria de aprender sobre Go, ou se você já utiliza, compartlhe o que achou da linguagem!

Happy Hacking!

The Go Gopher is a creation of Renee French, under Creative Commons 3.0.