GO além do Pokémon, por que essa linguagem merece atenção?

Eliseu Codinhoto (@zeucxb)
3 min readAug 5, 2016

--

Eu tenho um problema, um problema sério a respeito de linguagens de programação. Simplesmente não consigo parar, não consigo para de estudar, descobrir, brincar e aprender com elas.

Bem, após minha confissão de dependência no estilo alcoólicos anônimos, vamos ao ponto.

Em uma das minhas recaídas no estudo viciante de novas linguagens acabei trombando com uma coisa incrível.

Pokémon.go

O mascote mais criativo que já vi na vida rs.

Mas não foi só isso, GO não é apenas uma linguagem descolada com um mascote fofinho, pelo contrário é uma linguagem fascinante, completa, elegante e muito mais… E eu poderia passar o artigo inteiro falando de como essa linguagem me surpreendeu, mas esse não é o ponto em questão aqui.

A coisa que me chamou atenção em GO a ponto de me fazer escrever sobre isso foi sua filosofia, seus porquês no modo como trabalha.

  • Desenvolvimento rápido vs Desempenho?
  • Reutilizar código de modo eficiente?
  • Aproveitar ao máximo o ambiente (CPU, Núcleos)?
  • Compilar como um "raio"?
REQUESTS PER SECOND

Qual desses pontos chamou mais minha atenção?

Nenhum. Na verdade tudo isso é incrível, mas ainda não é sobre isso que quero falar.

No livro "Go em ação" — Willian Kennedy, Brian Ketelsen e Erik St. Martin escreveram o seguinte:

A maior parte dos programas não é mais escrita por um único desenvolvedor: os programas são escritos por equipes de pessoas que estão em fusos horários distintos e trabalham em horários diferentes do dia. Projetos grandes são divididos em partes menores, atribuídas a programadores que, então, entregam seus trabalhos de volta à equipe na forma de bibliotecas ou pacotes, os quais podem ser usados em todo um conjunto de aplicações.

Os programadores e as empresas de hoje acreditam, mais do que nunca, na eficácia do software de código aberto.

FREE and OPENSOURCE

É isso… Se tem uma coisa que realmente mudou e vem mudando minha vida como desenvolvedor é o prazer de criar e compartilhar códigos, a sensação de colocar algo que você criou no github e receber uma star ou um pull request é muito gratificante.

Mas não é só isso, já faz um tempo que venho tentando encontrar a maneira ideal de organizar meus códigos para aumentar seu reuso. E existe forma melhor do que criando pacotes com funcionalidades separadas e bem definidas?

Melhor ainda, que tal se eu criar pacotes separados, modulares, reutilizáveis, com funções bem definidas e puder compartilhar isso.

Imagina que fantástico ter os pacotes que uso em meus projetos separados com suas funcionalidades, recebendo atenção e manutenção de todo o mundo, online e de graça.

Imagina o quanto temos a aprender com um sistema desse tipo, vendo as diferentes formas de pensar e organizar a mesma coisa, aprendendo com nossos erros e a comunidade.

OPENSOUCER BITCH

Certo, você pode discordar de mim, existem sempre prós e contras, e opiniões diferentes, afinal, você não é obrigado a pensar como eu, e isso que é legal.

Mas convenhamos, uma linguagem que tem esse tipo de pensamento sobre software e a comunidade merece nossa atenção.

--

--