Vaadin vs ZK ?

asked 2013-11-05 12:56:19 +0800

sitansu gravatar image sitansu
2254 13

updated 2014-01-19 10:26:50 +0800

Does someone know of a comparison between ZK and Vaadin ?

I'm especially interested which of the two is better suited for a dynamic web app (i.e. where the layout and POJOs are defined at runtime and can change at any time).

Most examples look pretty good if you have a standard POJO (with a fixed set of fields). But how do the frameworks fare if the POJO is replaced with a Map<string, object=""> and I need to build the UI depending on the Map's content?

delete flag offensive retag edit

3 Answers

Sort by ยป oldest newest most voted

answered 2013-11-06 08:39:23 +0800

ashishd gravatar image ashishd flag of Taiwan
1972 6

updated 2013-11-06 08:41:28 +0800

@sitansu here are the few points I can think of off the top of my head that ZK seems better at

  1. ZK supports XML-like ZUML and modern MVC/MVVM design patterns built-in support providing better separation of the UI code with better re-usability and better test-ability
  2. ZK integrates better with legacy apps (ZK JSP Tags/wrapping as JSF component)
  3. ZK supports large concurrent users with superior performance and less memory consumption
  4. ZK has more advanced mega components such as ZK Spreadsheet/Pivottable
  5. ZK integrates with 3rd party JS libs easily because its client side is based on jQuery
  6. ZK supports Responsive design using the same code base for PC and tablet/mobile
  7. ZK supports modern Bootstrap-like themes for styling ZK components
  8. Everything in Vaadin is provided in ZK but the reverse is not true (For eg. Responsive Design support and build in support for Twitter Bootstrap comes to my mind)

With regard to your question about building UI with a Map, I am not sure I completely understand your question. However in general ZK is quite flexible when it comes to building UI.

  1. At the very low level you can customize ZK's UiFactory and completely control how to create components. Refer here for UiFactory
  2. If you are using MVC you could use a custom Renderer to dynamically create UI components based on certain information in the model
  3. If you are using MVVM you could use children binding over a Map, and then use the property name (key) to determine the widget by some convention or the type of the value to generate a UI from a map. Refer here for more information.
link publish delete flag offensive edit


http://en.wikipedia.org/wiki/Comparisonofwebapplicationframeworks#Java_2 if you like it in charts :)

chillworld ( 2014-03-05 20:04:19 +0800 )edit

answered 2013-12-09 16:41:14 +0800

cyiannoulis gravatar image cyiannoulis
1191 10

updated 2013-12-09 16:45:19 +0800

Vaadin was one of the candidate frameworks when we were trying to evaluate some of them about 1.5 years ago. It is not a bad framework at all, and we have used it in some small projects just to have fun with it, but now after implementing three ZK based web projects in our company i can point out some things:

  1. Vaadin is not GWT. It is a server-side framework (just like ZK) using GWT to create widgets just like ZK uses jQuery. You are not taking advantage directly of GWT features. On the other hand, in ZK, you can take advantage of jQuery and embed a jq plugin quite easily in a ZUL page.

  2. If you have developed much code in the past using SWT or Swing you will find vaadin a natural approach. I am one of them. I have written (even with the help of "rightclick -> add event listener" tools) a few thousand event handlers. With ZK MVVM all i do is: button label="Save" onClick="@command('saveRecord')
    and that's it!

  3. The wording "vaadin is backed up by google" is much like the same as "zk is backed up by jquery". There is no 100% guarranties for compatibility with future versions of gwt or jquery. If google announce tomorrow the new version of GWT then vaadin (and this is normal i believe) will not be compatible with the new version. The same goes for ZK. Personally i believe it is much more possible in the future for Google to abandon GWT just like Adobe did with Flex. On the other hand a few million developers will always keep supporting jQuery.

  4. Vaadin is an intrusive framework. If you have used spring core you know what i mean. Spring's success is primarily due to the fact that the developer all he needs to know is how to declare a new <bean>. No subclassing and no interfaces to implement. Just POJO. The same happens in ZK with the MVVM approach. The "controller" is nothing else but a pojo. On the other hand, in vaadin, you have to learn a whole new API. Of course the same is true if you use the ZK's "richlet" approach which means forget about ZUL and write everything in java. Learning a whole new API means also that a new member in your team has to be familiar with such a development style. There is a great testimonial about Dreamworks saying that a new programmer will take less than a week to start use ZK effectively. Personal experience? It's true!

IMHO if i had to use GWT i would prefer to use GWT directly with the tools provided by google (Eclipse WindowBuilder is a great tool). One of the advantages (and disantvantage also) GWT offers is that the code runs entirely on the client (browser). Because of this, a native GWT application seems to be more responsive compared to an app written with a server-side framework (jfaces, vaadin, zk etc) especially over a slow internet connection. On the other hand trying to maintain a big application written in pure GWT is a nightmare for me.

Something for the ZK team: Vaadin has a great default theme for enterprise applications. It has the right size of buttons, very elegant window titles, the right spacing and pading. Is it so hard to implement a similar theme in ZK? I think that neither Breeze nor Atlantic offer an "enterprise" l&f like vaadin does.


link publish delete flag offensive edit

answered 2013-12-10 18:58:40 +0800

windeyu gravatar image windeyu flag of United States
288 3

We've worked on the ZK framework for years now. All of our pages are programmatically generated with dynamic contents without specifying fixed with and height on the container UI. We use lots of vflex and hflex to let the ZK framework to lay out for us. It did take some experience to do it well, but it's true for any other software. So far we haven't encountered stoppers in our layout with the ZK framework.

One thing I would like to point out is that Vaadin spent more effort in marketing than ZK. Vaadin had booth in Java One conference every year to showcase their product, and passed out free goodies to attract developers. When I talked to people, Vaadin was well known, while many never heard of the ZK framework. I hope ZK can expand their visibility.

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

1 follower



Asked: 2013-11-05 12:56:19 +0800

Seen: 376 times

Last updated: Jan 19 '14

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More