E se a linguagem Go não é isso tudo?
Antes que me ataquem, vou dizer qual o ponto que quero desenvolver. Comparem: se for o que você imaginava, pode me xingar.
Meu ponto (resumido): talvez o golang não foi feito para criar qualquer API. Quando digo qualquer, quero dizer as mais simples. Talvez seja umaoverkill (matar uma formiga com uma bazuca)? É isso que eu quero saber.
Bem, não cheguei nessa dúvida de um dia pro outro. Já trabalhei com a linguagem como freelancer - talvez isso seja um dos principais motivadores para dúvida, já que, não tendo um padrão de projeto formalizado, eu facilmente cairia nessa cilada - e a maior parte dos meu projetos faço utilizando essa linguagem.
A linguagem tem uma filosofia de evitar o uso desnecessário de dependências de terceiros - já que ela possui uma biblioteca incrível. Mais outro possível ponto que tenha me influênciado, esse universo das libs.
Go tem uma estruturação difícil, um paradigma que eu nem sei como começar a defini-lo (se é funcional, orientado a objetos, etc.). Para conseguir fazer um estrutura hexagonal? É complicado. Mas, novamente, pode se dar pelo fato de eu não saber como estruturar um projeto de forma hexagonal, ou seja, inexperiência.
Isso daqui não é um ataque que estou fazendo à linguagem, mas um relato da minha experiência com ela. Seria interessante se você falasse como é sua experiência com a linguagem que trabalha, mesmo que não seja em Go.
Sou dev em uma empresa do ramo de saúde, por padrão usamos uma stack muito bem estabelecida baseada em Java+Spring. Lidamos essencialmente com aplicações rodando em backend, com disponibilidade 24/7.
Esse ano iniciamos uma iniciativa que seria focada em redução de custos. Nosso desejo é migrar a maioria das aplicações para funções lambda, essas que serão escritas em Go. Esse projeto visa uma economia de 90% no total do custo dos serviços que serão migrados.
De um tempo pra cá, tenho me focado em aprender e usar Go para qualquer tarefa no meu dia a dia. Preciso realizar uma busca no banco? Vou fazer em Go. Preciso percorrer uma planilha para metrificar algo? Golang. Até mesmo chamar APIs internas para teste, faço tudo em Go.
Não acho que Go foi feito pra tudo. A simplicidade de projetos Go muitas vezes são um ponto negativo dependendo do projeto; as vezes ter um projeto verboso e com muitos arquivos, porém em um paradigma que já é amplamente reconhecido, é 1000x melhor. Pelo menos pra mim.
Apesar disso, também não vejo Go como um overkill. Nessa comparação, pra mim seria como matar uma formiga com uma espada. Extremamente afiada e requer alguma habilidade, mas é leve e portátil, e funciona bem.
Uma frase que gosto bastate do livro O Programador Pragmático é Não reinvente a roda, a menos que precise de um entendimento melhor da roda. Go tem muito disso, te possibilita usar a roda pronta, mas também reinventa-la para entender os conceitos.
Se implementar em TypeScript ou Ruby, será muito rápido pra fazer, e com uma performance razoavelmente boa, dependendo da demanda. Mas com Go, além da excelente performance, irá consumir menos recursos em Cloud caso a demanda aumente. É uma decisão meramente técnica, depende da necessidade imediata ou futura.
Eu tenho feito tudo em Go. Para algumas coisas demora mais pra fazer, mas no final vale a pena pelo menor consumo de recursos e melhor performance.
Sim, GO não é tudo o que alguns dizem, Mas é o que outros dizem. Tem de tudo, tem gente que sabe do que está falando, tem que gente que só fala em teoria, em crenças. As pessoas esperam milagres que nao acontecem, ou que te ajuda fazer o certo o que poderia ter feito em outra tecnologia, mas não fez, assim como tem algumas coisas que no momento ela pode dar um resultado melhor de forma mais fácil, o que pode não ser verdade da qui um tempo.
Go tem umas coisas bem interessantes, mas outras nem tanto, ela certamente tem motivos para s er usada em muitos projetos, mas não para todos.
QUando aos paradigmas, funcional? De onde tirou isso? OO, pior ainda. E isso pode ser bom.
Arquitetura hexagonal é complicada, e a maioria das pessoas não precisam e só adotam por moda, então se GO dificulta, não sei, pode ser positivo.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).