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.