Eu mexo em Python, linguagem C, C#, JavaScript, estou estudando Java, PHP. Eu ainda não usei a linguagem Go, como ela é?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Eu mexo em Python, linguagem C, C#, JavaScript, estou estudando Java, PHP. Eu ainda não usei a linguagem Go, como ela é?
Oi, Maria.
Que legal ver seu interesse em expandir seu leque de tecnologias! Você já tem uma base excelente com linguagens de diferentes paradigmas, o que vai tornar o entendimento sobre o Go (ou Golang) muito mais tranquilo.
Desenvolvido pelo Google, o Go surgiu para resolver problemas específicos de grandes sistemas: lentidão na compilação, excesso de complexidade e dificuldade em lidar com múltiplos processos ao mesmo tempo.
As principais características que definem essa linguagem:
Diferente de C# ou Java, o Go evita recursos complexos. Ele não tem herança de classes, não tem exceções (try/catch) e possui apenas uma estrutura de repetição: o for. A ideia é que o código seja lido de forma direta, quase como se fosse um manual de instruções.
Assim como C e C#, o Go é compilado diretamente para linguagem de máquina. Isso o torna muito rápido. No entanto, ele oferece a conveniência de um Garbage Collector, que gerencia a memória para você, aproximando a experiência de uso à do Python ou Java.
Este é o grande diferencial. O Go foi desenhado para a era dos processadores com muitos núcleos. Ele utiliza Goroutines, que são como "threads" extremamente leves. Você pode iniciar milhares delas sem consumir muita memória, facilitando a execução de várias tarefas simultâneas.
Go é rigoroso com tipos, o que evita erros bobos em produção. Mas, graças à inferência de tipos (parecido com o var no C#), você não precisa declarar o tipo de toda variável manualmente, o que deixa a escrita fluida.
Hoje, o Go é a escolha favorita para infraestrutura de nuvem (o Docker e o Kubernetes foram escritos nele), ferramentas de linha de comando e serviços de back-end que precisam aguentar milhões de acessos.
É uma linguagem que valoriza a clareza sobre a "mágica". Se você gosta da organização do C# mas sente falta da agilidade do Python, o Go pode ser um caminho bem interessante para seus estudos.
Considerando as linguagens que você já domina, o que mais costuma te atrair em uma nova tecnologia: a facilidade de escrita ou o desempenho bruto do sistema?