ECMAScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 3 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5
m corretto rilasciato
 
(2 versioni intermedie di un altro utente non mostrate)
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 &#124; 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]], rilasciatodistribuito nell'Agosto del 1996.
 
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 1015 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 rilasciodistribuzione sul mercato.
{| class="wikitable"
!Edizione
Riga 106:
| vedi [[#dodicesima edizione|Dodicesima edizione - ECMAScript 2021]]
| Jordan Harband, Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|-
|13
|Giugno 2022
|ECMAScript 2022 (ES2022)
|
|Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|-
|14
|Giugno 2023
|ECMAScript 2023 (ES2023)
|
|Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|-
|15
|Giugno 2024
|ECMAScript 2024 (ES2024)
|
|Shu-yu Guo, Michael Ficarra, Kevin Gibbons
|-
|16
|(in attesa)
|ECMAScript 2025 (ES2025)
|(in attesa)
|(in attesa)
|}
Nel giugno 2004, ECMA International pubblicò lo standard ECMA-357, definendo un'estensione di ECMAScript, conosciuta come [[ECMAScript per XML]] (E4X). Ecma definì anche un "Compact Profile" per ECMAScript (conosciuto come ES-CP o ECMA 327) ideato per dispositivi dalle risorse limitate, che venne ritirato nel 2015.<ref name="ES-CP-withdrawn">[https://esdiscuss.org/notes/2015-03-24 2015-03-24 Meeting Notes]. ESDiscuss. Also see [https://www.ecma-international.org/publications/standards/Standardwithdrawn.htm Ecma withdrawn Standards]. ECMA.</ref>
 
=== 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 rilasciatapubblicata dal gruppo di lavoro il 23 ottobre 2007.<ref>{{Cita web|url= http://www.ecmascript.org/es4/spec/overview.pdf|titolo= Proposed ECMAScript 4th Edition – Language Overview|data= 23 ottobre 2007|accesso= |sito= ecmascript.org|cognome= |nome= |urlmorto= sì|urlarchivio= https://www.webcitation.org/5rBiWD4P6?url=http://www.ecmascript.org/es4/spec/overview.pdf|dataarchivio= 13 luglio 2010}}</ref>
 
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:
Line 119 ⟶ 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 rilasciatadistribuita open source da Adobe) è dotata di compilazione JIT ([[Compilatore just-in-time|just-in-time]]).
 
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
Line 144 ⟶ 168:
 
=== Settima Edizione - ECMAScript 2016 ===
La settima edizione, ufficialmente ECMAScript 2016, fu rilasciatapubblicata nel Giugno del 2016<ref name="ES2016">{{Cita web|titolo=ECMAScript 2016 Language Specification|url=http://www.ecma-international.org/ecma-262/7.0/index.html|data=June 2016|editore=[[ECMA International]]}}</ref>. Le maggiori novità includono il block-scoping per variabili e funzioni, gli assegnamenti destrutturati delle variabili, proper tail calls, operatore esponente (<code>**</code>) e le keyword <code>await</code>, <code>async</code> per la programmazione asincrona.
<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}}
Line 158 ⟶ 182:
 
=== Decima Edizione - ECMAScript 2019 ===
La decima edizione, chiamata ECMAScript 2019 è stata rilasciataresa pubblica nel giugno 2019<ref>{{Cita web|titolo=ECMA-262, 10th edition, June 2019
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}}