Opa, amigo! Fico feliz que tenha gostado. Normalmente, a escolha da stack era definida pelos responsáveis pelo projeto ou pelo próprio paper da pesquisa. Por exemplo: estávamos desenvolvendo um script para drones e, como a linguagem mais acessível em artigos acadêmicos era Python, acabávamos seguindo essa prática e codificando em Python.
O mesmo raciocínio valia para as arquiteturas, com a diferença de que as mais modernas eram, em geral, baseadas em microserviços. Claro, métricas como desempenho também tinham peso; afinal, performance ainda é um fator-chave. Mas, no fim, o mais importante era garantir um serviço com alta disponibilidade e velocidade independente do Hype da arquitetura ou linguagem.