Activate your free membership today | Log-in

Friday, December 18th, 2009

The Maturation of a Framework; qooxdoo reaches 1.0

Category: Qooxdoo

qooxdoo

From the moment I saw qooxdoo, I felt they had an excellent & very polished set of functionality as well as insanely rich UI controls but I never took the time to look at the commitment that the team had put into this project. So when qooxdoo project lead Andreas Ecker buzzed me to tell me that the framework had reached 1.0, I decided to take a peak at the history of the project (at least in terms of first available downloads). I looked at the QooxDoo download repo and was surprised by how mature this project is. When you consider that the project was first registered on SourceForge in January, 2005 and made their first available version of qooxdoo on May 9th, 2005, it shows that an incredible amount of effort & dedication has gone into cultivating the project and framework.

The results are very obvious as qooxdoo v1.0 sports one of the richest feature sets of any JavaScript framework. Apart from the standard JavaScript syntactical sugar and DOM traversal/manipulation capabilities found in all JS libs, qooxdoo’s suite of UI controls are outstanding and are comparable to any of the best UI libs available. Looking at their showcase of demo apps, you can see how appealing the controls & layout capabilities are.

qooxdoo-grid

And it really does focus on the “framework” aspect of things with support for internationalization, dependency resolution, integrated unit & functional testing, build management and more.

There is much more offered in qooxdoo, however, than just a large set of widgets, powerful layout managers and virtually unlimited theming capabilities. As a full-fledged application framework, it comes with an integrated, platform-independent tool chain that covers the entire range of app development and deployment – code validation, JS compiling and linking, compression and optimization, just to name a few. Other built-in tools allow for easy unit testing, automated GUI testing, searchable API reference, or cross-browser debugging a la Firebug. Mastering large-scale JavaScript applications is greatly facilitated by build process features such as automatically combined images (”sprites”) or transparently breaking up an app into various parts that are loaded on-demand.

So congratulations to the qooxdoo for reaching a major milestone in your project. The methodical approach for your releases has certainly paid off as qooxdoo v1.0 looks great!

Posted by Rey Bango at 8:27 pm
23 Comments

++++-
4.1 rating from 59 votes

Wednesday, September 23rd, 2009

Qooxdoo 0.8.3; New widgets, layouts, and utilities

Category: Qooxdoo

Qooxdoo has a new 0.8.3 release that includes a lot:

Take a look at the detailed release notes to learn more, and then have a play in the playground to see it at work.

Posted by Dion Almaer at 6:48 am
2 Comments

++++-
4.1 rating from 60 votes

Tuesday, April 7th, 2009

Qooxdoo Jumps into Taskspeed FTW (on IE)

Category: Performance, Qooxdoo

The Qooxdoo gang have created tests for Taskspeed with some surprising results:

On IE qooxdoo is by far the fastest framework.

Across browsers and frameworks, qooxdoo gained the highest ranks on all versions of IE (i.e. 6, 7 and 8), and made its lowest mark coming out third on Firefox 3.0. This exceptional IE performance also leads to the best overall score. The IE results are a big surprise and we’ll try to investigate, what we do different (better) than all the other JavaScript libraries.

As always performance tests should be taken with a grain of salt. It’s hard to judge whether all implementations are really equivalent. For example in the jQuery tests John Resig implemented all tests in a pure jQuery way. There are obvious optimizations he consciously omited, but it apparently reflects the genuine jQuery coding style. There is no official qooxdoo way to work with the DOM yet, so we modeled our tests closely after the Dojo and jQuery tests.

Fabian Jakobs analyzes why they’ve performed so well, speculating that because they built a GUI toolkit they’ve been optimizing DOM operations since the beginning to keep it fast–and because they use Sizzle, their lack of attention to CSS optimizations didn’t kill them.

Fabian also mentions that these results encourage their intention to make qooxdoo’s DOM API available stand-alone:

These results show that we have a good base and encourage us to move forward in this direction.

You can check out the tests for yourself, though as Fabian mentions in his post, they require a trunk build of qooxdoo.

Posted by Ben Galbraith at 9:19 am
27 Comments

++++-
4.1 rating from 60 votes

Tuesday, March 10th, 2009

Qooxdoo Inspector and 0.8.2 Release

Category: Qooxdoo, Utility

Andreas Ecker from the Qooxdoo team wrote to us about the recent 0.8.2 release, which includes a bunch of good stuff, including:

* Inspector, a cross-browser debugging tool a la Firebug
* Tons of improvements and bugfixes over the previous version
* Tested for all common browsers, including betas like IE8
* Optimized packaging and loading of qooxdoo applications
* CSS3 selector engine and a jQuery-like low-level API
* Preview of the upcoming data binding layer
* Preview of the new infrastructure for virtual widgets

There are quite a few of these features we'd like to highlight. First, let's talk about the Inspector.

Inspector

While the Inspector appeared as a third-party contribution in the 0.7 release, this release marks the first time that it has been included as a core part of the Qooxdoo framework (and it has been a bit of work to port the 0.7 version to 0.8.2). The Inspector solves a problem that many GUI toolkits have. DOM inspectors are handy for semantic mark-up, but often they aren't as useful as they could be for exploring component hierarchies–because in such environments, the DOM elements that compose a component are low-level building blocks, not the higher-level semantic constructs that compose the GUI.

The Qooxdoo Inspector provides a solution to this problem by providing a higher-level inspector that groks Qooxdoo components and can therefore provide a useful, higher-level view of the hierarchy.

In addition to the component hierarchy viewer, it also provides a VB-like property pane for changing properties of components on-the-fly.

Finally, the Inspector provides a sort of live heap viewer for those objects managed by the Qooxdoo framework:

This object view is something I'm personally quite happy to see; over in the Mozilla Developer Tools Lab we're trying to do something more general for Firefox–and something like this is long overdue.

jQuery-like API

This release also includes a few features designed to give Qooxdoo users the same DOM goodness that jQuery users enjoy. This is accomplished through the qx.bom.Collection class. Here's how to create an instance of that class:

JavaScript:
  1. var coll = new qx.bom.Collection(li);

They've also implemented Sizzle, so the same jQuery-supported selectors can be used with the Collection class:

JavaScript:
  1. var headers = qx.bom.Collection.query("h2,h3");

There's a complete document that compares jQuery to Qooxdoo's new Collection feature.

"Virtual" Components

Qooxdoo is moving towards support for "virtual widgets", by which I think they mean components that virtualize the display of data, such that, for example, a table that contains 20,000 rows will only render the set of those rows that are visible. The following screencast discusses the plans for this virtual component framework:

Posted by Ben Galbraith at 6:00 am
Comment here

++++-
4.1 rating from 31 votes

Monday, March 9th, 2009

Big qooxdoo Update: Live Debugging, Sizzle, Data-Binding

Category: Qooxdoo

qooxdoo 0.8.2 was released last Friday with a some big enhancements, the two most prominent being the new live debugging Inspector application and the integration of John Resig's Sizzle selector engine into the framework:

This release was originally planned as a smaller Bugfix release but at least two features go way beyond just bug fixing. The most prominent addition is the 'Inspector' application, which provides cross browser Firebug like debugging of qooxdoo applications. The other major addition is the integration of John Resig's selector engine sizzle and a jQuery like collection API. This brings us one step further to use qooxdoo not only as GUI toolkit but also to use as a cross-browser DOM toolkit. Beyond that we allow our users to take first peek at the cool features we have in the pipeline for qooxdoo 0.9, which include data binding and an infrastructure for virtual widgets.

The new Inspector is especially interesting since it provides qooxdoo developers with real-time debugging capabilities, similar to Firebug, but more specific to the qooxdoo framework itself. It allows for qooxdoo-specific debugging, including displaying the UI hierarchy and modifying the properties of qooxdoo widgets.

The inclusion of Sizzle was done to enhance the DOM manipulation capabilities of qooxdoo and "introduces a jQuery-like coding style and chaining concept around its existing low-level layer." The addition is considered experimental within the qooxdoo framework and the team will be looking for feedback from their community on this new feature.

Two other notable enhancements are a data binding layer and an infrastructure for virtual widgets, both which are geared towards allowing users to display and manipulate large amounts of data without a performance hit.

More information on this release and migration can be found here.

Posted by Rey Bango at 11:58 am
2 Comments

+++--
3.9 rating from 40 votes

Tuesday, December 23rd, 2008

Qooxdoo 0.8.1 and Playground

Category: JavaScript, Qooxdoo

Following close up on the 0.8 release, the Qooxdoo team wrote in to let us know about their new 0.8.1 release:

It's a maintenance and bug fix
release, with 250+ bugs fixed, but also some interesting novelties
especially on the tooling and application side.

Among the interesting changes is a first step towards a new data binding framework. But the real news is a new Playground application that lets you play with Qooxdoo and see the results live in the browser, complete with syntax highlighting!

They use the excellent CodeMirror project to power the JavaScript code editor. Very cool way to get to know the JS APIs.

Posted by Ben Galbraith at 10:44 am
1 Comment

+++--
3.6 rating from 30 votes

Thursday, January 17th, 2008

Qooxdoo 0.7.3 Release

Category: Qooxdoo

Quooxdoo 0.7.3 has been released, and although it is primarily a maintenance release, they did sneak it:

  • Cross-browser logging features based on Firebug Lite
  • A source-code validation utility similar to JSLint, executed by a simple “make lint”
  • Re-worked feedreader to demonstrate best practices for application development
  • Early preview of the next-generation build tool generator2.

The full release notes go into detail on the updates to the core framework, classes, widget system, and tools.

Posted by Dion Almaer at 6:43 am
5 Comments

++++-
4.1 rating from 27 votes

Tuesday, September 11th, 2007

Qooxdoo Tech Talk Presentation

Category: JavaScript, Library, Qooxdoo

The first of our recorded sessions from The Ajax Experience (East coast coming!) is now live.

You can view the presentation on qooxdoo, with Andreas Ecker, Project Lead of qooxdoo and Derrell Lipman, qooxdoo Team Member.

qooxdoo is a comprehensive and innovative Open Source JavaScript framework. In this session, you’ll learn how to leverage qooxdoo to develop professional JavaScript applications, using its state-of-the-art GUI toolkit that allows for easy development of impressive cross-browser web applications. Project lead Andreas Ecker and team member Derrell Lipman will also demonstrate and discuss qooxdoo's elegant Ajax and remote procedure call communication layers.

In this session, you will learn how to:

  • Use qooxdoo's wide array of widgets and its tool chain to easily develop truly innovative web applications;
  • Create applications with zero-footprint and no memory leaks;
  • Have your application run transparently to the user;
  • Build applications without any knowledge of CSS or even HTML, using typical commands from other major toolkits for native applications.

Once you launch the presentation window, you will see a full transcript that you can peruse.

Posted by Dion Almaer at 6:48 am
20 Comments

+++--
3.9 rating from 32 votes