ECMAScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Abisys.bot (discussione | contributi)
m ., replaced: javascript → JavaScript (7), typos fixed: pò → po', l Marzo → l marzo, l Giugno → l giugno (4), d Agosto → d agosto, l Novembre → l novembre, l Dicembre → l dicembre using AWB
Riga 2:
 
== Storia ==
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 Dicembredicembre del 1995, la [[Sun Microsystems]] insieme a Nescape annunciarono JavaScript attraverso un comunicato stampa.<ref>{{Cita web|url= http://wp.netscape.com/newsref/pr/newsrelease67.html|urlarchivio= http://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}}</ref> Nel Marzomarzo del 1996, [[Netscape Navigator|Netscape Navigator 2.0]] veniva rilasciato 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= //wayback.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}}</ref> JScript fu incluso quindi in [[Internet Explorer 3|Internet Explorer 3.0]], rilasciato nell'Agosto del 1996.
 
Netscape consegnò JavaScript ad [[ECMA International|Ecma International]] per il lavoro di standardizzazione e per fissare le specifiche. Così iniziò ECMA-262 nel Novembrenovembre del 1996.<ref>{{Cita web|url= http://cgi.netscape.com/newsref/pr/newsrelease289.html|urlarchivio= http://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}}</ref> Questa prima edizione fu adottata dall'Ecma General Assembly nel Giugnogiugno 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}}</ref>
 
Mentre sia JavaScript che JScript mirano ad essere compatibili con le specifiche ECMAScript, provvedono a fornire allo stesso tempo funzioni aggiuntive non descritte dallo standard ECMA.<ref>{{Cita web|url= http://javascript.about.com/od/reference/a/jscript.htm|titolo= JScript VS JavaScript|editore= About.com|data= 25 novembre 2015}}</ref>
 
=== Versioni ===
Ci sono sei edizioni dell'ECMA-262 pubblicate. Il lavoro sulla versione 6 dello standard, con il nome in codice di "Harmony", è stato finalmente concluso nel Giugnogiugno del 2015.<ref name="auto">[http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf]. EMCAScript. Retrieved on 2015-06-19.</ref>
{| class="wikitable"
!Edizione
Riga 58:
|
|}
Nel Giugnogiugno 2004, Ecma International pubblicò ECMA-357 come standard 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, ritirato nel 2015.<ref name="ES-CP-withdrawn">[https://esdiscuss.org/notes/2015-03-24 2015-03-24 Meeting Notes]. ESDiscuss. Also see [http://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 rilasciata 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=}}</ref>
 
Ad Agostoagosto 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:
* [[Class (computer programming)|Classi]]
* [[Modular programming|Un sistema di modularizzazione]]
Riga 75:
 
=== Quinta Edizione ===
[[Yahoo]], [[Microsoft]], [[Google]] e altri dissidenti della quarta edizione di ECMAScript formarono il loro "sottocomitato" per progettare un update di ECMAScript 3 un po' meno ambizioso, chiamandolo provvisoriamente ECMAScript 3.1. Questa edizione si sarebbe concentrata sulla sicurezza e sugli aggiornamenti delle librerie con un punto di riguardo sulla compatibilità.
 
Dopo il dibattito sopra descritto, entrambi i team di ES 3.1 ed ES 4 si accordarono con un compromesso: si sarebbe lavorato sulle due edizioni in parallelo e con i due team coordinati per essere sicuri che ES 3.1 sarebbe rimasto strettamente un sottoinsieme di ES 4 (sia nella semantica che nella sintassi).
 
=== Sesta Edizione ===
ECMAScript 6 (ES6) fu concluso nel Giugnogiugno del 2015.<ref name="auto" /><ref>[http://www.ecma-international.org/ecma-262/6.0/ECMA-262.pdf Standard ECMA - 262 6th Edition / June 2015, ECMAScript ® 2015 Language Specification]</ref> La Sesta edizione implementa significanti cambiamenti sintattici per scrivere applicazioni più complesse, incluse le classi e i moduli definendoli semanticamente come si farebbe in ECMAScript in strict mode. Altre novità comprendono iterators ed il nuovo for/of loop, [[Python (programming language)|Python]]-style generators and generator expressions, arrow functions, binary data, typed arrays, collections (maps, sets e weak maps), promises, number e math enhancements, reflection, e proxies (metaprogramming for virtual objects e wrappers).<ref>http://www.wintellect.com/devcenter/nstieglitz/5-great-features-in-es6-harmony</ref><ref>https://www.smashingmagazine.com/2015/10/es6-whats-new-next-version-javascript/</ref> La lista completa è piuttosto lunga.<ref>http://es6-features.org/#Constants</ref>
 
Il supporto da parte dei browser di ES6 rimane ancora incompleto per il momento.<ref>https://kangax.github.io/compat-table/es6/</ref>