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
echannels
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.