Go Language – o que é e por que usar?

Facebooktwittergoogle_plusredditpinterestlinkedinmail

Vamos falar da linguagem Go, uma linguagem que nasceu nos escritórios do Google em 2007 como um projeto interno, através de Rob Pike, Ken Thompson e Robert Griessemer, e em novembro de 2009 foi lançado como um projeto de código aberto.

A linguagem Go é bastante inspirada na linguagem C, e apesar disso possui características de mais alto nível, dentre elas, abstração para estruturas de dados e garbage collection.

Go nasceu para resolver problemas como longo tempo de compilação e a dificuldade em escalar o desenvolvimento de grandes aplicações, além de tornar o desenvolvimento de servidores no Google algo mais produtivo e eficiente. Um controle inteligente e rigoroso de dependências, baseado na definição e uso de packages também fazem parte da linguagem.

Um dos pontos fortes da Go e um dos maiores diferencias, é a criação de aplicações concorrentes, aproveitando os processadores multi-core de forma mais simples e elegante. Go implementa goroutines, que são processos extremamente leves que se comunicam através de channels, evitando o uso de memória compartilhada e dispensando o uso de travas, semáforos e outras técnicas de sincronização de processos. Além de possuir uma extensa biblioteca padrão com ferramentas para comunicação em redes, servidores HTTP, expressões regulares, leitura e escrita de arquivos.

Outro ponto positivo da linguagem, é oferecer uma sintaxe bastante limpa, se comparada com outras linguagens inspiradas em C, como C++ e Java. Dessa forma Go permite a escrita de programas mais concisos e legíveis, além de facilitar muito a escrita de ferramentas que interagem com o código-fonte (go fmt e go fix, que servem para formatar o código e reescrever partes do código que usem APIs depreciadas para usarem novas APIs introduzidas em novas versões).

Tipagem forte e estática fazem parte da Go, junto com uma forma curta de declaração de variáveis baseada em inferência de tipos, evitando redundância, o que produz um código mais limpo do que linguagens tradicionais. Coleções de dados como slices (listas de tamanho dinâmico), maps (dicionários de dados associativos) e arrays (lista de tamanho fixo) são nativos da linguagem. Apesar de oferecer suporte ao uso de ponteiros, Go não oferece suporte à aritmética de ponteiros.

Go já possui alguns anos no mercado, e vem se tornando uma opção interessante para quem busca uma alternativa à linguagem C, ou precisa construir servidores, ou aplicações multi-thread, buscando um aumento da produtividade, e aplicações mais legíveis. A linguagem vem ganhando força e sendo cada vez mais usada dentro do Google, por exemplo, o servidor do site da linguagem é construído com Go, o servidor que entrega o binário do Google Chrome para download também é feito em Go. No momento da escrita desse post a linguagem está na versão 1.4.1.

O site oficial da linguagem é http://golang.org/
Você pode fazer o download da última versão da linguagem em https://golang.org/dl/

Uma dica importante, quando for pesquisar pela linguagem Go, pesquise por “golang“.

A linguagem traz algumas mudanças de paradigma para quem está habituado a trabalhar com linguagens como Java e C#, mas oferece recursos interessantes, e vale a pena ser avaliada para as situações citadas acima, além de ser open source, e ter o gigante Google por trás.

Vamos falar bastante da Go por aqui, e nos próximos posts, vamos ver como fazer a instalação da linguagem e suas ferramentas, como é sua sintaxe, criar aplicações de exemplo, comparar com outras linguagens para vermos as diferenças entre elas.

Quase 20 anos de experiência no mercado de TI.
Atuação em grandes empresas como Netshoes, Borland, JBS, Bradesco, Hospital das Clínicas, Rede, Prodam, HSPE, Instituto Ayrton Senna, e também em empresas internacionais como Delta Dental, T-Mobile, Pepsi e Mckesson.
Fundador da TecPrime Solutions, administrador da comunidade nopCommerce Brasil, e autor dos sites InvestFacil.net e Desenvolvedores.ninja

Facebooktwittergoogle_plusredditpinterestlinkedinmail

1 thought on “Go Language – o que é e por que usar?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *