ECMAScript: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Modificato numero di edizioni pubblicate |
m corretto rilasciato |
||
Riga 11:
Le specifiche definite da ECMAScript sono delle specifiche standardizzate di un linguaggio sviluppato da [[Brendan Eich]] di [[Netscape]]. Inizialmente era chiamato "Mocha", più tardi LiveScript e solo in ultimo JavaScript.<ref>{{Cita web|cognome= Krill|nome= Paul|url= http://www.infoworld.com/article/2653798/application-development/javascript-creator-ponders-past--future.html|titolo= JavaScript creator ponders past, future | Developer World|editore= InfoWorld|data= 23 giugno 2008|accesso= 31 ottobre 2013}}</ref> Nel dicembre del 1995, la [[Sun Microsystems]] insieme a Netscape annunciarono JavaScript attraverso un comunicato stampa.<ref>{{Cita web|url= http://wp.netscape.com/newsref/pr/newsrelease67.html|urlarchivio= https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html|dataarchivio= 16 settembre 2007|titolo= Press Release|editore= Web.archive.org|data= |accesso= 31 ottobre 2013|urlmorto= sì}}</ref> Nel marzo del 1996, [[Netscape Navigator|Netscape Navigator 2.0]] veniva distribuito diventando il primo browser a supportare JavaScript.
Grazie all'enorme successo di JavaScript come linguaggio client-side, [[Microsoft]] sviluppò una versione differente ma compatibile del linguaggio chiamandolo [[JScript]] per evitare problemi di copyright. JScript implementava nuovi metodi per il calcolo della data per risolvere in parte i problemi dovuti all'anno 2000 che affliggevano JavaScript in quanto la classe Date era basata sull'omonima classe di Java.<ref>{{Cita web|url= http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html|urlarchivio= https://web.archive.org/web/20080517011912/http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html|dataarchivio= 17 maggio 2008|titolo= Brendan's Roadmap Updates: Popularity<!-- Bot generated title -->|sito= weblogs.mozillazine.org|urlmorto= sì}}</ref> JScript fu incluso quindi in [[Internet Explorer 3|Internet Explorer 3.0]],
Netscape consegnò JavaScript ad [[ECMA International]] per il lavoro di standardizzazione e per fissare le specifiche. Così iniziò ECMA-262 nel novembre del 1996.<ref>{{Cita web|url= http://cgi.netscape.com/newsref/pr/newsrelease289.html|urlarchivio= https://web.archive.org/web/19981203070212/http://cgi.netscape.com/newsref/pr/newsrelease289.html|dataarchivio= 3 dicembre 1998|titolo= Press Release|editore= Web.archive.org|data= |accesso= 31 ottobre 2013|urlmorto= sì}}</ref> Questa prima edizione fu adottata dall'Ecma General Assembly nel giugno del 1997 e diverse edizioni della standardizzazione sono state pubblicate da allora. Il nome "ECMAScript" fu un compromesso tra le organizzazioni coinvolte nella standardizzazione del linguaggio, specialmente Netscape e Microsoft le cui dispute dominavano la scena durante i primi tempi in cui questi standard nascevano. Eich difatti commentò che "ECMAScript è sempre stato un nome contrattato ma mai voluto che suonava molto come una malattia della pelle."<ref>{{Cita web|url= https://mail.mozilla.org/pipermail/es4-discuss/2006-October/000133.html|titolo= Will there be a suggested file suffix for es4?|editore= Mail.mozilla.org|data= 3 ottobre 2006|accesso= 31 ottobre 2013|dataarchivio= 21 giugno 2020|urlarchivio= https://web.archive.org/web/20200621202321/https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html|urlmorto= sì}}</ref>
Riga 18:
=== Versioni ===
Sono state pubblicate finora 15 edizioni dell'ECMA-262. Dal 2015 la pubblicazione avviene con una cadenza annuale, per questo le edizioni hanno nel nome anche il riferimento all'anno di
{| class="wikitable"
!Edizione
Riga 134:
=== Quarta Edizione (abbandonata) ===
La quarta edizione proposta di ECMA-262 (ECMAScript 4 o ES4) sarebbe stata la prima major update di ECMAScript dalla terza edizione pubblicata nel 1999. L'uscita delle specifiche (insieme alle referenze per l'implementazione) era inizialmente prevista per ottobre 2009 ed infatti un'introduzione al linguaggio fu
Ad agosto 2008, fu presa la decisione di ridimensionare la quarta edizione di ECMAScript e accorparla al progetto ECMAScript Harmony. Le novità in discussione per Harmony erano:
Riga 143:
* [[assegnamento destrutturato]]
* [[Tipo di dato|tipi di dati]] algebrici
L'intento di queste caratteristiche era in parte quello di facilitare lo sviluppo di software complessi con grandi gruppi di lavoro alle spalle e di permettere di eliminare alcune caratteristiche dinamiche del linguaggio per migliorare le prestazioni. Per esempio, Tamarin (la macchina virtuale per [[ActionScript]] sviluppata e
Oltre all'introduzione di nuove features, nella quarta edizione fu proposto di correggere diversi bug dell'edizione precedente<ref>{{Cita web|autore= John Resig|url= http://ejohn.org/blog/bug-fixes-in-javascript-2/|titolo= John Resig – Bug Fixes in JavaScript 2|editore= Ejohn.org|data=|accesso= 31 ottobre 2013}}</ref><ref>{{Cita web|url= http://www.ecmascript.org/es4/spec/incompatibilities.pdf|titolo= Compatibility Between ES3 and Proposed ES4|editore= Ecmascript.org|accesso= 31 ottobre 2013|urlmorto= sì|urlarchivio= https://web.archive.org/web/20140724055116/http://www.ecmascript.org/es4/spec/incompatibilities.pdf|dataarchivio= 24 luglio 2014}}</ref>. Queste correzioni trovarono quindi posto nella quinta edizione
Riga 168:
=== Settima Edizione - ECMAScript 2016 ===
La settima edizione, ufficialmente ECMAScript 2016, fu
<ref name="ES2016"/><ref>{{Cita web|url=https://webkit.org/blog/6240/ecmascript-6-proper-tail-calls-in-webkit/|titolo=ECMAScript 6 Proper Tail Calls in WebKit|cognome=Saboff|nome=Michael|data=23 maggio 2016|sito=WebKit|accesso=11 aprile 2019}}</ref>
{{anchor|ottava edizione}}
Riga 182:
=== Decima Edizione - ECMAScript 2019 ===
La decima edizione, chiamata ECMAScript 2019 è stata
ECMAScript® 2019 Language Specification|sito=ecma-international.org |url=https://262.ecma-international.org/10.0/|accesso=4 giugno 2022}}</ref>. Le maggiori novità riguardano i metodi <code>Array.flatMap()</code><ref>[https://2ality.com/2017/04/flatmap.html Functional pattern: flatMap]</ref> e <code>Object.fromEntries()</code><ref>[https://2ality.com/2019/01/object-from-entries.html ES proposal: `Object.fromEntries()`]</ref><ref>[http://www.ecma-international.org/ecma-262/10.0/index.html ECMAScript® 2019 Language Specification]</ref>.
{{anchor|undicesima edizione}}
|