Quando o Índice Tiobe apontou o Google Go como a linguagem de programação de 2016, muita gente foi pega de surpresa.
Google Go foi criada em 2009 e em apenas sete anos subiu ao topo das linguagens mais requisitadas, sendo aplicada no Facebook, no SoundCloud, nos sites oficiais da BBC e do governo do Reino Unido.
Seus autores são três funcionários do Google, Robert Griesemer, Rob Pike e Ken Thompson. Segundo eles, “Go é uma tentativa de combinar a facilidade de programação de uma linguagem interpretada, dinâmica com a a eficiência e a segurança de uma linguagem compilada estática”. Embora esse artigo não tenha a pretensão de ensinar a você como programar em Go, nosso objetivo é apontar a direção certa para mergulhar de cabeça na linguagem.
1) Introdução a Go
O ponto inicial para começar a entender a Go é no próprio site oficial. Lá será possível obter toda a documentação oficial e os binários necessários para se desenvolver com a linguagem. O endereço até mesmo conta com um editor simplificado e alguns exemplos bem práticos para dar os primeiros passos, desde o tradicional “Hello, World” até uma função para calcular o valor de Pi e demonstrar a capacidade da linguagem de lidar com números grandes em processos concorrentes.
Se o inglês não está tão afiado assim, existe um endereço que é praticamente uma réplica do site oficial, mas com quase tudo traduzido para o Português: Golang Brasil. Encarnando o espírito do projeto, o próprio site está em código-aberto disponível no Github e qualquer um pode ajudar a dar manutenção.
Uma outra boa recomendação é fazer essa turnê introdutória da linguagem Go.
2) Cursos Online Econômicos
Quer você seja um autodidata ou não, um bom curso pode ajudar a iniciar sua caminhada em uma nova caminhada, afiar os conhecimentos que você já tem ou mesmo ensinar truques e meandros da linguagem que você não havia percebido. Em muitos casos, nem precisa gastar muito dinheiro:
- Udemy: Learn How To Code: Google’s Go (golang) Programming Language – Em inglês. Carga horária: 21 horas. Custo: R$38 (valor promocional por tempo limitado).
- Udemy: Linguagem Go Para Iniciantes – Em Português. Carga horária: 6 horas. Custo: R$38 (valor promocional por tempo limitado).
- Eduonix: The Go Programming Language Guide – Code Like a Pro – Em inglês. Carga horária: 5 horas. Custo: US$19 (valor promocional por tempo limitado).
- School of Net: Go Lang – Em Português. Existe uma seção inteira dedicada a cursos da linguagem na plataforma de e-learning e o primeiro deles é gratuito.
- Eu Programador – Go Lang – Em Português. Conjunto de 14 videoaulas gratuitas no YouTube.
- Mastering Go Programming – Em inglês. Carga horária: 20 horas. Custo: US$60.
- Go Fundamentals – Em inglês. Carga horária: 16 horas. Custo: gratuito.
3) Ferramentas
A ferramenta certa para a tarefa certa é fundamental para se aventurar em uma nova linguagem de programação. Felizmente, a maioria das tradicionais IDEs e editores de texto já contam com plugins ou suporte nativo para lidar com Go:
- Atom: Suporte à linguagem com o go-plus.
- BBedit: Suporte à linguagem com o Go-bbpackage.
- Brackets: Suporte a linguagem com o go-ide.
- Eclipse IDE: Suporte a linguagem com o GoClipse.
- Emacs: Suporte a linguagem com o Go-mode, GoFlyMake e go-errcheck.el.
- Gedit: Suporte a linguagem com o plugin.
- Geany: Suporte a linguagem nativo.
- GoWorks: IDE baseada no NetBeans com suporte a linguagem nativo.
- IntelliJ IDEA: Suporte a linguagem com o plugin.
- joe: Suporte a linguagem nativo.
- Komodo IDE: Suporte a linguagem nativo.
- Komodo Edit: Suporte a linguagem com o plugin.
- LiteIDE: Suporte a linguagem nativo.
- Notepad++: Suporte a linguagem com o notepadplus-go, o plugin GOnpp (fontes, binários) e GoAutocomplete.
- Sublime Text: Suporte a linguagem com coleção de plugins.
- Textadept: Suporte a linguagem nativo.
- TextMate: Suporte a linguagem com o Bundle for Go.
- Vim & Neovim: Suporte a linguagem com:
- Visual Studio: Suporte a linguagem com a extensão Go Language Support.
- Visual Studio Code: Suporte a linguagem com o plugin vscode-go.
- Zeus: Suporte a linguagem nativo.
Além destas opções, existem IDEs que funcionam diretamente na nuvem e oferecem suporte nativo à linguagem Go:
4) Livros Recomendados
Ninguém tem um computador na cabeça e um bom livro sobre uma linguagem de programação pode funcionar tanto como uma fonte inicial de aprendizado, como uma constante fonte de referência. Confira nossa lista de recomendações para Go:
- Programando em Go: crie aplicações com a linguagem do Google (Caio Filipini). Em Português.
- Go Programming (John P. Baugh). Em Inglês.
- The Way to Go: A Thorough Introduction to the Go Programming Language (Ivo Balbaert). Em Inglês.
- The Go Programming Language Phrasebook (David Chisnall). Em Inglês.
- Programming in Go: Creating Applications for the 21st Century (Mark Summerfield). Em Inglês.
- Introdução à Linguagem Go (Caleb Doxsey). Em Português.
- Go Bootcamp: Everything you need to get started with Go (Matt Aimonetti). Em Inglês. Gratuito.
- Mastering Concurrency in Go (Nathan Kozyra). Em Inglês.
- The Little Go Book (Karl Seguin). Em Inglês. Gratuito.
- Go Programming Blueprints (Mat Ryer). Em Inglês.
- Level Up Your Web Apps With Go (Mal Curtis). Em Inglês.
- Mastering Go Web Services (Nathan Kozyra). Em Inglês.
- Go em Ação (William Kennedy, Brian Ketelsen e Erik St. Martin). Em Português.
- The Go Programming Language (Addison-Wesley Professional Computing Series) (lan A.A. Donovan e Brian Kernighan). Em Inglês.
- Web Development with Go: Building Scalable Web Apps and RESTful Services (Shiju Varghese). Em Inglês.
- Write webapps in Go without using a framework (Suraj Patil). Em Inglês. Gratuito.
- Learning Go Web Development (Nathan Kozyra). Em Inglês.
- Go Web Programming (Sau Sheong Chang). Em Inglês.
- Go in Practice (Matt Butcher e Matt Farina ). Em Inglês.
- Learning Go programming (Vladimir Vivien). Em Inglês.
- Go Recipes (Shiju Varghese). Em Inglês.
5) Comunidades de Desenvolvedores
Interagir com a comunidade de desenvolvedores que já tem experiência na linguagem ou com outros iniciantes com as mesmas dúvidas e descobertas também é um caminho fundamental para aprender sobre Go, além de uma ótima oportunidade de estabelecer laços profissionais e pessoais duradouros. Confira algumas das melhores comunidades relacionadas a Go na web:
- Golang Brasil
- The Go Forum
- Godoc.org
- Gopher Slack
- Dúvidas de Go no Stackoverflow
- Go+ no Google Plus
- golang-nuts mailing list
- #go-nuts no IRC