Drupal è un gestore di contenuti (CMS) Open Source realizzato in PHP, che consente di realizzare una grande varietà di siti Web basati sulla logica contenuto/commenti. Le sue doti di robustezza, sicurezza e flessibilità ne stanno decretando la diffusione a livello mondiale. Drupal Italia è il punto di incontro per favorire la partecipazione di tutta la community di utenti Drupal e gestisce il progetto ufficiale di traduzione e localizzazione italiana. Abbiamo parlato di Drupal con Marco Moscaritolo uno degli amministratori della community italiana.
Drupal è una piattaforma di sviluppo CMS: quali sono le caratteristiche principali e quali gli elementi che la differenziano dai suoi competitors?
Drupal nasce come CMS, ma in verità si tratta di uno strumento molto più potente ed estendibile; molto spesso (dai conoscitori più profondi del sistema) lo si sente indicare come Framework, ovvero non come sistema da utilizzare, ma come infrastruttura di partenza per la creazione di applicazioni più complesse.
Personalmente non mi sento sicuramente di dire che è un vero e proprio framework, come può essere Zend o altri sistemi esistenti, ma sicuramente non si tratta di un semplice CMS.
Tra le caratteristiche principali del sistema possiamo certamente trovare tra di esse l'enorme modularità del sistema, raggiunta tramite la possibilità di usufruire degli hook, ovvero di andare a creare dei componenti che si agganciano alle funzioni fondamentali del core, andando a aggiungere elementi. Se vogliamo fare un esempio forse più comprensibile agli sviluppatori classici, possiamo indicare ogni hook come un overriding di una funzione, concetto molto usato nella programmazione ad oggetti (OOP), che nel caso di Drupal è sicuramente un modello di sviluppo a cui il sistema cerca di avvicinarsi, pur non essendo sviluppato utilizzando le potenzialità OOP di PHP.
Il suo punto di forza, quindi, è sicuramente il modello che è stato ideato per il suo sviluppo, che permette di ottenere estensioni (moduli) in maniera semplice e senza dover conoscere intimamente il core e il suo funzionamento, permettendo quindi una serie di possibilità precluse ad altri sistemi.
Da considerare, inoltre, che a differenza di altri sistemi, molti sviluppatori mettono a disposizione gratuitamente il proprio lavoro sul server principale, andando così ad aumentare le funzionalità del
sistema. Attualmente esistono migliaia di moduli per la versione 5.8 (ormai old-stable) e qualche centinaia per la versione ormai stabile 6.3.
Come è organizzata la comunity?
A livello mondiale esistono diverse community, sicuramente la principale e più attiva è quella di http://drupal.org, ma in quasi ogni stato esistono delle community locali che supportano il progetto fornendo
supporto (vedi http://www.drupalitalia.org) o lavorando alla traduzione del sistema e dei suoi componenti aggiuntivi. Sotto questo punto di vista enormi vantaggi si hanno con l'introduzione di un server di traduzione realizzato nell'ultimo periodo da uno sviluppatore straniero.
Per la comunità italiana è possibile lavorare sulla traduzione in maniera centralizzata direttamente dal sito
http://l10n.drupalitalia.org, rendendo così disponibile il proprio lavoro anche a tutto il resto della comunità senza dover procedere all'uploading tramite CVS sul server principale.
Quali sono i problemi che avete incontrato? Quali sono stati invece i fattori critici di successo?
Sicuramente, come tutti i programmi, ci sono alcune pecche, Drupal infatti è un sistema studiato per consentire un enorme flessibilità e stabilità del sistema, ma è anche vero che ha una curva di apprendimento abbastanza ripida e molte operazioni non sono banali e si richiede una buona conoscenza del meccanismo di funzionamento e di programmazione per poter sfruttarne al meglio le potenzialità; questo di conseguenza limita la fetta di potenziali utenti. Proprio per ovviare a questi inconvenienti, negli ultimi periodi, sono stati introdotti i moduli del gruppo CCK e Views che permettono anche agli utenti che si avvicinano per la prima volta allo sviluppo di sistemi web, di ottenere ottimi risultati. Ciò non toglie che per poter sfruttare a pieno tutte le potenzialità del sistema sia necessario "sporcarsi le mani" con codice PHP & MySQL.
Puoi citare alcuni case history?
Molteplici sono i siti sviluppati usando Drupal, sopratutto nel campo internazionale, tra i più famosi si può citare:
– http://www.mtv.com.uk/
– http://myplay.com/
– http://warnerbrosrecords.com/
– http://www.republicansforobama.org/
una lista più completa potete trovarla nella sezione apposita del sito della comunità internazionale, all'indirizzo: – http://drupal.org/success-stories
Quali sono i prossimi sviluppi previsti?
Gli sviluppi previsti sono molteplici, i settori verso cui si sta ponendo maggiore attenzione nella fase di sviluppo attuale (la versione 7) sono sicuramente l'attenzione verso le tecnologie AJAX e l'ottimizzazione dell'usabilità e accessibilità del sistema.
Attualmente il sistema è già conforme con il codice XHTML 1.0 Strict, e rispetta la quasi totalità delle guideline stabilite da WCAG 1.0, ma è altrettanto vero che vi sono sempre evoluzioni in questo settore e che
di conseguenza il sistema deve mantenersi sempre aggiornato; inoltre la collaborazione con il progetto dell'università del Minesota [http://drupal.org/node/204667 ] e attraverso gli studi condotti da gruppi autonomi si sta cercando di rendere la sua interfaccia il più possibile semplice e intuitiva.
Ulteriori stats sono di seguito riportate:
– Moduli per la 5.7 circa 3600
– Moduli per la 6.2 circa 1200
– Temi per la 5.7 circa 200
– Temi per la 6.2 circa 80
per tutti questi ci riferiamo ai moduli rilasciati sul sito ufficiale con licenza GPL, molti di più se consideriamo quelli rilasciati non sul sito ufficiali o commercializzati da siti esterni.
Esistono, inoltre, distribuzioni di Drupal pensate per determinate tipologie di utenza (i cosiddetti profili), tra questi i più famosi e importanti sono sicuramente Ubercart (siti vetrina commerciali) e DrupalEd (pensato principalmente per le scuole e università americane)