Skip to content

Go Lang

Luan Freitas edited this page Nov 23, 2019 · 2 revisions

# Go Lang – a linguagem do Google

A Go é uma linguagem que nasceu em 2007 com três necessidades básicas do Google: desempenho, escalabilidade e facilidade de manutenção.

Com esses objetivos em foco, o Google montou um time de especialistas com ninguém menos do que Rob Pike, Ken Thompson e Robert Griesemer, gurus da tecnologia, colaboradores chave de projetos como o sistema UNIX, o padrão UTF-8, o motor JavaScript V8, entre outros.

Em 2009, ele foi oficialmente lançado, ficando em fase beta até 2011 – o que chamam de fase Pré-Go, que foi até o release 60. A partir de então, a Go evoluiu constantemente e hoje está na versão 1.6.

Por que Go?

O Google, cansado de ter de gerir projetos com complexidade cada vez maior em tecnologias já conhecidas (principalmente em Python), percebeu que seria economicamente viável produzir uma linguagem do zero, que suportasse nativamente o que importa, facilitasse a programação para o desenvolvedor e acelerasse o desenvolvimento e a evolução de projetos complexos. Dessa forma, a empresa definiu algumas diretrizes que caracterizam o Go:

Programação concorrente/paralela nativa: Chega de usar bibliotecas e extensões para habilitar essa funcionalidade.

  • Desempenho: Baseado em C, é altamente otimizado.

  • Multiplataforma: Atualmente possui versões para Linux, Windows, Mac OS, FreeBSD e mobile.

  • Open Source: Permite à comunidade evoluir continuamente a solução – atualmente são mais de 850 colaboradores.

  • Facilmente escalável: Permite a escalabilidade ser feita de maneira quase transparente.

  • Compilado: Fornece desempenho que apenas código compilado é capaz de fornecer, por meio de dois compiladores, o gc e o gccgo.

  • Garbage Collector Nativo: Recurso muito apreciado em linguagens de alto nível como C# e Java, o Google incorporou o Garbage Collector para facilitar a vida do programador, que não precisa mais se preocupar em “limpar seu rastro” na memória.

  • Memory Safe: O Go tem uma gestão própria de memória e threads transparente ao programador, fazendo a gestão de forma automática, evitando os famosos problemas da linguagem C de alocação e invasão de memória.

  • Simplista ao extremo: Como o foco é a velocidade, a simplicidade anda junto e foram removidos recursos de linguagens de alto nível, como Classes, Heranças, Overloads de Métodos, Try/Catchs, Ternários etc. O foco é sempre a simplicidade, para o desenvolvedor que pegar o código perceber as funcionalidades assim que abrir o arquivo .go.

Por onde começar

Site oficial do Go, contendo todas as informações e documentações que podem ser acessadas: https://golang.org/.

Playground do Go, para programar e testar à vontade, sem ter que montar o ambiente na sua máquina: https://play.golang.org/.

Clone this wiki locally