Why qooxdoo falls short on its goal of simplification

Web developer Tony Patton explains why the qooxdoo JavaScript library left him feeling cold.

The days of building Web applications from scratch are over, as a variety of JavaScript libraries are freely available to provide a solid foundation. One JavaScript library that I recently learned about is qooxdoo (its Web site prescribes pronouncing the name as "cooks do"). It is an open source AJAX Framework that simplifies building Web user interfaces.

I decided to take qooxdoo for a test drive, and the results left me feeling cold. If you want to check out the library for yourself, this article provides some information that will be useful to you.

How to get qooxdoo

Qooxdoo is freely available for download in these options:

  • Quickstart: This is the easiest way to take a peek at qooxdoo. A simple application is included, along with a pre-build script, so no software is installed on your system. You can view the samples via your browser.
  • Evaluation: This allows you to view qooxdoo in action without actually installing any software. You can run all sample code to get an idea of what qooxdoo can do for you.
  • SDK: All source code is included, so you can dig into the meat of qooxdoo. It allows you to build full-blown qooxdo applications. It does require some system setup to use the integrated tools.
  • Skeleton: This is a starting point for building custom applications via qooxdoo. The build process has been pre-configured, so you can concentrate on development as opposed to system setup. This download is included with the SDK installation as well.
  • RPC backend: A number of RPC servers are available in a separate download. This allows you to setup RPC calls to the servers in your JavaScript code (via qooxdoo).

Each download option includes a link for the latest stable build as well as a link to older builds. The downloads are contained within compressed files that include release notes and a readme file to guide you through any necessary setup. You can take a look at the quickstart or evaluation downloads to get an idea of what is possible with qooxdoo.

What qooxdoo provides

I am always a bit apprehensive when approaching JavaScript libraries or any programming language add-ons; my main concern is compatibility. I avoid libraries that extend basic functionality, thus adding its own twist. A good example of such an approach is most things from Microsoft.

I am happy to report that qooxdoo does not extend native JavaScript; this makes it easy to integrate with other libraries or custom code that you may be using on a project. The JavaScript within qooxdoo is completely object-oriented and based on namespaces. There are currently about 350 classes in the library.

The code has been tweaked and tested to eliminate any memory leaks, and popular browsers (Internet Explorer, Firefox, Opera, and Safari) are supported.

Along with the base JavaScript framework, qooxdoo includes a GUI toolkit and is AJAX enabled. Qooxdoo provides these features through its JavaScript code:

  • Event-based programming: It fully supports events-based programming to handle user interaction within the UI. In addition, you can use AJAX functionality to communicate with the Web server.
  • Layout manager: Qooxdoo provides various ways to lay out a UI, including the Canvas, Box, and Grid. The concept of a layout manager will be familiar to Java developers. The layout managers are flexible and provide support for auto-sizing UI elements.
  • Widgets: Various UI elements or widgets are available to quickly build a Web interface. This includes building a menu, toolbar, text fields, and so forth.
  • Themes: Qooxdoo allows you to set up and use consistent presentation or themes for a Web application. This includes such things as colors, fonts, borders, and icons.
  • Communication: Qooxdoo embraces AJAX. You can easily achieve server-based communication using the XMLRequest object.
  • Internationalization: Qooxdoo has built-in support for both internationalization and localization, which provides support for all languages and locales across the world.
  • Build system: UNIX-style make commands supposedly hide complexity. Class dependencies are automatically resolved, and JavaScript compression is employed.
  • Optimized code: The code has been designed for high performance applications with no memory leaks present.


Current and future qooxdoo releases are made available under the GNU Lesser General Public License (LGPL) and the Eclipse Public License (EPL). You choose which license to follow, so review both licensing options before using qooxdoo in an application.

My thoughts on qooxdoo

My very first impression of the qooxdoo library was positive, but this quickly went south as I dug deeper into actually using it. First, it has been developed on UNIX with UNIX in mind. This is painfully clear to non-UNIX developers when qooxdoo requires usage of many UNIX-based tools like make. The setup requirements for Windows are complicated, and the process of actually building and rolling out an application is confusing and not worth the time. However, you may have a different opinion when or if you give it a try.

You decide

The abundance of free code both simplifies and muddles the life of a developer. The code available via libraries such as qooxdoo is well-tested and rock solid, but deciding on which library to use (if any) can be an arduous process.

If you are looking to build power Web interfaces that employ AJAX functionality, qooxdoo may be a good choice. The key is that you need to spend time learning about it in order to make a well-informed choice.

Have you used qooxdoo in past or present development projects? Do you prefer other libraries? Share your thoughts and experience with the Web development community by posting to the article discussion.

Tony Patton began his professional career as an application developer earning Java, VB, Lotus, and XML certifications to bolster his knowledge.


Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Development Zone newsletter, delivered each Tuesday. Automatically subscribe today!