Estava vendo essa pergunta aqui: stackoverflow.com/questions/2092098/… e me deu uma dúvida, é só no C# que a convenção é usar underline ao invés de m? Ex: _teste e mTeste
@YODA isso é só minha opinião, mas acho o Java muito complicado pra fazer muitas coisas, por exemplo, pra criar arrays e objetos simples, por isso também, você acaba criando várias classes que em outras linguagens não precisaria. Outro recurso importante que não tem no Java é argumentos opcionais/com valor padrão, isso é uma mão na roda, mas, no Java, você precisa criar um novo método pra isso.
Há outras linguagens com muitas aplicações, C#, Python, JavaScript, todos esse podem ser utilizados pra programação web e desktop, C# e JavaScript também podem ser utilizados pra mobile, Python é muito utilizado em IA e Big Data. Esses são apenas alguns exemplos, tem outras linguagens com múltiplos usos
O Spring é um ecossistema utilizado pra programação de serviços web
Uma alternativa interessante ao Java é o Kotlin, como ele também é convertido em um bytecode e executado pela JVM, são compatíveis, você pode ter um arquivo Java que usa um Kotlin e vice-versa. Eu só dei uma olhada por cima nele, mas parece resolver pelo menos parte do que falei das complicações do Java