Dec 08, 2014

Qooxdoo “next” and targeting website development

Initially, this post was meant to be an open letter to Martin Wittemann, an urge to do not break the only robust and consistent JavaScript development environment, in sense of bug #8618 [1]. How robust and consistent? Most importantly it is about:

  • Code structure: modern feature-rich object model with properties, events, interfaces, mixins and more, namespace tree, data-binding,
  • Dependency management: automatic and transparent dependency resolution, component packaging,
  • Deployment: code optimisation, single- and multi-part builds,
  • Standard library: i18n, CLDR, high level BOM API, normalised events, normalised ECMAScript, test infrastructure, API documentation, feature detection.

All this comes out-of-the-box, builds layer on layer, is seamlessly integrated and handed to an end developer on a silver platter. The codebase is one of the best quality I have ever seen. It is readable, comprehensible, possible to extend, and is a huge a knowledge resource per se. And note, I am talking about tools and environment, not UI. Like former Qooxdoo developer, Fabian Jakobs, stated in one of his presentations [2]:

Don’t just look at the widgets, look at the development tools as well.

Luckily, as was recently stated in Website fundamentals: next challenges [3], the “next” (branch and then a separate repo [4]; later referenced Next) turned out to be a experimental website-oriented fork of Qooxdoo, which doesn’t mean to be merged back to Qooxdoo. At least any time soon. Panic is soothed, impending doom doesn’t overhang the good times. It’s time to dissect and discuss.