Ask HN: Which Java Web Framework will stand out above others in 2012.

11 points by retrofit_brain ↗ HN
Web has evolved and Java web frameworks are still in the 90's. What does the Hacker community think about which Java Web framework is going to nudge out the rest and really adopted by the masses.

Play is beautiful, Roo is confusing and seems like another me too. Struts, JSF are operating from coffins.

what will survive in 2012 and next few years?

11 comments

[ 7.3 ms ] story [ 22.0 ms ] thread
I have dropped the server side frameworks in favor of Dojo, jQuery and Backbone. I use JAX-RS as my service layer to provide RESTful services to the newer stack. I have seen more and more developers abandoning the server side page frameworks in favor of the JavaScript frameworks and a REST API. JAX-RS with the JPA is a pretty nice set up for developing modern web apps, and I think we will see it's adoption increase for those that elect to use Java for their back end.
I'm not the downvoter, but since I hate silent downvotes, this is probably more or less the reason:

This kind of app might be fine on the platforms where it's tested, but tends to have severe performance problems for others. Many of us have had our computers bogged down by very resource-intensive web apps, and this "Do everything on the client" philosophy is a common culprit. Exchanging ~50 ms on the server for ~250 ms on the client can become really user-hostile as you get further from the best-case scenario.

The server still does all the heavy resource intensive stuff, the "business valuable" part. He is just moving templating and managing of state to the client.

I have the impression though, that a single page app will reveal problems like increased memory usage where in the classical way of writing webapps would be hidden by the constant page reloads (where hanging objects would get GCed anyway).

Inefficiencies are due to sub standard development practices or non-optimized technology. The fact is the client side frameworks have matured to the point, where if used correctly they can provide the same performance metrics as server frameworks. In some cases they provide patterns that lend themselves to better usability and can actually make the application feel more responsive. While it is true a badly designed server side page does not bog the client machine down, the fact that it is client side does not guarantee that it will bog down the client.

No matter which side of the fence you develop on, if you have a page that is not performing, you have a usability issue and it needs to be addressed. This is less of an issue with the technology and more of an issue with how the technology is being uses or rather misused.

I understand that people are dogmatic about this subject and that is why I received the downvotes, but to ignore the fact that it is the way the web is moving is to ignore a massive trend that is well underway.

Play! framework is way above anything else I've tried in Java.
Rails/django like power, no need for IDE or XML configuration, container-less deploy (or WAR with one command), out of the box things like json rendering, file upload, capcha, better JPA, easy config = Play! is the winner. Version 2.0 with equal support for programming in Scala and Java and Scala-like statically typed html templates will be released around February.
I was hoping to see more responses :). Looks like hacker community already has ditched Java Web frameworks.

I personally like how Play has evolved, but adoption is severely thin. They just got typesafe backing but Spring with the muscle behind it might be able to shove the rest away.

My Favorite is thye Wicket framework. After having used JSF , which is a hellhole, I found wicket to be remarkably versatile and powerful. It integrates cleanly with Jquery. DOJO aw well as Spring. It is the only J2EE framework where designers can tweak HTML templates without the programmers having to worry about integrating those changes back.
Yeah, I was wondering what the hell the OP was referring to when it was claimed that web frameworks are stuck in the 90s. We use wicket both for our customer-facing sites, and most of our various departmental administration sites. It's a great, modern, component-oriented framework that doesn't have any XML hell.

My default reaction to HN hipster kiddos eschewing Java for web development based on hearsay/generational bias/fashion is to roll my eyes and simply not post, but in this case I'm glad to see there's at least someone else on this site that experiences the virtues of Wicket.

I think the question is really twofold as Java in the enterprise and Java for the general hacker have very different use cases.

The enterprise space is where java still lives and breathes, and in that area I don't see play making any immediate headway. Spring and JSF will probably remain top candidates. I wouldn't clump JSF with struts just yet, with the release of JEE6 and JSF2 it has gained new traction. I'm no fan though and would love to see Spring dominate.

In the personal hacker space Play is great, but grails is pretty awesome too.

As for the next few years, I think it really depends on how Java 8 is implemented. I think the JDK has a healthy future, but If java remains a part of it will depend on a healthy implementation of closures