I'm starting a new project that involves a web site that hosts a web application and would appreciate some help in deciding which web framework to choose.
Since I'm an eclipse developer in the last couple of years I would rather use a Java web framework (I Also find java to be much more maintainable and easier to test, debug and extend, but that is another topic .. )
I've done some research and the number of frameworks is staggering, you can't possibly go through them all in a reasonable time, that's why I'm addressing this wonderful community :-)
Anyway, I've looked into GWT, Play!, Wicket, Vaadin and few others. In each of them there is something that I find problematic.
Vaadin and wicket for example both have a very nice widget set and is quite easy to use. I think that Programming web application with it is much easier than coding and debugging javascript code. Shortcomings are - all of the logic resides on the server and I find that it damages the user experience (I've looked into some web sites that used Vaadin, and it felt like i'm logged in to a remote computer.. which is actually not far from the truth.. )
Play is great, but it lacks the GUI programming abilities of GWT and Vaadin, building a complex web application with pure jquery can be tedious, especially if there is AJAX involved.
Currently , I find play with the GWT plugin a reasonable solution. Is there anyone who is familiar with a better candidate?
Thanks!
This kind of question is not really what StackOverflow is about, so please delete it after you get a satisfactory answer.
That said,
GWT is a nice solution if you want to minimize the overall network traffic, or better said, have finer control on the network traffic you application generates (you'll basically have a client application that communicates with the server when it needs data). It has some really rich component libraries, but once you pick one, it's not really trivial to mix and match with others, so you end up limited to that. And, laying out components with Java code is not that fun.
I don't know much about Play!, but it is an action-based framework so, even if it makes it really really simple to do things, the things it does are the basic things, you simply can't abstract and modularize your code like you can with a component-based framework.
Frameworks like Vaadin and Seam abstract too much, and take away from you the control you sometimes need over network traffic and resource consumption (specially Seam).
Wicket is built around the component abstraction (which helps a lot when building complex applications), but doesn't hide too much from you, letting you fine-tune it to your needs. The downside is, opposed to what you said, it doesn't have a very rich component library (although all the building blocks are there, and it's easy to integrate javascript libraries to add the 'richness').
I think play, vaadin or gwt are different and it depends of your needs for your project.
Personally I'm using Play and I'm really happy with it. Once you're use to it, you gain a lot in productivity. Performances are also great !
I'm not familiar with Vaadin or GWT but from my point of view, jQuery is not that hard to learn and also with jQuery UI you have access to basic widgets very easily.
For me, you will have more useful skills if you learn play + jQuery, rather Vaadin or GWT.
In general way, I always prefer to choose the most popular framework or language, because you will have a lot of support from the community.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With