ECMAScript: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Atarubot (discussione | contributi)
template citazione; rinomina/fix nomi parametri; converto template cite xxx -> cita xxx; fix formato data; elimino parametri vuoti
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>{{citeCita web|last cognome= Krill|first nome= Paul|url = http://www.infoworld.com/article/2653798/application-development/javascript-creator-ponders-past--future.html|title titolo= JavaScript creator ponders past, future &#124; Developer World|publisher editore= InfoWorld|date data= 23 giugno 2008-06-23|accessdate accesso= 31 ottobre 2013-10-31}}</ref> Nel Dicembre del 1995, la [[Sun Microsystems]] insieme a Nescape annunciarono JavaScript attraverso un comunicato stampa.<ref>{{citeCita web|url = http://wp.netscape.com/newsref/pr/newsrelease67.html|archiveurl urlarchivio= http://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html|archivedate dataarchivio= 16 settembre 2007-09-16|title titolo= Press Release|publisher editore= Web.archive.org|date data=|accessdate accesso= 31 ottobre 2013-10-31}}</ref> Nel Marzo 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>{{citeCita web|url = http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html|archiveurl urlarchivio= //wayback.archive.org/web/20080517011912/http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html|archivedate dataarchivio= 17 Maymaggio 2008|title titolo= Brendan's Roadmap Updates: Popularity<!-- Bot generated title -->|work 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 Novembre del 1996.<ref>{{citeCita web|url = http://cgi.netscape.com/newsref/pr/newsrelease289.html|archiveurl urlarchivio= http://web.archive.org/web/19981203070212/http://cgi.netscape.com/newsref/pr/newsrelease289.html|archivedate dataarchivio= 3 dicembre 1998-12-03|title titolo= Press Release|publisher editore= Web.archive.org|date data=|accessdate accesso= 31 ottobre 2013-10-31}}</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>{{citeCita web|url = https://mail.mozilla.org/pipermail/es4-discuss/2006-October/000133.html|title titolo= Will there be a suggested file suffix for es4?|publisher editore= Mail.mozilla.org|date data= 3 ottobre 2006-10-03|accessdate accesso= 2013-10-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>{{citeCita web|url = http://javascript.about.com/od/reference/a/jscript.htm|title titolo= JScript VS JavaScript|publisher editore= About.com|date data= 2015-11-25 novembre 2015}}</ref>
 
=== Versioni ===
Riga 40:
|5
|Dicembre 2009
|Aggiunge lo "strict mode" inteso a provvedere un più completo controllo di errori e a scoraggiare i sviluppatori ad incappare in errori. Chiarifica molte ambiguità introdotte nella terza versione. Aggiunge anche alcune feature come i getters ed i setters, la libreria per il supporto a JSON e la reflection sulle proprietà degli oggetti.<ref>{{citeCita web|url = http://www.youtube.com/watch?v=Kq4FpMe6cRs|title titolo= Changes to JavaScript, Part 1: EcmaScript 5|publisher editore= YouTube|date data= 2009-05-18 maggio 2009|accessdate accesso= 2013-10-31 ottobre 2013}}</ref>
|[[Pratap Lakshman]], [[Allen Wirfs-Brock]]
|-
Riga 61:
 
=== 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 '99. 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 nel 23 Ottobre del 2007. <ref>{{CiteCita web|url = http://www.ecmascript.org/es4/spec/overview.pdf|title titolo= Proposed ECMAScript 4th Edition – Language Overview|date data= 23 Octoberottobre 2007|accessdate accesso=|website sito= ecmascript.org|publisher cognome=|last =|first nome=}}</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:
Riga 70:
* Destructuring assignment
* Tipi di dati algebrici
L'intento di queste features era in parte quello di poter essere dinamici nel migliorare le performance del linguaggio a discapito di alcune abilità del linguaggio stesso. Per esempio, Tamarin (la macchina virtuale per ActionScript sviluppata e rilasciata open source da Adobe) è dotata di compilazione JIT ([[Compilatore just-in-time|just-in-time]]). Chiaramente oltre che l'introduzione di nuove features, nella quarta edizione ci fu la proposta di fixare diversi bug dell'edizione precedente. <ref>{{citeCita web|author autore= John Resig|url = http://ejohn.org/blog/bug-fixes-in-javascript-2/|title titolo= John Resig – Bug Fixes in JavaScript 2|publisher editore= Ejohn.org|date data=|accessdate accesso= 31 ottobre 2013-10-31}}</ref><ref>{{citeCita web|url = http://www.ecmascript.org/es4/spec/incompatibilities.pdf|title titolo= Compatibility Between ES3 and Proposed ES4|publisher editore= Ecmascript.org|accessdate accesso= 31 ottobre 2013-10-31}}</ref>
 
I lavori per quest'edizione iniziarono dopo aver completato le specifiche dell'edizione Compact Profile e continuarono approssimativamente per 18 mesi dove i passi avanti fatti erano molto pochi ed erano principalmente incentrati sul bilanciare quella che era la teoria di Javascript 2 con l'implementazione pratica di JScript di Microsoft. Ci furono anche diversi dibattiti avvenuti pubblicamente su dei blog tra Eich, che sarebbe diventato più tardi il CTO della Mozilla Foundation, e Chris Wilson dipendente Microsoft responsabile per l'architettura di Internet Explorer.
Riga 125:
|[[KJS (software)|KJS]]
|[[KHTML]]
|ECMA-262, edizione 5.1<ref group="d">{{citeCita web|url = http://buschinski.de/2013/01/kjs-finally-under-1000-fails/|title titolo= bUscher » Blog Archive » kjs finally under 1000 fails!|work sito= buschinski.de}}</ref> e caratteristiche dalla 6<ref group="d">Commits marked with ES6 are implementations of ES6 features: http://quickgit.kde.org/?p=kjs.git&a=shortlog</ref>
|-
|Ejscript