Nooku Framework, il futuro dello sviluppo su Joomla

Il Framework Nooku, nome in codice Koowa, è un framework di sviluppo PHP per la creazione di applicazioni basate sul Web, nato in casa JoomlaTools, azienda belga che si occupa di Joomla e Web Development. Un framework è un insieme di classi e codice che fornisce funzionalità di vario tipo.

Ho già segnalato in passato l'esistenza di questo framework, ma non sono mai entrato nei dettagli del suo utilizzo.

In questi ultimi giorni, deciso a compiere i primi passi con questo nuovo approccio allo sviluppo su Joomla, ho iniziato lo sviluppo di una nuova web application usando il Nooku Framework come base.

Devo dire che i risultati sono impressionanti. Johan Janssens (già Lead Architect di Joomla 1.5) e Mathias Verraes sono riusciti a creare un framework RAD che consente al programmatore/progettista di risparmiare, secondo la mia esperienza, più del 50% del codice e dei file necessari per creare una estensione Joomla.

Prendendosi cura dei dettagli ininfluenti nel flow dell'applicazione, è possibile concentrarsi su quello chc si vuole realizzare.

Il Framework Nooku, secondo me, è quello che avrebbe dovuto essere Joomla, la sua naturale evoluzione, in continuo sviluppo ma estremamente stabile e veloce: astrazione del database (ovvero possiamo aggiungere campi a piacere senza dover modificare il codice), Model Driven Development, Namespaces, Command Chain, Event Handler, piena implementazione di molti design pattern.. e molte altre cose che devo ancora scoprire!

Dopo due anni di sviluppo di estensioni per il CMS Joomla 1.5, è stato molto semplice entrare nell'ottica di sviluppo per il Framework Nooku, mentre sarà difficile tornare indietro: visto cosa c'è "al di là della porta" è semitragico sviluppare "old style".

Con Nooku sono già stati realizzati svariati progetti, tra quelli pubblicati possiamo citare NinjaBoard, estensione per la realizzazione di un forum, creata da NinjaForge.

Perchè usare Joomla come base per lo sviluppo?

Joomla è stato sempre pubblicizzato come CMS, per cui molte persone mostrano scetticismo quando si parla di realizzare applicazioni usando Joomla come base.

Non è così, in effetti. Joomla, a differenza di altri CMS Open Source come Drupal e WordPress,  in realtà è un framework (parlo di Joomla 1.5) su cui è stata realizzata l'applicazione CMS. Questo significa che possiamo eliminare gran parte delle funzioni che siamo soliti vedere (Article Manager, gestione contatti ecc) e lasciare soltanto l'infrastruttura necessaria per la creazione della nostra idea, sfruttando il framework di Joomla per semplificarci il lavoro. Ancora meglio, possiamo installare il Framework Nooku ed avere un ulteriore layer di astrazione e semplificazione.

Abbiamo di più: a differenza di altri framework di sviluppo web, come Ruby on Rails, Symphony, cakePHP, usando Joomla come base abbiamo già a disposizione moltepici funzionalità: un semplice e potente template engine (e migliaia di template disponibili), la gestione delle estensioni, il sistema dei menu e della presentazione dei moduli, un sistema per la gestione degli utenti e dei loro parametri.

Nooku va oltre Joomla

Il Framework Nooku interagisce con Joomla tramite un adapter, ed è già stato testato usando Joomla 1.6 in versione alpha. La compatibilità futura è garantita.

Quello che stupisce è che Nooku è stato facilmente installato con successo anche su WordPress. A quando Drupal?

Essere indipendenti dalla tecnologia sottostante è davvero fantastico, e nel futuro la roadmap di Nooku prevede proprio questo: essere tanto indipendente da non aver bisogno di alcun supporto, essere standalone.