Oggi non parleremo della sintassi JavaScript, non parleremo di quello che potrai fare conoscendo questo linguaggio e neanche valuteremo le sue prestazioni nei confronti di altri linguaggi. Quello che voglio fare in questo articolo è aiutarti a fare chiarezza perché negli ultimi anni c’è stata molta confusione intorno a questo linguaggio, soprattuto nelle sue versioni.
Non sai di cosa parlo? Allora è sicuramente meglio se continui a leggere 😉
Spero che tu non trovi niente di strano se mi senti dire che la tecnologia è in continua evoluzione. In fin dei conti in questi ultimi venti anni abbiamo visto i Ghz dei processori salire alle stelle, la quantità di RAM è esplosa all’interno delle nostre schede madri e così anche la capacità dei nostri hard disk.
Inoltre, oggi è molto comune avere a disposizione delle connessioni Internet che viaggiano alla velocità di diversi Mbps (diversi dai classici MB) mentre fino a qualche tempo fa eravamo costretti a classici modem a 56kbps che bloccavano la nostra linea telefonica ogni volta che avevamo la necessità di collegarci.
Però tu stai leggendo un sito in cui parliamo di sviluppo web e di materie digitali, è normale che io faccia dei confronti sul lato tecnologico? Sì e ritengo anche più che corretto iniziare con dei semplici esempi e a breve ti spiegherò proprio perché.
Se sei rimasto incuriosito dalla definizione di Mbps diciamo semplicemente che con questo acronimo si definiscono le velocità delle connessioni ADSL odierne e il cui significato è: Mega bit per second. La differenza che ti facevo notare rispetto ai MB, i classici MegaByte con i quali calcoliamo il peso dei nostri MP3, è dovuta dal fatto dell’unità di misura base utilizzata per calcolare i rispettivi valori. Senza farla troppo lunga diciamo semplicemente che un byte è grande otto volte un bit, rispettando questa definizione se devi scaricare un file di 1MB da Internet con una connessione a 1Mbps non ti basterà un secondo, bensì 8.
Penso sia stato molto importante farti capire fin da subito che la tecnologia non si ferma mai, anzi è in continua evoluzione perché la stessa cosa accade anche ai linguaggi di programmazione!
Guardiamo HTML dove sono state scalate velocemente le versioni dalla 1 alla 3 per mantenersi stabili sulla 4 per diversi anni e raggiungere una nuova versione soltanto recentemente grazie alla definizione dello standard HTML5. Un processo di crescita molto simile lo abbiamo anche in linguaggi come il CSS o il PHP, anche se quest’ultimo ha portato un po’ di confusione facendo un salto dalla versione 5 alla 7.
Il team che sta alla base dello sviluppo del linguaggio PHP ha deciso di saltare la versione 6 per diversi motivi storici. Non è nostro interesse descriverli in questo articolo, ma se sei interessato non esitare a lasciare un commento!
Per aiutare gli sviluppatori, più o meno tutti i linguaggi di programmazione e le applicazioni utilizzate seguono una logica ben precisa quando si tratta di passare a una nuova versione Il processo si può definire x.y.z e può essere facilmente riassunto come segue:
- Tutte le nuove versioni modificano il numero di versione x incrementandolo (di solito) di 1 e questo definisce la major version di un linguaggio di programmazione o di una specifica applicazione.
- Successivamente abbiamo la possibilità di modificare il numero y che viene identificato come minor version all’interno della quale vengono aggiunti dei piccoli aggiornamenti che tendono a migliorare ulteriormente la versione standard di un linguaggio o di una applicazione.
- Infine abbiamo z che viene invece definita come bugfix version all’interno della quale vengono rilasciati degli aggiornamenti che sono volti soltanto a correggere degli errori senza però aggiungere alcuna modifica.
Con questi tre punti ho cercato di spiegarti nel modo più semplice come i vari sviluppatori assegnano i numeri alle versioni dei linguaggi e dei software che stai utilizzando e se non vuoi essere la pecora nera del gruppo, ti consiglio di seguire anche tu questi standard quando rilascerai le tue creazioni.
Però negli ultimi anni abbiamo visto un linguaggio in particolare che non è mai stato in grado di seguire questo standard, e come puoi immaginare da solo questo linguaggio di programmazione è proprio JavaScript.

JavaScript è forse uno dei linguaggio più diffusi che ha anche una storia incredibilmente interessante alle sue spalle quindi, prima di andare a conoscere quali sono e perché vengono usati i suoi nomi di versione, che ne dici se andiamo a fare un piccolo accenno storico alla sua nascita?
Ti assicuro che ci aiuterà nella comprensione del nostro presente!
Prima di tutto… Non esisteva JavaScript
Ebbene sì, all’inizio del web il JavaScript non era un linguaggio utilizzato. Ovviamente, se proprio vogliamo guardare l’inizio di questo media, possiamo dire che non c’era proprio bisogno di questo linguaggio di programmazione perché le pagine erano semplici documenti in bianco e nero con al massimo qualche immagine sparsa qua e là.
Tutti gli elementi di una pagina si potevano creare con del semplice HTML.
Pazzesco, vero?
Quello però che intendevo dire con l’affermazione Prima di tutto non esisteva JavaScript è che neanche dopo i primi anni, quando lo sviluppo si era affermato maggiormente all’interno dei browser e eravamo alla ricerca di maggiori funzionalità, la parola JavaScript non era sulla bocca di nessun sviluppatore.
Se torniamo a osservare il panorama dei browser nel 1995 si potevano notare due grandi player: Internet Explorer e Netscape.
Oggi non esiste più nessuno dei due.
Però per il debutto di Netscape i suoi sviluppatori sapevano che avrebbero dovuto offrire qualcosa di nuovo che avrebbe catturato l’interesse di utenti e sviluppatori, per questo motivo hanno deciso di rilasciare il (forse) primo linguaggio di programmazione per un browser: LiveScript!
Lo so che tu ti aspettavi di leggere JavaScript, ma gli sviluppatori Netscape cambiarono il suo nome soltanto un anno dopo cercando di capitalizzare sulla fama che il linguaggio Java stava accumulando in quegli anni.
Mi sembra quasi superfluo dirlo dato il tipo di blog che stai leggendo, ma lo sai che JavaScript e Java non hanno niente in comune, vero? Vabbé se così non fosse adesso lo sai 😉
Ovviamente un linguaggio di programmazione per essere definito uno standard ha bisogno di essere revisionato da un organo dedicato che prende il nome di ECMA International. Da questo lavoro è nato un nuovo standard che prende il nome di ECMAScript, anche se per tutti noi il termine JavaScript è rimasto sufficiente per definirlo.

Cercando di farla corta, quando si sente parlare di ECMAScript ci riferiamo nello specifico alla sintassi del linguaggio mentre quando viene viene usato JavaScript ci si riferisce al linguaggio di programmazione.
Forse ti stai chiedendo: ma c’è qualche differenza?
In tutta onestà la mia risposta è no! ECMAScript e JavaScript sono, dal mio punto di vista, la stessa cosa e come ti annunciavo prima si è preferito usare il secondo perché era un nome già conosciuto e anche perché il primo è un nome veramente brutto da sentire 😀
La cosa veramente strana, che non rispetta assolutamente la velocità con la quale il web si è evoluto, è che lo standard definito da ECMAScript è cambiato veramente poco nell’arco degli anni e questo ha soltanto rallentato lo sviluppo tecnologico costringendo i vari browser a definire le proprie estensioni per implementare le nuove funzionalità che il web richiedeva.
Questo ha portato non poca confusione nella mente degli sviluppatori visto che si sono trovati spesso a doversi confrontare con diverse API senza avere a disposizione un proprio standard!
Un esempio più che lampante è il problema di creare delle chiamate Ajax con del classico codice JavaScript, anche per questo soluzioni come jQuery hanno veramente spopolato. A oggi tutto è risolto, ma le vecchie abitudini sono dure a morire.
Queste incongruenze tra browser ci hanno costretto a scrivere due codici distinti, riprendendo l’esempio delle chiamate Ajax, se fino a qualche anno fa volevamo utilizzare questa tecnologia, prima ancora di poter fare qualsiasi operazione eravamo costretti a fare un controllo iniziale:
if (window.XMLHttpRequest) { // Mozilla, Safari, IE7+ ... httpRequest = new XMLHttpRequest(); } else if (window.ActiveXObject) { // IE 6 e altri httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); }
Come puoi notare tu stesso, prima di poter utilizzare l’oggetto httpRequest
dovevamo scoprire se l’oggetto window
aveva a disposizione l’oggetto XMLHttpRequest
oppure l’oggetto ActiveXObject
e questo soltanto per scoprire su quale browser veniva eseguito il nostro codice.
Soltanto nel 2009 la ECMA International decise di rilasciare la quinta versione della sintassi dando vita a ECMAScript 5 o conosciuto anche da molti come ES5. E questo è avvenuto ben dieci anni dopo il rilascio della terza versione, perché la quarta è stata completamente abbandonata.
La confusione nei nomi di versione
Man mano che i browser iniziarono a rispettare gli standard portati da ES5, la vita degli sviluppatori si è semplificata molto, almeno in parte.
Vediamo assieme che cosa è successo.
Scrivere codice ES5 oggi è all’ordine del giorno. ma molto spesso si capita ancora in vecchi tutorial all’interno dei quali sono descritti dei passaggi in JavaScript che non rispettano a pieno questa sintassi.
Ovviamente questo non fa fatto altro che creare confusione perché da una parte troviamo milioni di tutorial JavaScript che, nonostante il tempo e le modifiche applicate alla sintassi, non presentano un vero e proprio numero di versione, mentre dall’altra abbiamo browser che supportano una determinata versione di ECMAScript.
Già questo crea una discreta confusione, ma non finisce qua.
Nel 2015 c’è stato un altro cambio di nome nelle versioni dell’ECMAScript. Proprio quando stava per essere rilasciata la sesta versione, dando vita a ECMAScript 6 (ES6), è stato deciso di non dare più una versione a caso ma piuttosto di rispettare l’anno di pubblicazione dello standard.

Quindi, al posto di avere la possibilità di riferirsi alla nuova versione come ECMAScript 6 o ES6 (cosa di cui il web ha già fatto largo uso per articoli e tutorial), è stato deciso che sarebbe stato meglio riferirsi alla nuova versione come ESMAScript 2015 o ES2015.
Come se non bastasse, questa nuova versione ha portato un’infinità di novità e confusione perché tutti gli sviluppatori che hanno desiderato descrivere alcune delle nuove feature hanno realizzato titoli parlando di ECMAScript 6, senza poi correggere la sintassi al nuovo standard.
Tanto questa moda è andata avanti che anche con il rilascio di quest’anno abbiamo sia ECMAScript 2016 sia la dicitura ES7. Insomma un bel casino!
Come prepararsi ai futuri cambiamenti?
Ed ecco che ora dovresti aver capito perché imparare JavaScript sia diventato più complicato nell’arco degli anni, praticamente è tutto un problema che risiede nei nomi delle versioni e nel fatto che il termine JavaScript esiste fuori da ogni standard, anche se nel mondo degli sviluppatori è più che comune…
Quindi d’ora in avanti non sarà raro leggere qua e là articoli che parlano di JavaScript ES6 o ES5, praticamente all’interno di questi si descrive il linguaggio che rispetta una o l’altra versione.
Se vuoi un consiglio, stai sempre attento al codice che stai leggendo e se non specificato sul sito di appartenenza considera sempre di fare delle ricerche incrociate. Ti invitiamo a chiedere all’interno del nostro forum se un determinato blocco di codice non ti convince.
Noi di skillsAndMore cercheremo sempre di fare il nostro meglio e di specificare quale versione di ECMAScript stiamo descrivendo, dove verrà omesso faremo riferimento alla sintassi ES5 che al momento è la più compatibile di tutte.
Se vuoi scrivere codice JavaScript che rispetta lo standard ES6 al momento dovrai utilizzare degli strumenti esterni che ti permetteranno di trasformare questa sintassi nella più comune e compatibile ES5, ma questo è argomento per un altro articolo.
Conclusioni
Spero veramente che questo articolo, per quanto privo di codici, ti sia stato di aiuto. La mia intenzione, proprio come nell’articolo dedicato ai principi di uno sviluppatore moderno, è quella di aiutarti in questo percorso e di esserti al fianco per qualsiasi dubbio.
Se trovi qualche errore ricorda che i commenti e il forum sono aperti alle tue idee, ma prima di salutarti vorrei fare un veloce ripasso con te e controllare nuovamente i nomi che un linguaggio potente e interessante come JavaScript ha assunto nel tempo:
- ECMAScript – un linguaggio standardizzato dal ECMA Internetional e supervisionato dal comitato T39;
- JavaScript – il nome comune utilizzato per identificare lo standard ECMAScript. Con questo termine non ci rivolgiamo a una specifica versione dello standard, ma piuttosto al suo utilizzo a livello globale o parziale.
- ECMAScript 5 (ES5) – questa rappresenta la quinta versione dello standard ECMAScript rilasciata nel 2009. Dato che a oggi i maggiori browser supportano questa versione è probabile che sarà la più comune da incontrare.
- ECMAScript 6 (ES6)/ECMAScript 2015 (ES2015) – questa rappresenta la sesta versione dello standard ECMAScript rilasciata nel 2015. Al momento non è ancora supportata completamente dai nuovi browser e dato che presenta un gran numero di moduli ti consiglio di consultare questa tabella aggiornata.
- ECMAScript 2016 – rilasciata a inizio 2016 presenta un esiguo numero di funzionalità implementate e non dovrebbe comportare grossi problemi di compatibilità nei browser in grado di supportare la versione ES2015.
Ebbene questi sono tutti i nomi delle versioni dello standard ECMAScript che sono state rilasciate a oggi. Come possiamo notare dalla sua trasformazione, non ci è dato conoscere se anche nel futuro verrà rispettata questa numerazione, ma la cosa che spero tu possa portare a casa è una maggiore coscienza della loro presenza e del loro utilizzo.
Oltre a questo, spero proprio che tu adesso abbia capito (un po’ come il sottoscritto a suo tempo) che seguire un tutorial JavaScript non significa assicurarsi di usare l’ultima tecnologia o sintassi.
Un po’ come tutto il resto della tecnologia, anche i linguaggi di programmazione si aggiornano e modificano la propria sintassi per soddisfare le necessità che con il tempo si presentano.
In un futuro articolo voglio parlarti più da vicino di come sia possibile riconoscere le differenze tra le varie sintassi in JavaScript, ma per il momento spero di averti aiutato a fare chiarezza.
Lascia un commento