Dioscouri partnered on the Nooku project over a year ago, in mid-summer 2008. At the time there weren't many of us, but it was immediately clear to me what sort of an impact the project would eventually have. I was particularly confident that Joomla! lead architect Johan Janssens and DocMan architect Mathias Verraes were leading the way.
However, with the Nooku Framework now posted on Sourceforge, the project has reached a new and impressive stage in its life, and as a result of a recent conversation with AmyStephen on Twitter, I've decided to post some thoughts on Nooku. I consider this the beginning of a very long conversation that won't be confined to Nooku, but rather to general Joomla! development.
1. What is the Nooku Framework?
The Nooku Framework is (in short) a Joomla system plugin that adds a terrific set of development classes to Joomla.
2. What difference does it make?
Well, first, it definitely cuts down on development time. Writing for Nooku is simpler and faster than writing for Joomla. We simultaneously wrote AMIGOS, our affliate extension, for both Joomla and Nooku, and the difference in the amount of code necessary was startling. For a fantastic example of this, take a look at this side-by-side comparison of Joomla and Nooku code: http://bit.ly/iEDX7
Second, it encourages developers to write their Models and Views such that they can be used by other applications. By removing default states for models and decoupling both models & views from the $_REQUEST variable (allowing the controller to set states for models and views), you have code that can be reused ad nauseum. Take a quick look here at an overview of why (and how) you organize your MVC application this way: http://prezi.com/79462/view
Why does this matter? Take this, for example: We're nearly finished with KARMA, a CRM application for Joomla that provides you with a site-wide snapshot of a user's activity throughout all of your Joomla extensions. So, for example, if you clicked on the user "tommy4", you would see a dashboard that includes:
- all the com_content or K2 articles "tommy4" published
- all the JXTended comments "tommy4" wrote
- all the VM products or AMBRA SUBSCRIPTIONS that "tommy4" purchased
- all the BILLETS support tickets that "tommy4" submitted,
- etc., etc.
$model = KFactory::get(’site::com.billets.model.tickets’);
$model->setState( 'userid', '4' );
$tommysTickets = $model->getList();
It's that simple.
3. Will Dioscouri use the Nooku Framework?
We want to. We really really want to. We're going to release Nooku-Framework-compatible versions of all our new extensions. However, until the Nooku Framework is more widely adopted, we're not going to use it exclusively -- we don't want our extensions to become inaccessible to sites that won't or can't use Nooku Framework.
[this followup response to a question from AmyStephen on Twitter was added 26 Aug, 11:20am]
Why would it be important to wait for broader adoption? Even in an environment with two of the top Joomla developers and several dozen partners & testers, bugs will find their way into the code. Wider adoption means more eyeballs, more instances of the framework, and more testing scenarios. These will undoubtedly reveal ways the framework can be improved, much moreso than all the use-case diagrams in the world. Even the Joomla framework, with its 10M+ downloads, remains under constant active development because there is always room for improvement.
So what does that mean? This is call for more of you to connect to Sourceforge and download the Nooku system plugin! Take your Joomla site to new heights.
Cheers.














Wednesday, 26 August 2009
I love it that Dioscouri is developing with Nooku and hope to see some of there extensions soon the more "Nooku compatible" extensions the sooner it will be largely adapted
thanks guys
Wednesday, 26 August 2009
Reading the Nooku website, it positions itself as a management tool for multi-language sites. Reading the above, I understand this is not just another JoomFish in the pond but an actual upgrade of the system.
The folks at Nooku would have to do a better selling job on their site to get the other values (?) of their system across to users (not developers).
Wednesday, 26 August 2009