Drupal: storia e filisofia

Drupal nasce nel 2001 da un progetto personale di Dries Buytaert, studente universitario belga che voleva creare una piccola intranet per condividere notizie con i suoi coinquilini. Il software che ne risultò era rudimentale, ma funzionava. Quando Buytaert decise di renderlo pubblico e aprirlo a chiunque volesse contribuire, non stava pianificando una piattaforma enterprise: stava semplicemente condividendo uno strumento utile.

Il nome "Drupal" deriva dall'olandese druppel, che significa goccia. Il dominio originale che Buytaert voleva registrare era "dorp" (villaggio in olandese), ma un errore di battitura produsse "drop", e da lì il nome prese forma. È un dettaglio minore, ma dice qualcosa sul carattere informale delle origini del progetto.

Da tool personale a infrastruttura globale

La crescita di Drupal nei primi anni duemila fu guidata dalla community più che da una roadmap aziendale. Gli sviluppatori che adottavano la piattaforma contribuivano ai moduli, correggevano i bug, proponevano miglioramenti. Questo modello, che oggi viene chiamato governance aperta, era allora semplicemente il modo in cui il progetto sopravviveva senza finanziamenti.

Le tappe principali dello sviluppo:

  • 2001: prima release pubblica, funzionalità minime, community nascente
  • 2003: Drupal 4.0, introduzione del sistema di moduli contrib
  • 2007: Drupal 5 e 6, adozione massiccia da parte di università e istituzioni pubbliche
  • 2011: Drupal 7, la versione che ha portato Drupal alla maturità enterprise e che è rimasta in uso per oltre un decennio
  • 2015: Drupal 8, riscrittura completa basata su Symfony, svolta architetturale fondamentale
  • 2019-2022: Drupal 9 e 10, consolidamento del nuovo modello di rilascio con major version più frequenti e meno traumatiche
  • 2024: Drupal 11, versione corrente, base su cui si costruisce Drupal CMS e l'iniziativa Canvas

La svolta di Drupal 8

Drupal 8 merita una menzione separata perché rappresenta la decisione più controversa e più importante nella storia del progetto. Fino a Drupal 7, la piattaforma era costruita su codice custom: funzionava, ma era difficile da integrare con il resto dell'ecosistema PHP e richiedeva agli sviluppatori di imparare convenzioni specifiche di Drupal prima di poter essere produttivi.

Con Drupal 8, il core adottò Symfony come framework sottostante, insieme ad altri componenti della comunità PHP come Twig per i template e Composer per la gestione delle dipendenze. La scelta fu divisiva: molti sviluppatori della community storica trovarono la curva di apprendimento troppo ripida, e la migrazione da Drupal 7 si rivelò più complessa del previsto. Il risultato, però, fu una piattaforma allineata agli standard moderni dello sviluppo web, capace di attrarre sviluppatori PHP senza un background specifico su Drupal.

La filosofia che non è cambiata

Nonostante le evoluzioni architetturali, alcuni principi sono rimasti costanti nel tempo. Il primo è che Drupal è un software libero, rilasciato sotto licenza GPL, e questo non è mai stato in discussione. Il secondo è che le decisioni sul core vengono prese dalla community attraverso un processo pubblico, non da un'azienda con interessi commerciali diretti sulla piattaforma.

Acquia, l'azienda fondata da Buytaert nel 2007 per offrire servizi commerciali attorno a Drupal, è il principale sponsor del progetto ma non ne controlla la direzione. È un equilibrio delicato, simile a quello di altri grandi progetti open source, e ha retto finora perché la community ha dimensioni e diversità sufficienti a non dipendere da un singolo attore.

Oggi Drupal è usato da oltre un milione di siti nel mondo, tra cui: la Casa Bianca, la Commissione Europea, le Nazioni Unite e centinaia di università e istituzioni pubbliche, oltre che da migliaia di aziende e decine di migliaia di sviluppatori. Non è la piattaforma più diffusa in termini assoluti, ma è quella che ha trovato il suo spazio preciso: libertà e personalizzazione, progetti medio/complessi, dati strutturati e requisiti di governance che altre piattaforme faticano a soddisfare.