Você está visualizando atualmente O que é Go / Golang – A linguagem de programação do Google

Como referenciar este texto: O que é Go / Golang – A linguagem de programação do Google. Rodrigo Terra. Publicado em: 20/06/2023. Link da postagem: https://www.makerzine.com.br/computador/o-que-e-go-golang-a-linguagem-de-programacao-do-google/ .


Conteúdos dessa postagem

O que é Go ou Golang?

Go, também conhecida como Golang, é uma linguagem de programação de código aberto desenvolvida pelo Google. Ela foi projetada para ser simples, eficiente, segura e produtiva. A linguagem foi criada em 2007 por Robert Griesemer, Rob Pike e Ken Thompson, e sua primeira versão estável foi lançada em 2012.

Uma das principais motivações por trás do desenvolvimento do Go foi abordar os desafios encontrados em sistemas de grande escala, como o gerenciamento de concorrência, eficiência de compilação e escalabilidade. A equipe de desenvolvimento do Go tinha como objetivo criar uma linguagem que combinasse a eficiência de linguagens de baixo nível, como o C ou C++, com a produtividade e a facilidade de uso de linguagens de alto nível, como Python ou JavaScript.

A sintaxe do Go é minimalista e fácil de ler, o que facilita a compreensão do código por parte dos desenvolvedores. A linguagem possui um conjunto de recursos poderosos que permitem a criação de programas eficientes e robustos. Alguns dos recursos notáveis do Go incluem:

  1. Gerenciamento de concorrência: O Go possui um modelo de concorrência baseado em goroutines, que são unidades leves de execução. As goroutines permitem que os programadores escrevam código concorrente de forma mais simples e segura, facilitando a criação de programas que aproveitam ao máximo o poder dos sistemas multi-core.

  2. Coleta de lixo eficiente: O Go possui um coletor de lixo (garbage collector) altamente otimizado, que gerencia automaticamente a alocação e liberação de memória. Isso ajuda os desenvolvedores a evitar vazamentos de memória e torna a programação em Go mais segura e menos suscetível a erros comuns.

  3. Compilação rápida: O compilador do Go é extremamente rápido, o que permite um rápido ciclo de desenvolvimento. Os tempos de compilação curtos são especialmente importantes em projetos de grande escala, onde os desenvolvedores precisam fazer alterações frequentes no código.

  4. Biblioteca padrão abrangente: O Go vem com uma biblioteca padrão abrangente, que oferece suporte a uma ampla gama de funcionalidades, desde manipulação de strings e arquivos até comunicação de rede e criptografia. A biblioteca padrão do Go é bem projetada e é considerada uma das suas maiores vantagens, pois evita a dependência excessiva de bibliotecas de terceiros.

Além desses recursos, o ecossistema do Go é vibrante, com uma comunidade ativa de desenvolvedores que contribuem com bibliotecas e ferramentas. O Go é amplamente utilizado em diversas áreas, como desenvolvimento de aplicativos web, serviços de backend, sistemas distribuídos e até mesmo para desenvolvimento de software embarcado.

Em resumo, a linguagem de programação Go foi desenvolvida para fornecer uma combinação única de desempenho, facilidade de uso e produtividade. Ela é especialmente adequada para o desenvolvimento de sistemas escaláveis e concorrentes, oferecendo uma sintaxe simples, um conjunto de recursos poderosos e uma biblioteca padrão abrangente. Sua filosofia de design é centrada na simplicidade, legibilidade e eficiência, o que a torna uma escolha popular entre muitos desenvolvedores.

Uma das características notáveis do Go é a sua forte ênfase na legibilidade do código. A sintaxe da linguagem foi projetada para ser clara e concisa, o que facilita a compreensão do código tanto para o programador original quanto para outros colaboradores. Isso contribui para uma maior facilidade de manutenção e colaboração em projetos de longa duração.

Além disso, o Go possui um sistema de tipos estático, o que significa que as variáveis devem ser declaradas com um tipo específico e as verificações de tipo são realizadas em tempo de compilação. Isso ajuda a evitar erros comuns e fornece uma maior segurança e confiabilidade ao código.

Outra característica importante do Go é o seu suporte nativo para concorrência e programação assíncrona. Através das goroutines e dos canais (channels), é possível criar programas concorrentes de forma mais simples e segura. As goroutines são leves e permitem que várias tarefas sejam executadas simultaneamente, enquanto os canais facilitam a comunicação e a sincronização entre as goroutines. Esses recursos são especialmente úteis em cenários onde o desempenho e a eficiência são cruciais, como servidores web e sistemas distribuídos.

Outro aspecto importante do Go é a sua eficiência. A linguagem foi projetada para ter um desempenho próximo ao de linguagens de baixo nível, como C ou C++, ao mesmo tempo em que mantém a simplicidade e a facilidade de uso. O compilador do Go produz código eficiente e otimizado, e o garbage collector incorporado ajuda a gerenciar a alocação de memória de forma eficiente.

O ecossistema do Go é rico em bibliotecas e ferramentas de terceiros, o que contribui para a produtividade dos desenvolvedores. A linguagem possui um sistema de gerenciamento de pacotes chamado Go Modules, que facilita o compartilhamento e a reutilização de código entre projetos. Além disso, existem frameworks e bibliotecas populares para o desenvolvimento web, como o Gin e o Echo, assim como bibliotecas para tarefas específicas, como processamento de dados, autenticação, criptografia e muito mais.

Como a linguagem foi desenvolvida?

A linguagem de programação Go foi desenvolvida por uma equipe de engenheiros do Google, liderada por Robert Griesemer, Rob Pike e Ken Thompson. O projeto teve início em 2007 e foi motivado por uma série de desafios encontrados no desenvolvimento de software em larga escala no Google e em outros lugares.

A equipe tinha como objetivo criar uma linguagem que combinasse eficiência e desempenho de linguagens de baixo nível, como C ou C++, com a facilidade de uso e a produtividade de linguagens de alto nível, como Python ou JavaScript. Eles queriam criar uma linguagem que pudesse lidar com a complexidade e a escala dos sistemas modernos, com suporte nativo para concorrência e uma sintaxe simples e legível.

Ao desenvolver o Go, a equipe se baseou em décadas de experiência em programação de sistemas e linguagens de programação. Rob Pike e Ken Thompson, por exemplo, tiveram um papel fundamental na criação da linguagem de programação C e do sistema operacional Unix. Essa experiência permitiu que eles aplicassem princípios de design eficientes e refinados à criação do Go.

A equipe de desenvolvimento do Go também realizou pesquisas extensas sobre outras linguagens existentes para identificar os pontos fortes e fracos de cada uma. Eles buscaram inspiração em várias linguagens, incluindo C, Pascal, Alef e outras. A partir dessas pesquisas e experiências, eles começaram a projetar uma linguagem nova e moderna, com foco em simplicidade, legibilidade, eficiência e concorrência.

Após vários anos de desenvolvimento e iterações, a primeira versão estável do Go foi lançada em março de 2012. Desde então, a linguagem tem evoluído continuamente com novos recursos, melhorias de desempenho e correções de bugs. O Go é uma linguagem de código aberto, e a comunidade de desenvolvedores ao redor dela tem desempenhado um papel importante na sua evolução, contribuindo com bibliotecas, ferramentas e feedback valioso para o aprimoramento contínuo da linguagem.

Quem é o Gopher?

O “bichinho” presente na logo do Go, também conhecido como Gopher, é o mascote oficial da linguagem de programação Go. Ele se tornou um símbolo icônico da comunidade Go.

O Gopher é uma representação estilizada de um tatu, um animal nativo das Américas. A escolha do tatu como mascote foi feita por Renée French, uma artista gráfica contratada pelo Google para criar o mascote. O tatu foi escolhido para refletir características associadas à linguagem Go, como robustez, tenacidade e a capacidade de cavar fundo, ou seja, solucionar problemas de forma eficiente.

A mascote Gopher é frequentemente retratada em diversas poses e situações em materiais de promoção, adesivos, camisetas, ilustrações e outros itens relacionados à linguagem. A presença do Gopher contribui para a identidade visual reconhecível do Go e cria uma conexão emocional com a comunidade de desenvolvedores.

É importante destacar que o Gopher é um elemento distintivo da linguagem Go, mas não possui um significado técnico ou funcional específico dentro da própria linguagem. Sua principal função é representar e promover a linguagem Go, tornando-a mais familiar e divertida para os desenvolvedores.

Primeiro programa em Go

				
					//Desenvolvido por Rodrigo Terra - MakerZine
//Para mais detalhes, acesse: https://www.makerzine.com.br

// Essa é o arquivo principal
package main

//Importando pacotes / biliotecas
import "fmt"

//Definindo a função principal
func main() {

	//Exibindo mensagens
	fmt.Println("Olá, mundo!")
	fmt.Println("Esse é o meu 1º programa feito com a linguagem Go!")
}
				
			

No prompt, basta digitar “go run main.go“, dentro do diretório onde você salvou a programação acima, para ver o programa em execução.

Saiba mais ...

Go em 1 minuto: #4 Strings

Enunciado do exercício Desenvolva um programa, em Go, que: Apresente uma frase em que algumas strings são concatenadas. Resolução em vídeo Resolução Repositório Github Caso

Saiba mais ...

Go em 1 minuto: #5 Booleanos

Enunciado do exercício Desenvolva um programa, em Go, que: Apresente o resultado de algumas operações com booleanos. Resolução em vídeo Resolução Repositório Github Caso queira

Saiba mais ...

Rodrigo Terra

Atuei como Professor de Física e Cultura Maker, por mais de 20 anos. Sou Pesquisador em Ciências Educacionais com ênfase em Tecnologia Educacional e Docência. desenvolvendo trabalhos de Consultorias Pedagógicas para diversas empresas do setor educacional. Há alguns anos, venho direcionando meus estudos para o universo dos dados e programação. Atualmente, trabalho como Líder Acadêmico de matérias técnicas, como Data Analytics, Gestão de Produtos Digitais e Mercado Financeiro. Sou um eterno curioso, apaixonado por café e por uma boa conversa. Acredito que somente com uma formação transdisciplinar é que criamos oportunidades pensar em diferentes aspectos ou ponto de vista de um mesmo assunto, e com isso, desenvolver pessoas mais conscientes e preparadas para a vida.

Deixe um comentário