English 中文(简体)
Real-world ZK vs GWT experience
原标题:

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?

最佳回答

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.

问题回答

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.

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.

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.

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

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.

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).





相关问题
Export to pdf on the client or server side?

My client side application is using jqgrid that requests the server side, which in its turn queries MySQL and sends back the resultSet in XML format. I m willing to add the export to PDF ...

Image generator

I d like to be able to generate an image with overlaying text (that is inputted by the user) such as how it is done on www.depressiondog.info. Can someone show/link me to some code that will do that. ...

Where should I put this configuration setting?

I m designing a fairly small web application which will run on a Sun application server (v9.1). It only has a few pages, no database of its own, and will retrieve/update data via web services. There s ...

服务器面与用户对用户的MVC在网络信号中

我最近找到了一种与《伙伴关系协定》有关的有趣的替代办法。 NET MVC,我目前做的是:静态超文本,配有先进的 Java本式服务电话(大多数例子使用开放式雷达)。 例如,见此或......。

MySQL Users and All Privileges

Ok, I m trying to add a user to a MySQL database. This user should be able to add other users to the database it has privileges for. So I did this: GRANT ALL privileges ON thedbname.* TO topuser @ % ...

Doesn t get into Debug Mode

When I Press F5 on my VS2005 to debug the application, it launches the web app window but it is coming out of debug mode. When I tried to trace the Error in the EventViewer, this was the error: ...

热门标签