Un principio promosso dal World Wide Web Consortium (W3C), organizzazione internazionale che sviluppa standard per il World Wide Web, è la cosiddetta “Rule of Least Power“. Stabilisce che, quando si sviluppano tecnologie per il Web, si dovrebbe preferire il linguaggio o la tecnologia meno potente che sia in grado di realizzare l’obiettivo desiderato. In altre parole, si dovrebbe utilizzare la tecnologia più semplice e limitata che sia comunque in grado di svolgere il compito richiesto in modo efficace. JavaScript è un linguaggio di programmazione ampiamente utilizzato per creare pagine Web dinamiche e interattive.
Cos’è JavaScript, in breve
Era il 1995 quando Brendan Eich (Netscape Communications) ideò Mocha e, successivamente, LiveScript. Si tratta di linguaggi che precorsero l’arrivo di JavaScript e che di fatto ne costituirono le fondamenta.
JavaScript è un linguaggio interpretato: il codice sorgente è palese ed è integrato nella stragrande maggioranza delle pagine Web che visitiamo ogni giorno. Una delle “forze” di JavaScript è la possibilità di manipolare il DOM (Document Object Model) ovvero di consentire la modifica della struttura delle pagine in maniera piuttosto semplice.
Gli sviluppatori possono così modificare, aggiungere o rimuovere elementi HTML e CSS in base all’interazione dell’utente o ad altri eventi. Interattività e gestione degli eventi sono gli altri due pilastri alla base del funzionamento di JavaScript, linguaggio che permette di aggiungere facilmente elementi come moduli di contatto, gallerie di immagini scorrevoli, menu a discesa dinamici e molto altro ancora nonché monitorare eventi come clic del mouse, pressione dei tasti e caricamento della pagina.
Il codice JavaScript, inoltre, è largamente utilizzato per comunicare con i server in modo asincrono, dover ricaricare l’intera pagina. Questo viene spesso fatto utilizzando XMLHttpRequest (XHR) o l’API Fetch per inviare e ricevere dati JSON o XML.
È possibile fare a meno di JavaScript: parte l’iniziativa JS Naked Day
Nonostante l’importanza di JavaScript per molte funzionalità chiave delle pagine Web moderne, è possibile creare pagine utilizzando solo HTML e CSS. L’opinione comune è che l’utilizzo di JavaScript sia ormai irrinunciabile e che senza il suo supporto da parte dei browser, l’esperienza d’uso ne risulterebbe fortemente penalizzata.
Eppure, anche per provocazione visto l’utilizzo un po’ troppo “invadente” che alcuni sviluppatori fanno ormai oggi di JavaScript, anche attraverso i molteplici framework disponibili, gli organizzatori del JS Naked Day provano a far sentire la loro voce.
Il 24 aprile si vuole appunto celebrare il JS Naked Day, una celebrazione annuale che promuove l’idea di un Web fruibile anche senza ricorrere all’uso di JavaScript, abbracciando proprio la “Rule of Least Power” descritta in apertura. Secondo gli organizzatori, HTML e CSS bastano e avanzano per tutte le funzionalità di base e l’adozione di JavaScript dovrebbe essere ridotta allo strettissimo necessario.
Perché il 24 aprile si celebra il JS Naked Day
In alcuni Paesi, “24 aprile” può essere scritto come “4/24”, che coincide con il codice di errore HTTP rilasciato in caso di dipendenza fallita. JS Naked Day promuove il concetto che i siti Web dovrebbero funzionare senza dipendenze da JavaScript.
Per verificare come si comporta un Web senza JavaScript, agli utenti normali è consigliato di disattivare temporaneamente il supporto JavaScript da parte del browser. Con Google Chrome, ad esempio, lo si può fare digitando chrome://settings/content/javascript
nella barra degli indirizzi quindi selezionando l’opzione Non consentire ai siti di usare JavaScript. L’intervento è immediatamente applicato: non serve riavviare il browser. Provate eventualmente anche a usare la navigazione in incognito.
La stessa modifica è applicabile in Edge, digitando edge://settings/content/javascript quindi disattivando l’opzione Consentito.
I promotori dell’iniziativa suggeriscono anche di inviare una notifica agli amministratori di tutti quei siti Web che non funzionano senza l’abilitazione del supporto JavaScript.