Java precisa de propriedades, e não que nem aquela coisa do C#, mas assim como no Objective C onde você pode especificar se é atomic, weak, readonly, etc. Uma sintaxe de objeto.propriedade ao invés de métodos também seria ótimo.
Java parou no tempo mesmo.
Uma das coisas que notei é que em Objective C eles vivem incrementando a linguagem. De alguns anos para cá é possível por exemplo especificar mapas e listas assim como em JSON. E por aí vai. A Oracle parece que congelou o desenvolvimento do Java.
Fora que a JDK é uma desgraça. Tinham que ter um Core Java, só com java.lang e outras coisas básicas e jogar tudo o que for UI, XML, etc fora para pacotes separados. Aquele javadoc dá até desgosto de tanto entulho.
Infelizmente o mercado impõe Java, se tivesse escolha trabalharia com outra coisa. E C# também não é muito melhor não, pois ainda é uma linguagem estática.