Struts ou Spring

Struts é antigo ? foi o primeiro framework ?

E, hoje em dia, qual um frame muito usado ?

Sim

Spring e JSF

Muito.
Na real, Struts foi criado no começo dos anos 2000. O próprio criador (na verdade, um dos criadores e um dos líderes da equipe que desenvolveu o Struts) disse que, caso soubessem da construção do JSTL (Java server pages standard tags library), não teriam nem começado o Struts.
Lembrando que isso é referente à versão 1.
A versão 2 é um ouro framework, creio que foi lançada nos idos de 2004 ou 2005. Eu tive java para web na faculdade e vimos Struts 2, isso em 2007, logo, não era uma tecnologia “nova”.

O melhor do Struts foi a versão 2 e o fato de ser action based.

Se você acredita que component based ainda é uma tecnologia necessária, JSF é o padrão da especificação JEE para desenvolvimento web.
Se você gosta de se aventurar, temos o vRaptor (eu não tenho boas experiências com este framework) e um ou outro menos famoso por aí.
Agora, se você gosta de coisas novas, sugiro estudar RESTful e algum framework javascript.

O Struts era tão bizarro que foi jogado fora e pegaram o WebWork pra servir de base pro chamado “Struts 2”, este sim era bom para cobrir as deficiencias da stack padrão, mas com a linha Spring decolando, a linha Struts ficou para trás.

Spring Framework for Java has been around past 15 years since its initial release.

Most of the web developers prefer spring to build enterprise level web apps.

But since last 3-4 years the Javascript has become more popular not only in the client-side development(Angular and React) but also towards the server-side development, thanks to nodejs.
Fonte : Java-Spring or JavaScript-Node.js?

Só comparei dentro do contexto, Struts com Spring. Mas particularmente nem recomendo Java.

Sem problemas, Java é legado ou sua engenharia e seu futuro hoje se mantém pela Oracle, com suas (LST) release com licenças pagas, já prometidas no Java 11, em outro aspecto sobre o Oracle JDK temos a RedHat que desenvolve na atualização do OpenJDK, temos ai estratégias comerciais de projetos Java. Open Source é uma demanda pra outras tecnologia que vem fora da Plataforma Java . Em outra fonte observa-se : OpenJDK vs. OracleJDK - which are you using?

Concordo que Java é para legado, mas continuam usando devido a base de desenvolvedores ser gigante e não lançarem uma implementação enxuta do zero para os novos tempos, acompanhada de boa stack que tenha direcionamento oficial, ao invés de ficar de ficar sempre recorrendo a terceiros para produtividade básica. OpenJDK é do mesmo legado, mas pelo menos não cai nessas questões que você citou. Pra mim que trabalho com C#, novas aplicações devem ir mais na linha do .NET Core.

Você trabalha com produto que não é Open Source. O .NET Core é uma plataforma de desenvolvimento de uso geral mantida pela Microsoft e pela comunidade .NET no GitHub. Ele é de plataforma cruza e dá suporte ao Windows, macOS e Linux, e podendo ser usado no dispositivo, na nuvem e em cenários inserido/IoT, todavia o Java pode mudar da água pro vinho porque a Oracle controla sua licença , então mesmo existindo o OpenJDK a engenharia de sua arquitetura é posse a Oracle . Do mais eu concordo com você Java tem um publico e grande aceitação.

.NET Core é open source. Para o meio corporativo é importante estar sob o guarda chuva de uma grande empresa, seja Oracle, Microsoft ou outras, é maior garantia de suporte.

Verdade, é Código-fonte aberto: a plataforma do .NET Core é um software livre que usa licenças do MIT e Apache 2. A documentação é licenciada por CC-BY. O .NET Core é um projeto do .NET Foundation.
Vi a fonte:Guia do .NET Core , é bem interessante.Você tem razão mas me parece muito mais organizado, vamos esperar que a Oracle invista mais na Plataforma Java, quem sabe não tome a linha do Net.Core, vai saber :wink:

Também gostaria que a Oracle patrocinasse a garotada pra fazer um nova implementação do Java. Mas se isso não rola, temos outras opções.