PostgreSQL alternativa a MySQL: una precisazione

Vorrei cogliere l’occasione per commentare l’articolo apparso ieri su Punto Informatico intitolato “UE: Sun e Oracle, promosse”. In questi giorni, vista l’approvazione dell’acquisizione di Sun – e conseguentemente – da parte di Oracle ad opera della commissione Europea, il nome di PostgreSQL è stato più volte tirato in ballo.

In particolare, volevo fare una precisazione circa la dichiarazione pubblicata da Punto Informatico da parte di Florian Mueller, che in inglese (fonte News Factor) recita:

“The EC’s reasoning has to be reviewed when all the details of the decision are known, but based on the EC’s press release, it seems to be a decision based on wishful thinking for the future more so than anything else. PostgreSQL has been around for decades without having had its mainstream breakthrough, so the EC can’t seriously claim that PostgreSQL could replace MySQL as a competitive force.”

Non voglio entrare nel merito dell’interpretazione della prima frase (personalmente trovo la traduzione non proprio calzante), mentre mi sembrano doverose alcune precisazioni sul secondo punto. Non credo che la validità di un progetto debba essere giudicata esclusivamente dalla diffusione di massa. Da alcuni anni partecipo alle varie attività della comunità PostgreSQL, ma in passato ho lavorato per diversi anni anche con MySQL.

Brevemente, PostgreSQL è un progetto open-source distribuito in BSD nato formalmente nel 1996 con l’aggiunta del supporto SQL a Postgres, i cui predecessori (Postgres e Postgres95) risalgono ai progetti sviluppati a partire dal decennio precedente all’Università della California a Berkeley. È quindi nel 1996 che la comunità di PostgreSQL vera e propria è nata. Vorrei enfatizzare il concetto di “comunità“, perché PostgreSQL, a differenza di MySQL, è sempre stato un progetto di comunità. E’ la comunità che detiene il codice sorgente di PostgreSQL e che, in virtù della licenza permissiva BSD, non potrà mai essere detenuto da una singola azienda.

Ritornando alla diffusione di MySQL, è ragionevole pensare che un’azienda come MySQL abbia sempre investito nel marketing. E’ altrettanto ragionevole pensare che il marketing promosso da una azienda con personale qualificato nel settore sia più efficace del marketing promosso da una comunità di sviluppatori, per giunta composta da membri provenienti da tutti i continenti.

Esiste poi indubbiamente una spiegazione tecnica al vantaggio in termini di “diffusione di massa” raggiunto da MySQL negli anni, soprattutto quelli a cavallo del millennio con l’uscita della release 3.23. La forte sinergia con il linguaggio che cambiò il modo di fare applicazioni web dinamiche di massa in quegli anni, ovvero PHP. Lo stack Linux + Apache + MySQL + PHP (LAMP) ha contribuito in modo importante alla diffusione di MySQL.

PostgreSQL in quegli anni (e si parla della release 6.5) aveva da poco introdotto il modello MVCC (multi-version concurrency control) per la gestione delle transazioni ed il team di sviluppo si stava concentrando sul rendere PostgreSQL affidabile e conforme allo standard SQL, piuttosto che sulle sue capacità prestazionali.

Da qui il “mito” della lentezza di PostgreSQL nei confronti di MySQL, che in quel periodo era innegabile, vista anche la diversità dei due prodotti.

Ma di “acqua sotto i ponti” ne è passata da allora, ed entrambi i database si sono evoluti a 360 gradi – seppure con percorsi diversi. Inoltre, il fatto che PostgreSQL sia un progetto di comunità, non significa che non ci siano aziende dietro che lo utilizzano (ad oggi parliamo di stime di circa 5 milioni di download all’anno di Postgres), che ne supportano lo sviluppo e al contempo forniscono servizi professionali di assistenza.

Chi sa quale sia il migliore? Il mio punto di vista è che, come in tutti i casi, a priori non esiste un database migliore degli altri e tutti i dibattiti “PostgreSQL vs MySQL”, “Oracle vs MySQL”, etc. finiscono per lasciare il tempo che trovano. Senza le dovute conoscenze e soprattutto senza una profonda analisi dei requisiti e delle esigenze di un certo problema, non è possibile dare risposte definitive e certe.

La cosa che mi ferisce è che il futuro di MySQL presenti purtroppo molte incertezze. Credo che, se anche Oracle dichiarasse di continuare a svilupparlo in open-source, la ricezione da parte della comunità non potrà mai essere positiva. Il fork open-source c’è già (MariaDB) e le intenzioni di Widenius sono oramai note a tutti. Tuttavia, è un progetto che – a livello di comunità – deve nascere da zero, e la cosa non sarà semplice.

Ad ogni modo, non è questa la sede adatta per parlare di PostgreSQL, MySQL e il mercato database in modo serio e approfondito. La comunità di PostgreSQL rappresentata in Italia dall’associazione culturale Italian PostgreSQL Users Group, che annualmente organizza l’evento nazionale PostgreSQL Day, sarebbe molto felice di affrontare questi argomenti in modo aperto, obiettivo e serio nelle giuste sedi.

Cordiali saluti,

Gabriele Bartolini

Presidente Italian PostgreSQL Users Group

This Post Has 0 Comments

Leave A Reply