ES6 o per esteso ECMAScript 6 è uno standard di linguaggio di scripting realizzato secondo le indicazioni contenute nel documento ECMA-262 fornito da Ecma international (European Computer Manufacturers Association). L’Ecma international è un’associazione fondata nel 1961 che si occupa della standardizzazione nel settore informatico e dei sistemi di comunicazione.
L’ECMAScript è quindi uno standard realizzato con lo scopo di permettere l’interoperabilità di pagine web diverse tra browser diversi. In quanto standard di linguaggio vengono specificate le funzionalità che un linguaggio di scripting dovrebbe avere e come esse dovrebbero essere implementate.
Esempi di linguaggi che sono stati implementati a partire da l’ECMAScript sono il Javascript, l’ActionScript e il Jscript (Microsoft), oramai molto diffusi come linguaggi di scripting per quanto riguarda il lato client dello sviluppo web.
ECMAScript e Javascript
Javascript nacque nel 1995 come parte di Netscape Navigator 2.0, sviluppato da Brendan Eich è stato poi presentato ufficialmente all’ECMA International l’anno successivo in modo da essere formalizzato.
Nacque con il nome di Mochan per diventare poi LiveScript fino a raggiungere infine il nome attuale. Nome attuale che ricorda il linguaggio Java di Sun Microsystems (acquistato nel 2010 da Oracle), e di fatto le loro sintassi risultano essere molto simili.
Questa somiglianza nacque per poter sfruttare la popolarità di Java benché essi siano linguaggi differenti, Java è un linguaggio compilato mentre Javascript viene interpretato dal browser.
Di fatto Javascript è un linguaggio di programmazione Web lato client esteso successivamente anche lato server, utilizzato per la creazione in siti web e applicazioni web di effetti dinamici. Questi effetti sono triggerati da eventi innescati dall’utente attraverso mouse o tastiera.
ECMAScript 6
ES e Javascript nel corso degli anni hanno rilasciato versioni successive del loro prodotto, in particolare analizzando ES6 vediamo come la sesta versione si sia posta i seguenti obiettivi
- Sviluppo di applicazioni complesse
- Migliore creazione e gestione di librerie
- Migliore generazione di codici
ES6, conosciuta anche come ECMAScript 2015 o più semplicemente “Harmony” è uno degli standard più importanti per ciò che è stato l’impiego dei linguaggi da lui derivanti. Data la sua importanza, il suo browser support è cresciuto in fretta partendo con Edge e Safari fino ad arrivare a Chrome, Firefox e Opera e ad oggi risulta essere supportato da ogni browser.
Novità di ECMAScript 6
Le novità di questa nuova versione sono numerose e importanti come accennato precedentemente. Troviamo implementazione di nuove keyword, funzioni e proprietà che hanno veramente rivoluzionato il linguaggio.
- Keyword “let”, permette di modificare il valore di una variabile all’interno di uno spazio di codice delimitato per poi dare nuovamente alla variabile il valore precedente.
- Keyword “const”, molto simile alla keyword “let” ma il valore assegnato alla variabile non può cambiare all’interno delle parentesi graffe in cui è dichiarato. Esternamente ottiene di nuovo il valore iniziale.
- Le nuove arrow functions che permettono la dichiarazione di funzioni in modo più efficace risparmiando righe di codice.
- Introduzione del ciclo for/of da poter utilizzare con Array, Stringhe etc..
- Keyword “class” per la creazione di classi e costrutti.
- Nuovi oggetti come i “Promise” che si collegano ai “Producing code” che possono richiedere un po’ di tempo ai “Consuming Code” che devono aspettare il risultato.
- Il Symbol Type, un Symbol in Javascript è un tipo di dato primitivo e rappresenta un identificatore nascosto a cui nessun altro codice può accedere, spesso viene utilizzato per gli ID.
- ES6 permette alle funzioni di avere dei parametri con valori di default.
- La funzione Rest Parameter che tratta un indefinito numero di argomenti come un array.
- L’Array.find. La funzione find() ritorna il valore del primo elemento dell’array che corrisponde ai criteri indicati.
- Aggiunta di nuovi metodi per gli oggetti matematici:
- Math.trunc() ritorna la parte intera del numero.
Math.sign() ritorna se il numero è positivo negativo o neutro.
Math.cbrt() ritorna la radice cubica del numero.
Math.log2() ritorna l’algoritmo in base due dell’argomento.
Math.log10() ritorna l’algoritmo in base dieci dell’argomento. - Aggiunta di nuove costanti matematiche: EPSILON, MIN_SAFE_INTEGER e MAX_SAFE_INTEGER.
- Number.isInteger() ritorna True se l’argomento è un numero intero.
- isNaN(), ritorna vero se l’argomento non è un numero.
- Moduli: Supporto a livello di linguaggio dei moduli per la creazione e gestione di componenti: per creare un modulo è sufficiente scrivere del codice JavaScript in un file ed esportare una o più delle funzionalità implementate. Le funzionalità e gli altri elementi esportati da un modulo JavaScript possono essere importate da un altro modulo tramite la parola chiave import.
Notiamo una migliore gestione della parte matematica e una rinnovata gestione degli array e stringhe, così come l’introduzione di keyword volte a semplificare il lavoro del programmatore e a ridurre le linee di codice.
Perché ECMAScript 6
I motivi per utilizzare ES6 sono molti, in primis l’ottimizzazione dei vari browser rendono ES6 incredibilmente veloce, requisito fondamentale per una pagina web. ES6 supporta poi la gestione delle classi e l’introduzione delle arrow functions semplifica molti aspetti della programmazione. L’aggiunta di template nelle stringhe semplifica la lettura del codice e con ES6 è possibile risolvere gli stessi problemi che venivano risolti con CoffeeScript ma in modo migliore. CoffeeScript è un linguaggio di programmazione nato con l’intento di ovviare ai precedenti problemi di Javascript.
La lista potrebbe essere ancora più lunga, ma il messaggio principale è questo: ES6 non solo ha saputo correggere gli errori del passato ma è riuscito a dare nuovi strumenti e a semplificare la vita degli sviluppatori, e per questo ancora oggi, ad anni di distanza, viene preso come punto di riferimento.