Hacking on GraphHopper - a Java road routing engine. Peter has posted 62 posts at DZone. You can read more from them at their website. View Full User Profile

Not A Java Web Frameworks Survey: Just use Wicket!

  • submit to reddit

‘Java Web Frameworks Survey’ was my first blog posted which was reposted at dzone. Sadly there never was a follow up of it. Although I planned followups with jZeno, SpringMVC, Seam, Vaadin (at that time: IT-Mill Toolkit), MyFaces, Stripes, Struts, ItsNat, IWebMvc

Now, today I have just a short, subjective mini-follow-up, for anyone who is interested after all those months. Over the months I have additionally investigated JSF, Rails, Vaadin and one more:

  • No comments to JSF :-/
  • Rails is great! Especially the db migrations and other goodies. Partials are a crap: I prefer component based UI frameworks. If you don’t like ruby take a look at grails with autobase.
  • Additionally I highly recommend everyone to take a look at vaadin (‘server-side GWT’) if you need a stateful webapplication. Loading time was a problem for me. Other client-side performance problems can be solved if you use CssLayout, I think.

But for jetwick I chose wicket! There were/are 10 reasons:

The most important thing is: if you use ‘mvn jetty:run’ and NetBeans in combination then the development cycle feels like Rails: modify html, css or even Java code. Save and hit F5 in the browser. Nothing more.

The only problem is the database migration (wicket solves only the UI problems). For that I would use liquibase. Or simply run db4o, a nosql solution ‘or’ solr.

From http://karussell.wordpress.com/2010/07/13/not-a-java-web-frameworks-survey-just-use-wicket/

Published at DZone with permission of its author, Peter Karussell.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)



Daniel Alexiuc replied on Wed, 2010/07/14 - 1:27am

Jetty is not just restricted to netbeans and wicket either, pretty much any IDE and java web framework combination can benefit.

Using jetty as a local development webserver gave me one of those WOW moments too - the immediate increase in productivity is really quite amazing.

Martin Wildam replied on Wed, 2010/07/14 - 2:10am

Thank you very much for your follow-up.

Many people would recommend always use the right framework for the right job. But honestly, I don't have the time to learn and get familiar (and getting expert later) all those frameworks.

I have chosen Java also because it is a language that has the power to solve many different kind of problems and so should be the framework of my choice - it should be easy and allow me to solve 90 % of my web application needs efficiently.

I personally don't care much about db integration - this is something I have ever done myself - so I also don't use hibernate and the like.

Peter Karussell replied on Wed, 2010/07/14 - 2:30am in response to: Daniel Alexiuc

Yes, this worked e.g. with vaadin too. But I didn't get it properly working with JSF or cocoon.

Marcos de Sousa replied on Wed, 2010/07/14 - 3:48am

I use ZK in production environnement since version 2.0.4. All version 2.x.x, 3.x.x, 5.x.x are less than 2.5 MB.

Where did you get 20 MB?

Lukas Zapletal replied on Wed, 2010/07/14 - 7:11am

Yes but ... Apache Wicket is quite slow on GAE. It has slow startups which is a problem on GAE.

Jacek Furmankiewicz replied on Wed, 2010/07/14 - 8:00am

Uhm, have you looked at Django?

If I may...


I doubt Wicket can match the Django admin interface productivity.

David Lee replied on Wed, 2010/07/14 - 8:42am

Everything has a slow start up on the GAE. This is not a Wicket problem.

Peter Karussell replied on Wed, 2010/07/14 - 8:47am in response to: Jacek Furmankiewicz

Because why?

Jacek Furmankiewicz replied on Wed, 2010/07/14 - 9:14am in response to: Peter Karussell

Becase what would take you X number of lines in Wicket will probably take X/10 number of lines in Django Admin interface.And it will probably look and behave better. And you may not need to write a single line of HTML/CSS/JS for many of your CRUD screens.

With the Jython-Django project you can even deploy it as a WAR (with JNDI lookup of datasource) directly into your existing Java web server:



Adedayo Ominiyi replied on Wed, 2010/07/14 - 11:49am

u should try tapestry 5 it is equally as cool as wicket. Havent had d time to do a full comparison but i have been using T5 since 2008 and it has been a pleasure to use. It is lightweight, fast, component-based and more.

Peter Karussell replied on Wed, 2010/07/14 - 2:44pm in response to: Jacek Furmankiewicz

For that stuff you can also use wavemaker or grails or ... but wait: I will take a look at it :-)

Jacek Furmankiewicz replied on Wed, 2010/07/14 - 4:24pm in response to: Peter Karussell

Yeah, but Django is just so much simpler, easier and really polished. Although I've heard good things about Grails too.

So if you picked up Ruby for Rails, why not try Grails as well? I have a feeling most would prefer that one as well over Wicket...and let's not forget Stripes and Play!

But for us Django rules for the gadzillion CRUD screens we are always faced with...




Jose Maria Arranz replied on Thu, 2010/07/15 - 3:27am

Peter, have you really done a review of ItsNat?

I invite you to do this review.



Peter Karussell replied on Thu, 2010/07/15 - 5:19pm in response to: Jose Maria Arranz

not really. and the license would be too strong for my case.

Marc Stock replied on Mon, 2010/07/19 - 12:45pm

Django Admin app looks fine for apps where CRUD is all that matters and you it's ok to accept the default interface Django gives you but once you have to customize to a client's needs, your productivity bonus largely goes out the window. In which case I say, go back to Wicket :)

Liezel Jane Jandayan replied on Mon, 2011/09/19 - 1:22am

It is intended to let application developers "write once, run anywhere." Java is currently one of the most popular programming languages in use, particularly for client-server web applications.-Any Lab Test Now

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.