A proposito di Joomla, Joda, MySQL e PostgreSQL

Ieri ho aperto il forum di Joomla.org e mi sono ritrovato questa schermata poco simpatica :x

Errore sul sito Joomla.org

Errore sul sito Joomla.org

Il numero di connessioni al server MySQL ha superato il limite, per cui niente connessione al forum. E come è successo a me, probabilmente è successo a centinaia di altre persone che in quel momento stavano consultando il forum. Poco ci azzecca con Joomla, dato che il software su cui gira il forum è phpBB, ma molto ci azzecca con MySQL.

Questo mi ha fatto tornare in mente una e-mail che ho ricevuto qualche tempo fa, in cui mi veniva chiesto se fosse meglio PostgreSQL o MySQL, ed i piani di Joomla per quanto riguarda il database, ed ho approfondito un po' il discorso.

Al momento Joomla supporta esclusivamente il database MySQL.

MySQL è un database pensato per essere il più possibile veloce, e per raggiungere tale velocità ha volutamente rinunciato a certe caratteristiche proprie di DBMS completi, scalabili (e costosi!) come Oracle.

Ciononostante, MySQL è un grandioso prodotto che ha avuto nel Web il proprio successo proprio per le sue caratteristiche di velocità e snellezza.

Joomla è in piena espansione e potrebbe trarre molto vantaggio dalla possibilità di utilizzare diversi DBMS a seconda delle preferenze, dell'ambiente di deployment e dalle esigenze di sviluppo.

Per questo qualche tempo fa è stato lanciato il progetto Joda, che vuole proporsi come framework per l'astrazione delle connessioni al database, in modo che supportare un nuovo DBMS significherebbe semplicemente svilupparne un driver.

Come si può leggere nella discussione, persino Microsoft si è dichiarata interessata a quello che è iniziato come progetto one-man, fornendo la disponibilità di fondi ed aiuto. Questo per introdurre il supporto di MS SQL Server in Joomla.. ma in modo costruttivo: non realizzare l'integrazione soltanto con MS SQL Server, bensì aiutare a realizzare il framework in modo da poter supportare ANCHE il loro prodotto. Complimenti davvero.

Se ne è parlato anche nella mailing list degli sviluppatori e presto potremmo vedere novità importanti in questa direzione.

Un cambiamento del genere è una delle cose che probabilmente mettono ansia agli sviluppatori, per cui non penso che questa feature vedrà la luce nell'immediato futuro.. non è nei piani di Joomla 1.6, forse vedrà la luce in Joomla 1.7.. o ancora più avanti.

Infatti nonostante SQL sia uno standard, è in continua evoluzione e ogni vendor di DBMS realizza implementazioni che differiscono l'un l'altro, se pur nei dettagli: il formato della data, l'uso delle virgolette singole o doppie, i tipi di dato.. qualche anno fa ho realizzato un programmino Java per convertire un database PostgreSQL in un DB Access per poter eseguire un'applicazione da CD, ed ho trovato davvero molte differenze.. anche soltanto lievi modifiche che non consentono di realizzare applicazioni che funzionano in modo trasparente con entrambi i database.

Joomla contiene al suo interno molte query che si possono definire "specifiche" per MySQL: con un altro DBMS potrebbero non funzionare e in tal modo causare grossi problemi al sito Web.

Per non parlare delle estensioni: già il passaggio da Joomla 1.0 a 1.5 è stato traumatico per molte (ed alcune non hanno ancora rilasciato una versione funzionante..): dover ristrutturare da capo un'estensione significa creare una spaccatura netta come quella che sta avvenendo ora sulla JED, dove si vedono estensioni per Joomla 1.0 e per 1.5, premurosamente separate.

Si prevede un futuro molto roseo per il legacy mode :roll: