23

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?

Samah
  • 1,224
  • 2
  • 13
  • 15
  • 1
    As the author of the aritcle GWT vs. ZK, i would like to state that i didn't prefer one solution over another. – jebberwocky Feb 15 '11 at 09:23

7 Answers7

11

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.

Hightower
  • 968
  • 4
  • 24
  • 58
Mo.
  • 355
  • 2
  • 10
  • 1
    With ZK you keep your custom logic on the server. The framework dynamically skins this as js data sent to the browser over ajax. ZK has a massive amount of js but you don't usually use it directly. It is in the jar files and the zk servlet sends that to the browser. The advantage being that all the framework js code is well tested by other people. If you write custom js code you have to test that yourself in many versions of many browsers. zk5 has a javascript api to let you do custom javascript easier but that is best avoided as cross browser js is hard which is why GWT is hard. – simbo1905 Dec 12 '10 at 00:19
  • 2
    When talking about cross-browser compatibility, GWT is not better than ZK's JS code. ZK is based on jQuery and its widgets will take care of the issues they know. GWT only solves Java-to-JavaScript translation but JavaScript itself has no cross-browser issues. The access of DOM is the problem. If you use GWT to access DOM or style with CSS, then you might run to situations that GWT can not help. – Mo. Dec 16 '10 at 08:47
7

I've never used ZK but from the looks of it, ZK is much more 'enterprise-ready' in the sense that it comes with a lot of ready-to-use widgets. GWT only just recently got a DataGrid-like control. Recreating ZK's Calendar or Spreadsheet in GWT would take a serious amount of effort.

You're boss's "too much business logic in the browser" statement really shows that he doesn't really know what he's talking about. GWT is a client-side only technology while ZK looks like it's almost completely server-side.

If you haven't already check out ZK's GWT vs. ZK page. They seem to have most of the bases covered.

Finally, remember that YOU are the one writing the program not him, if a boss forces something on you that will take more time to implement, then inflate your estimates accordingly. It's much easier to appeal to management with something they care about: "This technology will inflate the budget by X and schedule by Y" then with technical details.

hko19
  • 1,054
  • 4
  • 16
  • 25
wm_eddie
  • 3,938
  • 22
  • 22
  • 1
    Hmmm... he may have seen that page already, but if not I'll pass it on to him. I can't believe I didn't find that to start with. The budget/schedule argument seems to be a good out if management decide they'd rather listen to him than the actual developers. Thanks for that. – Samah Aug 16 '10 at 01:47
  • @Samah: Came across your question. I am curious, what did you end up doing? In the past I worked with GWT (+GXT) and I loved it. Now, I started to look at ZK. It seems very interesting. The article included in the post is just marketing bs. It doesn't really go in-depth. No surprise. – boggy Jan 21 '15 at 21:24
  • @costa: We ended up going with Zk. There was still a lot of backend stuff we had to do to get it to interact with our existing transport method, but in the end I think it was the right decision. If we'd gone with a GWT solution (or something else similar), there would have been a lot more client/server interaction to develop ourselves, and we were on a tight deadline. – Samah Feb 10 '15 at 22:48
7

Please do note that the page ZK's GWT vs. ZK page is written by Jeff Liu, who is an engineer at Potix Corporation. Which is the company that made ZK.

I'm also struggling with making a choice between ZK and GWT. I'm looking for a recent unbiased article that discusses both but haven't been able to find anything good.

lgw
  • 71
  • 1
  • 1
  • Write it yourself :-) Pick a page such as the simple app that the google search "mvc zk jpa spring" brings up and add a gwt version of that page into that sample code. Then write up your findings and publish them on dzone.com. Else find a gwt hello world application (e.g. google just opensource WindowsBuilderPro as a free GWT IDE) then implement a zk version of a given page in their opensource sample code. Clearly you will learn very much doing this yourself and by writing it up on a good site like dzone.com you will be helping out the world. – simbo1905 Dec 12 '10 at 00:29
  • 5
    as the author of the aritcle GWT vs. ZK page, i didn't prefer one solution over another. Please refer the conclusion session of the article. FYI i don't work for Potix Corporation anymore – jebberwocky Feb 15 '11 at 09:18
3

Company directors hate risk and uncertainty. If there are many developers saying a framework is cool and one architect sucking through their teeth and muttering about risk then they are going to go with the naysay very single time. You need to get 3rd party independent references for the software which is possible even with opensource.

There is at least one company who sells support for ZK. They will be happy to put you into contact with architects at companies who have used ZK. Ask these independent third party architects a set of open ended questions such as "what did you most like and what did you most dislike" and "what was the main challenge you found" and "what most surprised you" and "what other frameworks did you consider and why did you pick ZK". Company directors love this sort of fact based research talking to senior people at other companies.

As the same time design an "assault course page" which is a fair representation of the sort of complexity you will have to build on the project. Have the team implement that page both in ZK and in GWT and have everyone try to improve both. Write up that experience as a team. Be sure to include the person who was against ZK and do not do this in an adversarial manner. Don't get into a them-vs-us or her-vs-me situation but keep it as an open team fact finding and training exercise where anyone can contribute to any bit. Wiki pages might be an ideal format for this.

You will have success with this approach as ZK has been used on multiple million dollar development projects with teams over thirty developers at billion dollar global financial corporations. You are amongst good company in preferring to use ZK.

simbo1905
  • 6,321
  • 5
  • 58
  • 86
1

If you need the advantages of ZK (server side AJAX framework) you can use GWT with SmartGWT

Julian Popov
  • 17,401
  • 12
  • 55
  • 81
  • 2
    I think Vaadin http://vaadin.com/ is more close to the ZK server-side philosophy then SmartGWT. – xmedeko Apr 30 '12 at 14:20
0

Perhaps showcasing a successful enterprise level ZK application can help.

My mind was blown away the first time I worked with IDempiere 2 (the ERP+CRM software). It is a huge ERP software with a very responsive and clean interface.

I installed it on a windows machine in less than an hour.

wmac
  • 1,023
  • 1
  • 16
  • 34
0

ZK is much easier to use and has a lower learning curve API-wise. GWT on the other hand is harder to learn and more bulky in the sense the it might take ages to compile if you want to create all the permutations and you don't use appropriate plugins for just in time compilation. The latter provides a much faster user experience though. Use ZK if you want to create GUIs for intranet applications fast. If you are addressed to a larger audience use GWT instead (the lack of standard components in GWT is not a real factor since you can use GWT-ext instead and on the other hand most essential ZK components are proprietary).