Bem-vindo à primeira aula do nosso curso de Go! Nesta aula, vamos explorar as origens da linguagem Go, entender quem a criou, por que ela foi criada e para onde está caminhando. Conhecer a história de uma linguagem ajuda a compreender suas escolhas de design e seu ecossistema.

Introdução

Go, também conhecida como Golang, é uma linguagem de programação compilada, estaticamente tipada, com sintaxe simples e suporte nativo a concorrência. Foi projetada para ser eficiente, legível e produtiva, especialmente em sistemas distribuídos e aplicações em nuvem. Desde seu lançamento oficial em 2012, Go conquistou uma comunidade vibrante e é usada por empresas como Google, Uber, Twitch e muitas outras.

Pessoas e cronologia (Rob Pike, Ken Thompson, Robert Griesemer, Google)

Go foi criado por três engenheiros do Google: Robert Griesemer, Rob Pike e Ken Thompson. A ideia surgiu em setembro de 2007, quando eles discutiam problemas com as linguagens existentes e a necessidade de uma nova linguagem que combinasse eficiência, simplicidade e segurança.

Rob Pike é conhecido por seu trabalho no Unix e no sistema operacional Plan 9, além de ter contribuído para o UTF-8. Ken Thompson é um dos criadores do Unix e da linguagem B, precursora do C. Robert Griesemer trabalhou em linguagens como Java e JavaScript, e trouxe experiência em compiladores. Juntos, eles iniciaram o projeto internamente no Google, e em novembro de 2009 a linguagem foi anunciada publicamente. A versão 1.0 foi lançada em março de 2012, marcando a estabilidade da linguagem.

Desde então, a linguagem evoluiu com contribuições da comunidade e da equipe central do Google. A cada seis meses, uma nova versão é lançada, trazendo melhorias e novas funcionalidades.

Por que o Go surgiu

O principal motivo para a criação de Go foi a insatisfação com as linguagens existentes no contexto de desenvolvimento de software em grande escala. Os criadores identificaram problemas como:

  • Compilação lenta: Linguagens como C++ demoravam para compilar grandes bases de código.
  • Gerenciamento de dependências complexo: Muitas linguagens não tinham um sistema de módulos integrado.
  • Concorrência difícil: Escrever código concorrente seguro e eficiente era complicado.
  • Falta de ferramentas: Ferramentas como formatação automática, análise estática e documentação integradas eram escassas.

Go foi projetado para resolver esses problemas: compilação rápida, sintaxe simples, suporte nativo a concorrência com goroutines e canais, um sistema de pacotes eficiente, e ferramentas como go fmt, go vet e go doc. Além disso, a linguagem incentiva boas práticas como a formatação padronizada e a ausência de herança de classes, favorecendo composição.

Futuro da linguagem

Desde sua criação, Go tem crescido consistentemente em popularidade. Em 2023, entrou no top 10 do índice TIOBE e é amplamente adotada em áreas como cloud computing, microsserviços, DevOps e infraestrutura como código. O futuro de Go parece brilhante, com a equipe principal focando em:

  • Melhorias no sistema de tipos: A introdução de genéricos (Go 1.18) foi um marco importante, e futuras versões devem aprimorar o suporte a tipos parametrizados.
  • Desempenho: Otimizações no compilador e na runtime, incluindo melhorias no garbage collector.
  • Ferramentas: Aprimoramento do gerenciamento de dependências com Go Modules e novas ferramentas de análise.
  • Ecossistema: Crescimento da biblioteca padrão e de pacotes de terceiros, especialmente para áreas como machine learning e WebAssembly.

Além disso, a comunidade está ativa, com conferências como GopherCon e uma vasta gama de recursos educacionais. Go se posiciona como uma linguagem essencial para o desenvolvimento moderno de software.

Boas práticas e observações finais

Ao estudar Go, lembre-se de que a simplicidade é um valor central. A linguagem foi projetada para ser fácil de aprender e ler, então evite complexidade desnecessária. Pratique a formatação com go fmt, use goroutines com cuidado e aproveite as ferramentas integradas. Agora que você conhece a história, está pronto para mergulhar na sintaxe e nos conceitos fundamentais.

Referências

Exercícios

  1. Quem são os três criadores do Go e em que ano a linguagem foi anunciada publicamente?
  2. ✓ Resposta: Robert Griesemer, Rob Pike e Ken Thompson. A linguagem foi anunciada publicamente em novembro de 2009.
  3. Cite dois problemas que motivaram a criação do Go.
  4. ✓ Resposta: Compilação lenta e concorrência difícil.
  5. Qual a principal característica de Go para lidar com concorrência?
  6. ✓ Resposta: Goroutines e canais.
  7. Em qual versão do Go foram introduzidos os genéricos?
  8. ✓ Resposta: Go 1.18.
  9. Qual ferramenta do Go é usada para formatar automaticamente o código?
  10. ✓ Resposta: go fmt.