Considerando um software com interface Web usando HTML, CSS e Angular, o que vocês opinam sobre a melhor tecnologia Java (ou outra linguagem) para ser usado no backend, usando JSON por exemplo?
Spring Boot.
Melhor em que sentido? Escalabilidade, manutenibilidade, segurança, velocidade, robustez, etc…
Sempre pra obter um é necessário abrir mão de outro.
Java: Spring Boot como @darlan_machado indicou. Outras opções para você avaliar: Go, ASP.NET Core, Rails, PHP, Nodejs.
Concordo com seu comentário, melhor é uma definição muito vaga. Mas meu objetivo é coletar opiniões mesmo. No seu caso, qual você usaria?
É bem relativo ao projeto, não existe bala de prata.
Já fiz projetos usando Java com Spring Boot como muitos citaram aqui, sei que é muito robusto, porém acho extremamente verboso e complexo para se trabalhar.
Nesse sentido eu não usaria novamente, se precisasse de algo com o mesmo porte de robustez iria de C# com o ASP.NET Core.
Mas se for uma aplicação mais simples, nada com transações financeiras ou dados super importantes eu não utilizaria nenhuma destas, ai tem várias opções, e cada uma terá seu pros e contras, Ruby on Rails é uma ótima opção, porém tem um certo problema com escalabilidade uma vez que tem problema na gestão da distribuição do processamento de dados.
Uma que gosto muito (como diriam no BBB, por afinidade) para soluções rápidas é o PHP, gosto de utilizar com o framework Laravel ou com o Lumen dependendo do caso.
Porém og como estou mais voltado ao desenvolvimento de aplicações web e mobile com JS, e estas em sua maior parte tem um grande foco em escalabilidade, tenho usado muito Node.js, leve, eficiente, seguro e facilmente escalável, inclusive, em um projeto recente usei Node.js + Socket.io + Laravel, o resultado ficou muito bom.
ASP.NET Core também é minha sugestão número 1 neste contexto.
A culpa não é do Spring Boot pela “verbosidade”, mas por causa do próprio Java mesmo. A Spring com muita excelência sempre se esforçou ao máximo para sobrevida do Java em novas aplicações.