O projeto do Golang foi lançado em setembro de 2007 por Robert Griesemer , Rob Pike e Ken Thompson . O propósito que levou eles criarem a linguagem era “desenvolver uma linguagem de programação que seria fácil de usar” . Segundo Robe Pike um dos objetivo seria eliminar a lentidão e melhorar o processo de desenvolvimento do google com foco em produtividade e escalabilidade.

Uma breve descrição sobre os criadores.

1 - Robert Griesemer

Robert Griesemer é um cientista da computação suíço. Ele é mais conhecido por seu trabalho na linguagem de programação Go. Antes de criar-la, ele trabalhou no mecanismo JavaScript V8 do Google, na linguagem Sawzall, na máquina virtual Java HotSpot e no sistema Strongtalk.

2 - Rob Pike

Robert C. Pike é um engenheiro de software e escritor. Foi responsável pelo projeto dos sistemas operacionais Plan 9 e Inferno, e da linguagem de programação Limbo, quando trabalhou na equipe que desenvolveu o sistema Unix, nos laboratórios Bell. Ele também trabalhou no terminal gráfico Blit, após ter escrito o primeiro sistema de janelas para o Unix, em 1981. Também escreveu editores de texto como o Same o Acme, que continuam em desenvolvimento e ainda hoje são utilizados.

3 - Ken Thompson

Kenneth Thompson é um cientista da computação, conhecido pela sua influência na criação do sistema operacional UNIX, pela invenção da linguagem de programação B, antecessora da linguagem de programação.Thompson também é conhecido por outros trabalhos, como o sistema operacional Plan 9, suas contribuições na definição da codificação de caracteres UTF-8, tabelas finais e a máquina de xadrez Belle.

Temos varias característica que determina essa linguagem como uma boa escolha para sua lista de linguagem favoritas, que são:

  • Compilada.
  • Garbage-collected.
  • Go Runtime próprio.
  • Sintaxe simples.
  • Multiplataforma.
  • Orientada a Objetos (sem herança).
  • Estaticamente e fortemente tipada.
  • Concorrente.
  • Suporte a clossures.
  • Funções de múltiplos retornos.
  • Ponteiros.

A sintaxe da linguagem tem em torno 25 palavras-chaves, ou seja, sintaxe curta, com isso proporcionando um jeito simples de entender o que está acontecendo nos seus programas.

Golang é para ser rápido, como já mencionado, e trabalha com concorrência e paralelismo.

1 - Concorrência

Concorrência ocorre quando existem dois ou mais processos executados em simultâneo; mais especificamente, o termo é utilizado quando processos disputam o acesso a recursos partilhados.

2 - Paralelismo

Paralelismo é uma forma de computação em que vários cálculos são realizados ao mesmo tempo, operando sob o princípio de que grandes problemas geralmente podem ser divididos em problemas menores, que então são resolvidos concorrentemente (em paralelo).

Com isso, chegamos ao goroutine, que é uma função que pode ser executada simultaneamente com outras funções. Tendo em vista que podemos considerá-las como threads, mas com diferenças entre si.

Goroutines são extremamente baratas quando comparadas com threads. Elas ocupam poucos kb no tamanho da pilha, e a pilha pode crescer e encolher de acordo com a necessidade da aplicação, enquanto que no caso de threads o tamanho da pilha deve ser específico e fixo.

Para aprimorar a goroutines podemos utilizar o Go Channels (que servem como conectores). Nos channels podemos enviar valores para os canais com o intuito de compartilhar dados entre os goroutines .

Com base em todas as característica porque não realizar a instalação ? A instalação é muito simples, segue nos sistema MacOs e Linux .

1 - MacOs

$ brew install golang

2 - Linux

$ apt install golang

Para validar se o golang foi instalado conforme esperado segue o comando:

$ go version

A saída esperado para o comando acima é:

$ go version go1.15.6 darwin/amd64

Conclusão.

Existem muitas característica que podemos levar em consideração a aprender golang hoje. Esse é o primeiro de muitos artigos que você irá vê por aqui. : )

Aguardem próximos capítulo.