Proposing exciting new OO features
Filed under: Development
By Andreas Ecker @ February 14, 2007 8:22 pm
Here is some important news about huge improvements to the current OO syntax and feature set of qooxdoo.
As has been announced in the roadmap quite some time ago, we are currently addressing many of the shortcomings of the OO class declaration of qooxdoo 0.6.x. Those changes are prerequisites to improving qooxdoo's layouting, theming and integration capabilities.
Like many other JavaScript frameworks qooxdoo has seen many changes to its OO capabilities, ever since qooxdoo 0.1 was released in early 2005. The goal has always been to find the best compromise between power, elegance and performance. Major milestones along the road were the removal of the separate extend() function, and most significantly the introduction of namespaces in release 0.6.
Given the proposed features, their current proof-of-concepts and actual implementations, we think that the new OO features of qooxdoo are going to rock!
We don't know of any JavaScript solutions that are equally powerful, elegant and performant.
We are very interested in your collaboration and in any of your feedback to come up with the best possible result. Before you dive into any of the proposed features, it is important to note, that from an end-user perspective the most noticeable change is the syntax change of the class declaration. None of the advanced OO features like interfaces and mixins need to be understood by the typical qooxdoo user. Nonetheless, they are powerful concepts that help to improve the qooxdoo framework in the future and should be very interesting to framework developers and contributors.
- As a starting point, it may help to read a summary of the current class declaration that also shows some of its shortcomings.
- Details about the proposed class declaration for qooxdoo 0.7 are available in a separate article.
- If you are not into details right now, just see a comparison of changes between 0.6.x and 0.7 that wraps up the proposed features.
It is all work in progress, so not all information on the homepage may always be complete and reflect the current state of either development or discussion. We will try hard to permanently update the documenation and to incorporate any of your ideas and suggestions. Also, please take the time to think twice about any of your findings that you regard as problematic or unaesthetic at first sight. We need to find the best solution that everyone can live and hopefully be happy with.
That's it for a start. There are many more topics related to the changes mentioned above. Just some of those: There will be migration support, of course, which will significantly reduce the time people need to convert their projects to the proposed new syntax of qooxdoo 0.7. There is also a working implementation for automatic browser-specific builds, including a runtime dispatch at startup. Variants further allow for developer-friendly checks during coding that are automatically removed in deployment builds. Improved API reference. And so on. Stay tuned for more info on those new cool features!
We are looking forward for your collaboration and feedback, and really hope that are you as excited about the new possibilities as we are. Rock 'n' roll!

Comment by Anolphie
On the first look i tought: Uhhhh. I have to write more…. for e.g:
Instead of
qx.OO.defineClass(”my.cool.Class”,
my.great.SuperClass);
now:
qx.Class.define(”my.cool.Class”, {
extend : my.great.SuperClass
});
But the longer i looked on the new definitions: Really Great!!! I think my source-code will get much more readable and cleaner than ever before and i will get great separations like the clear definitions for static and dynamic classes. And not to mention great new things as abstract classes and interfaces.
Now i can’t wait to use the new features, altough it means that i have to modify my sources….
Keep on the great Work!! Before i saw Qooxdoo i never tought about coding anything in javascript and now im developing some big web applications only because of your great framework. For me Qooxdoo is the best thing since java
(altough a framework not really could be compared to a programming language)
February 16, 2007 6:02 pm
Pingback by qooxdoo » News » Demonstrating new OO features
[...] a previous post those exciting new OO features have been announced. Also, preliminary documentation of the new features has been [...]
March 6, 2007 8:16 pm