La vera storia di picoSQL

Abstract In questo articolo è riassunta in breve la storia di picoSQL e le motivazioni che hanno portato alla sua realizzazione, sperando che risponda alla domanda che ci viene posta più spesso e cioè «ma chi ve l'ha fatto fare?».
22 ottobre 2003
Marco Bertacca

Poco più di un anno fa abbiamo reso disponibile su Internet picoSQL, primo database relazionale Open Source sviluppato in Italia. Da allora questo prodotto ha subito una certa diffusione che però è stata frenata dalla presenza di numerosi concorrenti. Naturalmente questo è del tutto normale ed era nelle nostre aspettative; quello che ci ha sorpreso invece è stato il rifiuto aprioristico di alcuni che hanno giudicato del tutto inutile la presenza di un ulteriore database. Secondo uno dei luoghi comuni diffusi su Internet MySQL e PosgreSQL coprirebbero l'intero spettro di esigenze mondiali e la posizione comune è che «si usa MySql perché è veloce ma per applicazioni più critiche è meglio PostgreSQL».

Il progetto di picoSQL nacque nel 1995 col nome di picoGateway; si trattava di un driver ODBC per file a indici COBOL e consisteva in una DLL scritta in C++ su sistema operativo Windows 3.1.

L'idea ci venne perché avevamo già sviluppato un gestore di file a indice, picoIsam, per una grande azienda italiana che lo usava da programmi COBOL e ci sembrò utile poter fornire anche un accesso di tipo SQL. All'inizio implementammo solo un sottoinsieme minimale del comando SQL SELECT poiché il progetto era sperimentale, cioè non finanziato, e lo sforzo principale fu concentrato nell'ottenere una buona compatibilità con i front-end esistenti (principalmente MS-Access, MS-Query e VisualBasic).

Il prodotto, pur nella sua semplicità, rispose a delle precise esigenze di mercato per cui, dopo averlo adattato opportunamente, venne anche acquistato in formato sorgente da un noto produttore di compilatori COBOL e da esso distribuito come proprio tool standard in tutto il mondo.

Questo permise di fare nuovi investimenti nello sviluppo del prodotto per rispondere alle esigenze sempre più complesse di una clientela sempre più ampia. Ecco allora che vennero inserite le istruzioni per modificare i file e venne estesa la SELECT fino a incorporare opzioni meno comunemente usate come la OUTER JOIN.

Un problema serio lo pose la realizzazione dell'ottimizzatore delle query perché al tempo non si riuscì a trovare alcuna forma di documentazione che affrontasse il problema in modo approfondito. Dovemmo quindi inventarci gli algoritmi necessari che alla prova dei fatti si rivelarono molto efficienti ma che probabilmente sono anche la cosa più complessa che abbiamo mai sviluppato.

Nel 2000 quella che era una DLL diventò un programma separato, chiamato picoDB, che poteva colloquiare in modalità client/server sia con programmi Java che con programmi con interfaccia ODBC.

Alla fine del 2001 però la richiesta del prodotto calò per motivi di mercato; ecco quindi che ci ritrovammo con un «quasi-database», collaudato da 6 anni di onorato servizio e su cui era gia stato investito non meno di mezzo miliardo di lire, che stava diventando inutile. La cosa più logica sarebbe stata quella di «metterlo in un cassetto» e non pensarci più, ma questo ci sembrò uno spreco. L'idea di renderlo disponibile come Open Source piacque subito a tutti, ma l'operazione presentava dei costi sensibili perché picoDB mancava totalmente delle istruzioni DDL, come CREATE e DROP, e il futuro picoSQL avrebbe dovuto essere totalmente incompatibile con i suoi predecessori per motivi di etica professionale. Bisognava dunque riuscire a giustificare questi costi con qualche ritorno che non fosse solo d'immagine. Per capire se questo fosse possibile abbiamo confrontato il nostro DB con altri presenti sul mercato, sia Open Source che no, e siamo arrivati alla conclusione che una possibilità di ritorno economico poteva esserci basandoci sulle seguenti considerazioni:
picoSQL sarebbe stato estremamente semplice e leggero rispetto alla concorrenza, sia da installare che da amministrare che da interfacciare con le applicazioni, ma nonostante questo avrebbe offerto funzionalità non sempre disponibili su tutti i prodotti, specialmente sulla multiutenza; per esempio, facendo un confronto con MySql non riuscimmo a ottenere il lock su una riga di tabella su Linux usando un programma Java (vedi http://www.picosoft.it/picosql/benchmark.html);
il fatto che lo sviluppo fosse italiano poteva incoraggiare le aziende italiane a usarlo, in quanto avrebbero potuto contare su un livello di assistenza e personalizzazione difficilmente ottenibile su altri prodotti;
quando si acquista un DB commerciale, spesso si stipula un contratto di assistenza (in alcuni casi è addirittura obbligatorio) per garantirsi contro qualsiasi problema; con picoSQL il prodotto sarebbe stato gratis e l'assistenza e le personalizzazioni a pagamento.

Basandosi su queste considerazioni decidemmo di tentare l'avventura e l'undici giugno 2002 pubblicammo su Internet la prima versione di picoSQL, a cui assegnammo il livello di release 1.0beta. L'uscita destò un discreto interesse e alcune persone ci sostennero entusiasticamente. Da allora iniziammo un lavoro di consolidamento e estensione delle funzionalità per rendere più interessante il prodotto, tanto che a oggi abbiamo rilasciato ben venti release. L'interesse è costantemente aumentato nel tempo anche se la strada è sempre stata in salita. È difficile infatti che un programmatore applicativo che usa il PHP, uno degli ambienti di sviluppo più diffusi per la realizzazione di applicazioni Internet interattive, per poter usare picoSQL si metta a ricompilare l'interprete di questo linguaggio, magari con la connessione ad Apache, quando nelle distribuzioni Linux standard si trova già tutto pronto per il funzionamento con MySql.

Tirando le somme, nonostante i download abbiano superato il numero di sessantamila, nessuna azienda si è dimostrata disposta a finanziare il progetto in cambio di assistenza e personalizzazioni e quindi, a oggi, non siamo riusciti i ripagare l'investimento fatto né a finanziare nuovi sviluppi. Essendo la nostra un'azienda che vive solo del proprio lavoro, dobbiamo prima di tutto cercare di guadagnare per mantenere noi e le nostre famiglie. Continueremo a manutenere e a sviluppare picoSQL perché lo usiamo nelle applicazioni che realizziamo, ma certamente ci aspettavamo qualcosa in più. Vero è che in Italia l'approccio Open Source non ha ancora conquistato la fiducia del mondo aziendale; noi pensiamo che questo stato di cose dovrà cambiare e che fintanto l'interesse per picoSQL continua ad aumentare, c'è la possibilità di trovare il modo di finanziarlo e renderlo così un buon investimento per noi e per la comunità.
Informazioni sull'autore

Marco Bertacca, da vent'anni nel campo dell'informatica, da oltre 10 è presidente di picoSoft, società che si occupa di integrazione di sistemi aperti e successivamente anche di Open Source. Scrive occasionalmente articoli, particolarmente su database e linguaggi a oggetti, e ha pubblicato per la McGraw-Hill due libri su Java e un terzo su Linux. È possibile consultare l'elenco degli articoli scritti da Marco Bertacca.

Risorse

Il sito ufficiale del progetto picoSQL. http://www.picosoft.it/picosql/

Articoli correlati

PeaceLink C.P. 2009 - 74100 Taranto (Italy) - CCP 13403746 - Sito realizzato con PhPeace 2.7.21 - Informativa sulla Privacy - Informativa sui cookies - Diritto di replica - Posta elettronica certificata (PEC)