Jetwick switched from vaadin to wicket

First of all, let me say I love and use Vaadin. I have used both Wicket and Vaadin and am currently using Vaadin to develop portlets for Liferay. I recently came across this article and wanted to get the thoughts from the Vaadin community.


Twitter Search Jetwick – Powered by Wicket and Solr

Really interesting reading. Found out that Peter Karich actually asked for help
about the layout performance issue
, but the above thread did not reach any conclusions. It would be really interesting to hear of the actual problem that caused Peter to rewrite the UI in Wicket.

Peter, care to comment?

Cut-n-paste of a discussion from
Peters blog post
.

Jetwick layout seems simple

yes it is quite simple. but I overused the nested layout thing … :-/

Especially if you use CssLayout. Even on an old computer. Even on IE6.

I should have known this before :-/

I can post the UI code part of jetwick at the time it uses Vaadin if that would help. At the time of the decision I wasn’t sure if replacing the layouts with a fastlayout or csslayout will improve the performance, so I used wicket, because I was already comfortable with.

At the time jetwick uses vaadin I implemented the user search: each of the 10 users could have 20 tweets! where every tweet consisting of horizontal + some other nestedlayouts!

So, don’t get me wrong: I like Vaadin and Vaadin is also a bit easier than wicket. But I didn’t know that the wrong layouts will have these major performance impacts (for some users) and longer loads. And Vaadins user should NOT rely on my experience: they should do their own decisions!

Got a (not so) funny thought: The only page on vaadin.com that has a bit of flash on
it happens to be Directory (there is a banner advertising Vaadin add-on competition on the side).
Could it be that it has been the reason for suboptimal (5 sec) startup-time?

This could be. I will ask the same beta tester. (he is on vacation at the moment.)

Do you know it the same user had any problems with demos?

do you have links to easy (not too easy) demo apps?

Gordon,

simple try out both for your application! Starting with Vaadin you should not do any wrong or even not waste time.

If you feel you need a performance comparison then switching should be fairly easy, because Wicket and Vaadin are quite similar. If you use csslayout then programming is even more similar, I think. Although with Vaadin you don’t need to invest a lot of time into UI.

With wicket you will need to define nearly always an html file with wicket:id and hook into via Java.

Pro: This tends to produce cleanly separated layouts

Con: decreases the productivity if you don’t have separate designers.

(Both frameworks have its quirks, of course)

Optimal configuration for such could have been to use CssLayout for the list and a custom made “Tweet” widget that could have added some client-side animations, interactivity and site specific feel. Also CssLayout for list and CssLayout+Labels/Buttons could also have been ok.

IMO
Reindeer theme demo
is of comparable UI complexity. If you
start it with debug window
, you also get some number to compare.

For example they are for me:


MacBook, 2.4GHz, Safari 5.0.1
[code]

Making UIDL Request with params: init
Server visit took 430ms
JSON parsing took 0ms
Running layout functions due window resize
Processing time was 122ms for 10088 characters of JSON

[/code]

or


MacBook, 2.4GHz, Firefox 3.6.8
[code]

Making UIDL Request with params: init
Server visit took 273ms
JSON parsing took 2ms
Running layout functions due window resize
Processing time was 360ms for 10085 characters of JSON

[/code]

or


MacBook, 2.4GHz running Windows XP in VirtualBox, IE6
[code]

Making UIDL Request with params: init
Server visit took 551ms
JSON parsing took 15ms
Processing time was 1409ms for 10112 characters of JSON

[/code]

or


MacBook, 2.4GHz running Windows XP in VirtualBox, Chrome 6.0.472.41 beta
[code]

Making UIDL Request with params: init
Server visit took 402ms
JSON parsing took 4ms
Running layout functions due window resize
Processing time was 194ms for 10115 characters of JSON

[/code]

or


MacBook, 2.4GHz running Windows XP in VirtualBox, IE8
[code]

Making UIDL Request with params: init
Server visit took 317ms
JSON parsing took 14ms
Processing time was 289ms for 10112 characters of JSON

[/code]