Fifteen years later I'm reading stuff like this: http://tech.jonathangardner.net/wiki/Why_Java_Sucks and weeping. In the intervening 15 years I've enjoyed experimenting with quite heavily in other languages such as C#, Objective C, and Javascript (in particular, Node).
My heart *still* belongs to Java, because of its clarity, emphasis on maintainability, support by the best IDEs, and huge developer/library/tooling ecosystem.
I'm still new to Java 8 and its idioms, but the new lambdas and stream language features are really nice:
List<Challenge> challenges = lobbyDAO.getChallengesFor( challengedPlayer ); Optional<Challenge> first = challenges .stream() .filter(challengeID -> { if (challengeID.isChallengeExpired()) { removeExpiredChallenge(challengeID.getChallengeID()); return false; } else { return true; } }) .findFirst();
I am looking forward to learning more about the Java 8 features, including native support for Javascript (aka Nashorn). The future on the JVM seems bright to me, regardless of very vocal detractors!