Real-world ZK vs GWT experience

Samah picture Samah · Aug 16, 2010 · Viewed 11k times · Source

A fellow developer and I are putting together a proposal for a new application, and we've presented both ZK and GWT to be possible choices. After messing around with both, I'd prefer to move ahead with a ZK proof-of-concept, but one of the "senior architects" of the company (who isn't even on our team) seems to be trying to take over the project and tell us what technologies to employ. He's finding any excuse he can to push GWT onto us and call foul on ZK.

Now I'm not saying that GWT is inherently bad, nor that ZK is the be-all-and-end-all of web application development, but I don't like being told how to develop a application by someone who hasn't really done enough research to push a particular technology. Although this guy is not on our team, management tend to listen to him, and will probably "tell" us what to use.

This guy's arguments against ZK seem to be "browser incompatibility", "too much business logic in the browser", and "project immaturity". I disagree with all three of these. He also provides no arguments for GWT, which seems like he actually doesn't know much about either technology. He also claims that it's better to use a technology that someone within the company knows. There is only one team here that has actually used GWT, and that project has had... issues.

Could someone with some real-world experience with ZK and/or GWT suggest some arguments I can provide that would at least put both the technologies back on the table, rather than attempting to push a single technology with no real research?

Answer

Mo. picture Mo. · Aug 16, 2010

GWT and ZK both provides a framework to enable Ajax in Java. Both are mature, and no browser incompatibility issue (ZK is based on jQuery).

However, they are very different architecturally. GWT is client-side approach -- all the code running at the client, while ZK server-side approach -- all the code running at the server (but they have an option to write some of application code at client). So, your colleague was wrong that you already know -- GWT exposed the business logic at client, not ZK.

The advantage of GWT (as a client-side approach) is faster responsiveness (less client-server requests if designed well). The disadvantage is that you have to do all the data marshaling between client and server (GWT RPC/JSON supports only very simple objects). In contrast, ZK's advantage is you can access all back-end resources straightforward, no RPC, no proxy... In addition, ZK allows you to write some code at the client-side to enhance the responsiveness of the critical parts (unfortunately, the client code has to be JavaScript). To me, it is the best balance.

The real advantage of GWT is Google. I kept hearing some boss pushed engineers to GWT because of this. I also heard some GWT projects failed (mostly caused by productivity issue -- too painful if the project is complicated), and then switched to ZK.