Por que utilizar Go/Golang no seu backend?

Com o respaldo dos criadores do Unix, UTF-8 e Google, a Golang promete ser rápida, simples e legível.

por Ulysses Marins 28/06/2016 ~ 3 min. / 492 palavras

O tempo passa e quando você é viciado no que faz, no meu caso, codar, a busca por se aprimorar ou descobrir novas maneiras de resolver os problemas da sua área nunca param, assim sendo, um belo dia, cheguei até o Go e desde então não parei mais de aprender sobre a linguagem. A ideia é a cada semana fazer um post sobre, iniciando agora com uma simples introdução e sugestões de artigos para se animar.

 

O que é Go/Golang?

Go ou Golang – termo que facilita buscas no google – é uma linguagem open source criada em 2009 pelo Google, mais especificamente por caras como Rob Pike e Ken Thompson. Caso você não conheça, são engenheiros renomados, que tiveram grande influência na história da computação e em projetos open source de grande escala, pra citar um bem “simples”: Unix.

Só por esta constatação, você já poderia largar tudo e seguir os passos deles cegamente, afinal, Rob e Ken provavelmente não estariam trabalhando em algo meia boca. Brincadeiras à parte, a Go foi criada com objetivos simples, dentre os principais, ter a rapidez do C, mas ser um pouco mais legível e/ou fácil de programar. Inclusive, nos meus primeiros passos com a linguagem, pude sentir exatemente isso. Aqui tem um vídeo bem massa do Rob dizendo o porquê você deve aprender Go.

Por que eu usaria Go?

Acima, eu disse algumas vantagens de utilizar a linguagem, porém, a lista é bem mais vasta. Tentarei compilar os pontos que mais me chamam atenção e que possivelmente seriam casos de uso para você utilizá-la:

  • Go é incrivelmente ‘leve’ em termos de uso de memória. Existe um caso conhecido de uma companhia que rodava um serviço em Ruby utilizando 50 servidores e foram para 2 com Go.
  • Concorrência é um dos pontos fortes da linguagem, se você precisar sobrecarregar um backend com diversos processamentos simultâneos, as goroutines e channels vão te ajudar bastante.
  • Compila muito rápido.
  • Tem garbage collector, você não precisa se preocupar tanto com memória como nos seus dias de C.
  • É fortemente tipada. (eu pelo menos acho isso bom, phpeiros)

Quem está usando Go?

Existe uma infinidade de empresas que ao descobrirem os poderes mágicos de Go, foram migrando seus serviços/backend. Abaixo algumas grandes:

  • Uber – How we built uber engineering’s highest query per second service using Go
  • Docker – Why did we decide to write Docker in Go?
  • Dropbox – Open sourcing our Go libraries
  • OpenShift – OpenShift3 and Go – Teaching Old Dogs New Tricks
  • Twitter – Handling five billion sessions a day – in real time

Enfim, existem muito mais empresas que se importam e/ou tem necessidade de melhorar a performance de seus serviços e grande parte delas estão olhando para Go e outras linguagens com poderes maiores do que as ‘enterprise languages’ que vemos há anos por aí nas grandes empresas do país.

Espero que o post tenha sido informativo e inspirador para você descobrir mais sobre a linguagem Go.