Lo so, Gangnam Style ha davvero stancato. Neppure Google è riuscita a risparmiarci la variante del videoclip di PSY che giusto ieri ha annunciato un nuovo singolo in aprile. Tuttavia, Go NoSQL Style m’ha fatto sorridere. È una parodia che invita gli sviluppatori ad adottare NoSQL per sostituire i database relazionali. Ciò premesso, è lecito chiedersi cosa significhi: gli autori del filmato sostengono che gli strumenti impiegati nello sviluppo di programmi e applicazioni debbano cambiare, appoggiandosi proprio ai database NoSQL.

La questione non è semplice. Esistono numerose tipologie di database per memorizzare le informazioni: la scelta dipende soprattutto dall’obiettivo. Siti web e applicazioni potrebbero tranquillamente abbandonare MySQL che è uno dei più popolari database relazionali in favore di NoSQL, però altre infrastrutture non trarrebbero un giovamento. Facebook e Twitter s’appoggiano a NoSQL, WordPress continua a utilizzare MySQL. Secondo me, quest’ultimo funzionerebbe benissimo rimpiazzando MySQL. Le soluzioni bancarie, invece, un po’ meno.

Non intendo portare qui il dibattito fra NoSQL e SQL, che quotidianamente provoca discussioni molto accese, né posso spiegare in estrema sintesi la differenza tra le due tipologie. Piuttosto, prendendo spunto dal videoclip, vorrei azzardare delle ipotesi sul futuro del web: se registrate un dominio e acquistate uno spazio per l’hosting, in genere potete usufruire soltanto di MySQL o un database equivalente. NoSQL, al contrario, richiede l’affitto o l’acquisto di server dedicati oppure delle macchine virtuali in cloud computing.

Ciò perché NoSQL richiede dei linguaggi più sofisticati di quelli normalmente disponibili o maggiori risorse, che i provider preferiscono erogare a prezzi superiori. Il futuro dello stack, ovvero dell’insieme di strumenti necessari al funzionamento, di siti web e applicazioni punta a un’altra direzione: Linux, Apache, MySQL, PHP (LAMP) è in progressivo abbandono. Altre risorse come Node.js e MongoDB s’affermano, invece, per sostituire i database relazionali. È un deciso segnale dell’abbattimento delle differenze fra app e siti.

Node.js, per inciso, non è affatto un database… mentre MongoDB è appena uno fra i diversi NoSQL disponibili. Se il LAMP ha perso molta della sua appetibilità è principalmente a causa del web in tempo reale: le notifiche push impongono il ricorso a linguaggi “nativi”, perciò i server coi quali devono dialogare non possono limitarsi a installare PHP e MySQL. Se fossero implementate in HTML5, il problema sarebbe lo stesso. Oggi è impossibile creare un sito senza preoccuparsi dell’interazione da mobile e servono soluzioni integrate.

A questo proposito, SQLite e MySQL Embedded possono essere integrati direttamente nelle app per memorizzare le informazioni senza connettersi a un server remoto. NoSQL può fare altrettanto, ma in determinate situazioni favorisce gli sviluppatori web: per esempio, MongoDB riconosce la sintassi di JSON che i designer come il sottoscritto conoscono meglio d’altri linguaggi complessi ed è gestibile via JavaScript. Insomma, molto più semplice e accessibile di MySQL per chi non fosse un esperto database administrator. Go NoSQL Style!