Friday, October 25, 2013

The Pros And Cons Of The ZK Framework For Java

By Adam Shrum, IT Manager and analyst at Dynamic CAFM, a Texas based facilities management software provider.

When tackling a new software development project there are many things to consider. First, what is the scope of the project? Second, what language should be used to develop the project. And Finally, what tools will be needed to complete the project efficiently. I manage a team of developers in Pearland, TX and we have had to answer all three of these questions at one time or another. Before we use any tool we always come up with a pros vs. cons analysis to evaluate the tool beforehand. One of the Java tools we use quite frequently is ZK or ZKoss, an Ajax + Mobile enterprise framework that incorporates Spring, JPA, Hibernate, JavaEE, Grails, and Scala. I like to think of ZK as a front end tool that keeps you from having to create a UI from scratch. Like any other front end tool there are pros and cons of using a framework like ZK.

The number one pro of ZK is that it’s Open Source. Because it’s an open source product there is a community of developers that support it via the ZK Forums. It’s important to also note that the documentation for ZK is very good, and there have been few times when we have even needed to go to the forums for help. Another pro is that Big Name Companies use ZK which is always a positive. Companies such as Sony, Deutsche Bank, Sun Microsystems, IBM, Toyota, and Adobe are ZK users and to me one of the biggest red flags of a software tool is that nobody is using it. With ZK you know you’re dealing with a proven product that actually works. ZK has a Rich Modular UI which is made up of many different components you can call out without having to code from scratch. They have thought of almost everything out of the box, but additional components are included with the PE and EE paid versions of the product.
Oh yeah, I forgot to mention that ZK is a Free Product when you use the community edition. Because it’s free there is no upfront cost which is another positive, and there is no cost for a user license as well. If you are working with a legacy system and have decided to utilize ZK in an update to that legacy system you will experience much more control over the system than you had before.

ZK is easy to debug because it works with the most used global programming language, Java. Any database you choose will work with ZK including MySQL, Oracle, SQLServer, etc. Also, ZK can run on any operating system you choose such as Windows, Linux, or Unix. One of the biggest pros of ZK is the ability to dynamically change data based on selections you have previously made. If you were coding a medical questionnaire and you had a two part question you could dynamically populate the values for the 2nd question on the fly. For example, the question “Are you pregnant?”. If the answer was “yes” the next question could be, “How many months?” and the results would be in a dropdown. On the other hand if you answered “no” the next set of questions could be something completely different. Selecting ZK as a development tool is a wise choice for many reasons.

Are there any drawbacks to choosing ZK? The pros outweigh the cons, but there are still a few reasons why you may not want to use ZK in your next software project. There is a learning curve involved with any new tool like ZK because it has its own set of tags, attributes, and functions to get familiarized with. With that learning curve comes a time factor involved with getting up to speed, and becoming comfortable with the tool. ZK will use a lot more resources than a plain HTML page, so you will need to keep that in mind as well. You will need to have good optimization skills when developing with ZK, so you can make sure your application will run quickly and efficient.

Now that you have a good understanding of what the pros and cons of ZK are I would highly recommend downloading the latest release of their community edition from the ZK Website. Try it out, I know my development team has had great experiences with ZK and we will continue to use it for future projects.