Trabalho com Go e utilizo ele para qualquer tipo de projeto, desde projetos de lógica simples que são basicamente CRUD, até projetos mais complexos como simulador de blockchain e serviços externos, orquestradores, gerenciador de leilões e etc.
Hoje vejo que Go consegue ocupar o lugar de linguagens com ecossistemas mais maduros, justamente por conta de sua simplicidade, Go já tem ferramentas suficientes para fazer praticamente qualquer tipo de projeto de forma produtiva. Então o argumento de não utilizar Go para projetos que não exigem performance, eu não vejo sentido.
Isso sem contar com diminuição de custos em cloud quando o projeto é bem feito, Go inevitavelmente vai ser menos custoso em termos de CPU e memória comparado a outras linguagens menos enxutas. Em aplicações equivalentes, simplesmente não tem como C# ou node.js terem menos custo do que Go, por questões de limitação mesmo.
O argumento de custo é válido, mas depende muito do contexto. Para serviços de infraestrutura, workers, CLIs, Go é imbatível: binário único, sem runtime, memória baixa. Mas para produto, onde o time é pequeno e a velocidade de iteração importa mais que ciclo de CPU, Node ainda ganha em produtividade bruta, principalmente se o time já vem do frontend.
Estou construindo o BloodLink com Next.js e TypeScript porque o time (basicamente eu) já vive nesse ecossistema. Se tivesse um backend dedicado com mais escala, Go seria minha primeira escolha.
A questão não é mais performance versus produtividade, é qual a composição do time e onde está o gargalo real. No seu dia a dia, você encontra resistência de outros devs ao adotar Go, ou normalmente trabalha em times que já têm familiaridade com ele?