I've recently come back to java after around 5-ish years doing mostly ruby. Know what? It's been a breath of fresh air. Code performs as you'd expect, and when you need to track down behavior, it's usually very straightforward (completely the opposite of ruby, in my experience). Almost everything runs super-fast. IDE's actually work with it. Docs are very good.
When I hanker for dynamicity, I've been reaching for groovy...a language I tried years ago which has come a LONG way and brings a lot of the features (namely, anonymous blocks/closures) I liked about Ruby. I'm nervously courting scala but in the early days.
What I liked about Rails can for the most part be found in Play (http://www.playframework.org), although I must admit I felt better about Play in its 1.x days when it was written in java. The core is now written in scala (though you can develop your app in either java or scala)...perhaps as I learn more of this language I'll feel more comfortable opening Play 2's hood. We're already started converting one of our Rails applications to Play, and it's been a great experience so far. And oh, by the way, we're finding that whole "rails/ruby won't slow you down...your database will slow you down" argument isn't always true.
Anyway, count me among Java's (and the jvm's) fans. It probably doesn't hurt that I have been working with it in one way or another since 2001, but I tried my best to leave it, only to find that sometimes you can indeed go home again.
That said, it hurts my brain to understand why in 2012 we're still forced to create our own empty getters and setters, and why there are no anonymous blocks. I know that closures/anonymous blocks are supposed to be delivered in java 8, but I'm not sure the elimination of redundant getters/setters are even on the road map. I'm so tired of opening classes which are comprised of 20% business logic and 80% getters/setters simply because one might need to override that behavior in the future. It really increases the noise.
Oh, and the whole tendency of the java community to over-engineer everything...while it seems to be much less frequent these days, it's still there. Not so much on the Play side, but it can definitely still be found. That's one of the things which pushed my away from java back in the day...I was sooo tired of reading project docs five times and still not understanding what the hell someone was trying to say.
What's your opinion about Scooter http://www.scooterframework.com/ ? Do you think that Play is secure than old JSP, especially in XSS and SQL injection aspects?
When I hanker for dynamicity, I've been reaching for groovy...a language I tried years ago which has come a LONG way and brings a lot of the features (namely, anonymous blocks/closures) I liked about Ruby. I'm nervously courting scala but in the early days.
What I liked about Rails can for the most part be found in Play (http://www.playframework.org), although I must admit I felt better about Play in its 1.x days when it was written in java. The core is now written in scala (though you can develop your app in either java or scala)...perhaps as I learn more of this language I'll feel more comfortable opening Play 2's hood. We're already started converting one of our Rails applications to Play, and it's been a great experience so far. And oh, by the way, we're finding that whole "rails/ruby won't slow you down...your database will slow you down" argument isn't always true.
Anyway, count me among Java's (and the jvm's) fans. It probably doesn't hurt that I have been working with it in one way or another since 2001, but I tried my best to leave it, only to find that sometimes you can indeed go home again.