Javascrip{filter}t har en meget mærkelig navngivningshistorie.
Det blev først udgivet i 1995 som en del af Netscape Navigator, som gav det nye sprog navnet Livescrip{filtering}t. Et år senere, for at fange mediehypen omkring Java på det tidspunkt, blev navnet midlertidigt ændret til Javascrip{filtering}t (selvfølgelig er forholdet mellem Java og Javascrip{filtering}t det samme som for Lei Feng og Lei Feng Tower – det har intet med det at gøre)
Joken med den skæve nød er slet ikke sjov
Oversætterens note: Wikipedias opslag Javascrip{filter}t beskriver denne historie mere detaljeret
I 1996 indsendte Netscape Javascrip{filtering}t til ECMA International (European Computer Manufacturers Association) for standardisering og færdiggjorde endelig en ny sprogstandard, som var ECMAscrip{filtering}t. Siden da har ECMAscrip{filtering}t været grundlaget for alle Javascrip{filtering}t-implementeringer, dog af historiske og markedsmæssige årsager (tilsyneladende er ECMAscrip{filtering}t ikke et begejstrede navn...... I virkeligheden bruger vi kun ECMAscrip{filter}t til at kalde standarden, og vi bruger normalt Javascrip{filter}t til at kalde dette sprog.
Terminologi:
- Standard: Et sæt regler, der definerer, hvad der adskiller det fra andre ting
- Implementering: Den specifikke implementering/praksis i den virkelige verden af en standard
Men Javascrip{filtering}t-udviklerne interesserer sig ikke meget for dette, fordi ECMAscrip{filtering}t ikke har ændret sig meget i de 15 år siden dets opstart, og mange virkelige implementeringer er allerede meget forskellige fra standarden. Faktisk blev to versioner mere udgivet kort efter udgivelsen af den første version af ECMAscrip{filtering}t, men siden udgivelsen af ECMAscrip{filter}t 3 i 1999 er der ikke blevet tilføjet nogen ændringer til den officielle specifikation i ti år. I stedet kæmper browserleverandører for at udvide deres egne sprog, hvilket efterlader webudviklere uden andet valg end at eksperimentere med og understøtte disse API'er. Selv efter udgivelsen af ECMAscrip{filter}t 5 i 2009 tog det flere år, før disse nye specifikationer fik bred opbakning fra browsere, men de fleste udviklere skrev stadig ECMAscrip{filtering}t 3-stil kode og følte ikke behov for at lære om dem.
Oversætterens note: Udkastet til ECMAscrip{filter}t version 4 blev opgivet, fordi det var for aggressivt, og Adobes Actionscrip{filtering}t 3.0 er den eneste implementering af ECMAscrip{filtering}t edition 4 (Flash forenede næsten nettet)
I 2012 begyndte tingene pludselig at ændre sig. Der er push to end-understøttelse af ældre versioner af IE, og det er mere muligt at skrive kode i stil med ECMAscrip{filter}t 5 (ES5). Samtidig lanceres en ny specifikation ECMAscrip{filtering}t. På dette tidspunkt begyndte folk at vænne sig til at beskrive forskellige Javascrip{filtering}t-implementeringer i forhold til versionsunderstøttelse af ECMAscrip{filter}t-specifikationen. Denne nye standard blev oprindeligt kaldt ES. Harmoni. I 2015 besluttede TC39, komitéen ansvarlig for at udvikle udkastet til ECMAscrip{filter}t-specifikationen, at ændre systemet for at definere nye standarder til én gang om året, hvilket betyder, at hver ny funktion kan tilføjes, når den er godkendt, i modsætning til at den tidligere specifikation først bliver færdiggjort, når hele udkastet er færdigt, og alle funktioner er i orden. Som følge heraf blev ECMAscrip{filtering}t version 6 omdøbt til ECMAscrip{filtering}t 2015 (ES2015), før den blev udgivet i juni.
Der foreslås stadig mange nye Javascrip{filter}t-funktioner eller syntaks, herunder decorators, async-await og statiske klasseegenskaber. De omtales ofte som ES7, ES2016 eller ES. Dernæst, men faktisk kan de kun kaldes forslag eller muligheder, for ES2016-specifikationen er endnu ikke færdig, og det er muligt, at alle vil blive introduceret, eller ingen af dem vil blive introduceret. TC39 opdeler et forslag i 4 faser, og du kan se, hvilket stadie hvert forslag er i på Babels hjemmeside.
Så hvordan bruger vi denne bunke terminologi? Følgende liste kan hjælpe dig:
- ECMAscrip{filter}t: Et sprog standardiseret af ECMA International og overvåget af TC39-komitéen. Bruges ofte om selve standarden.
- Javascrip{filtering}t: Det mest almindelige navn for forskellige implementeringer af ECMAscrip{filtering}t-standarden. Dette udtryk er ikke begrænset til en specifik version af ECMAscrip{filtering}t-specifikationen og kan bruges om enhver variation af implementering af enhver version af ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): Den femte udgave af ECMAscrip{filtering}t, standardiseret i 2009. Denne specifikation er ret fuldt implementeret i alle moderne browsere.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Den sjette udgave af ECMAscrip{filtering}t blev revideret og standardiseret i 2015. Denne standard er delvist implementeret i de fleste moderne browsere. Du kan konsultere denne kompatibilitetstabel for at se, hvordan forskellige browsere og værktøjer er implementeret.
- ECMAscrip{filter}t 2016: Den forventede syvende udgave af ECMAscrip{filter}t-revisionen, planlagt til udgivelse næste sommer. De specifikke funktioner, der vil blive inkluderet i denne specifikation, er endnu ikke færdiggjort
- ECMAscrip{filter}t Forslag: Funktions- og syntaksforslag, der overvejes til inddragelse i fremtidige versioner af ECMAscrip{filter}t-standarden, vil gennemgå fem faser: Stråmand, Forslag, Udkast, Kandidat og Færdig.
Gennem hele denne blog vil jeg henvise til den nuværende version af ECMAscrip{filtering}t som ES6 (fordi det er det, de fleste udviklere er mest vant til), næste års specifikation som ES2016 (fordi dette navn, i modsætning til ES6/ES2015, vil blive brugt gennem hele standardiseringsprocessen), og fremtidige sprogkoncepter, der endnu ikke er færdiggjorte eller udarbejdet, ECMAscrip{filtering}t forslag eller Javascrip{filter}t forslag. Jeg vil gøre mit bedste for at følge denne artikel ved enhver lejlighed, der kan skabe forvirring.