Riassunto delle puntate precedenti. Primo: i moderni CMS e dunque i siti web si reggono sulle spalle di un gigante chiamato database. Secondo: un database può venire creato non solo sui server web ma anche sul computer / tablet / smartphone dei visitatori del sito. Terzo, poco tempo fa riportavamo le opinioni di un designer che critica Apple, anche proprio per il debolissimo supporto delle basi dati dentro al suo browser, Safari.
E ora una premessa prosaica, sfoltendo col machete dettagli su cui gli addetti disquisiscono da decenni. Ma che lascerebbero con gli occhi a palla e i capelli ritti in testa i nostri lettori tecnicamente meno smaliziati.
Esistono al mondo due principali filosofie di database. Quella tradizionale raccoglie i motori che fanno uso del linguaggio standard per le interrogazioni (SQL – Standard Query Language e quella innovativa che ne fa a meno e, per contrasto, viene chiamata NoSQL. La prima è vincente quando si tratta di gestire informazioni con forti correlazioni interne (per esempio tutti gli insegnanti, tutti gli studenti, tutti i corsi, tutti i voti di una scuola), la seconda conviene nel caso opposto. Un esempio? Un database SQL è alla base di Facebook. Un NoSQL viene usato da Netflix per ricordare quanti minuti e secondi di ogni film avete già visto.
Se vi fermate un attimo a pensare, intuirete che i sistemi relazionali SQL sono più adatti a memorizzare quantità non gigantesche di dati (sì, Facebook è gigantesco, ma nessun singolo membro stringe amicizia con un miliardo di persone), mentre i sistemi NoSQL possono crescere indefinitamente semplicemente aggiungendo altri dischi o altri processori (server) all’infrastruttura. Entrambi vanno benone per piccole basi dati, con poche decine di migliaia di righe.
Torniamo allora alla questione del primo paragrafo, Safari è il nuovo Internet Explorer, cioè la palla al piede del web. Scrive Nolan Lawson:
Apple è stata fedele sostenitrice del web. Molte delle funzionalità che hanno permesso alle webapp di recuperare terreno sulle app native, come Web SQL […] sono state entusiasticamente implementate dai suoi sviluppatori. […] Oggi, anche quando Apple supporta le interfacce più nuove, lo fa di malavoglia. Per fare un esempio che è caro al mio cuore, IndexedDB è stato proposto circa cinque anni fa, reso disponibile in Chrome, Firefox ed Explorer nel 2012. Apple dal canto suo l’ha rilasciato solo nel 2014, con una implementazione tanto incompetente da stupire, così malfatta da venire giudicata inutilizzabile. […] Quando Web SQL è stato deprecato in favore di IndexedDB, gli ingegneri di Apple l’hanno vigorosamente difeso sostenendo che fosse indispensabile per creare webapp performanti.
Approfondiamo per bene il retroscena, vi va? Apple era in prima fila sin dal 2009 nella creazione di un database standard per il web, Web SQL, che come il nome rivela aderisce alla filosofia SQL. Apple, come del resto Google, internamente a Safari usa il sistema SQLite, un motore di database che la casa di Cupertino adora (è usato anche per Apple Mail e iTunes). Ma Mozilla alza la bandiera degli standard open source e protesta nelle sedi appropriate e così il W3C, ente deputato alla standardizzazione dello HTML, fa un passo indietro, getta alle ortiche Web SQL e si inventa IndexedDB al suo posto. Un sistema del tutto differente e basato sulle idee di NoSQL.
Gli ingegneri di Apple pensano che dentro a una singola pagina web ha più senso un sistema come SQL, ottimizzato per applicazioni piccole e medie, per di più già pronto e funzionante, e si sono rifiutati di spendere molto tempo sull’alternativa sinché il W3C non ne ha fatto una raccomandazione (nel gennaio di quest’anno). Di conseguenza, il primo rilascio (con iOS 8 e OS X Yosemite) è risultato malfatto (ma si farà di meglio con iOS 9 e OS X 10.11 El Capitan).
Questi sono i fatti. E non ho altro da dire su questa faccenda.