Javascrip{filter}t ima zelo nenavadno zgodovino poimenovanja.
Prvič je bil izdan leta 1995 kot del Netscape Navigatorja, ki je novemu jeziku dal ime Livescrip{filtering}t. Leto kasneje, da bi ujeli medijski hype okoli Jave v tistem času, so začasno spremenili ime v Javascrip{filtering}t (seveda je odnos med Javo in Javascrip{filtering}t enak kot med Lei Fengom in Lei Feng Towerjem – nima nobene zveze s tem)
Šala o krivih oreščkih sploh ni smešna
Opomba prevajalca: Wikipedijin vnos Javascrip{filter}t podrobneje opisuje to zgodovino
Leta 1996 je Netscape predložil Javascrip{filtering}t ECMA International (Evropsko združenje proizvajalcev računalnikov) v standardizacijo in končno dokončal nov jezikovni standard, imenovan ECMAscrip{filtering}t. Od takrat je ECMAscrip{filtering}t osnova za vse implementacije Javascrip{filtering}t, čeprav iz zgodovinskih in tržnih razlogov (očitno ECMAscrip{filtering}t ni priljubljeno ime...... V resnici uporabljamo ECMAscrip{filter}t le za klic standarda, običajno pa Javascrip{filter}t za klicanje tega jezika.
Terminologija:
- Standard: Nabor pravil, ki določajo, kaj ga loči od drugih stvari
- Implementacija: Specifična implementacija/praksa standarda v resničnem svetu
Vendar pa se razvijalci Javascrip{filtering}t s tem ne obremenjujejo preveč, saj se ECMAscrip{filtering}t v zadnjih 15 letih od ustanovitve ni bistveno spremenil, poleg tega pa so mnoge resnične implementacije že zelo drugačne od standarda. Pravzaprav sta po izdaji prve različice ECMAscrip{filtering}t kmalu zatem izdali še dve različici, vendar od izdaje ECMAscrip{filter}t 3 leta 1999 uradno specifikacijo niso bile uspešno dodane nobene spremembe v uradni specifikaciji že deset let. Namesto tega se ponudniki brskalnikov trudijo razširiti svoje jezike, zaradi česar spletni razvijalci nimajo druge izbire, kot da eksperimentirajo in podpirajo te API-je. Tudi po izdaji ECMAscrip{filter}t 5 leta 2009 je trajalo več let, da so te nove specifikacije dobile široko podporo brskalnikov, vendar je večina razvijalcev še vedno pisala kodo v slogu ECMAscrip{filtering}t 3 in niso čutili potrebe, da bi se o njih učili.
Opomba prevajalca: Osnutek ECMAscrip{filter}t različice 4 je bil opuščen, ker je bil preveč agresiven, Adobejev Actionscrip{filtering}t 3.0 pa je edina implementacija ECMAscrip{filtering}t izdaje 4 (Flash je skoraj združil splet)
Do leta 2012 so se stvari nenadoma začele spreminjati. Obstaja pritisk na konec podpore za starejše različice IE, zato je bolj izvedljivo pisati kodo v slogu ECMAscrip{filter}t 5 (ES5). Hkrati je bila predstavljena nova specifikacija ECMAscrip{filtering}t. Takrat so se ljudje začeli navajati na opisovanje različnih implementacij Javascrip{filtering}t v smislu podpore za verzije ECMAscrip{filter}t specifikacije. Ta novi standard se je sprva imenoval ES. Harmonija. Leta 2015 je TC39, odbor, odgovoren za razvoj osnutka specifikacije ECMAscrip{filter}t, odločil spremeniti sistem za določanje novih standardov na enkrat letno, kar pomeni, da se lahko vsaka nova funkcija doda po odobritvi, medtem ko je prejšnja specifikacija dokončana šele po zaključku celotnega osnutka in vseh funkcijah v redu. Zaradi tega je bila različica 6 ECMAscrip{filtering}t preimenovana v ECMAscrip{filtering}t 2015 (ES2015), preden je bila objavljena junija.
Še vedno je predlaganih veliko novih funkcij ali sintakse Javascrip{filter}t, vključno z dekoratorji, async-await in lastnostmi statičnih razredov. Pogosto jih imenujejo ES7, ES2016 ali ES. Nato, a v resnici jih lahko imenujemo le predlogi ali možnosti, saj specifikacija ES2016 še ni dokončana in možno je, da bodo vse uvedene ali pa nobena ne bo predstavljena. TC39 razdeli predlog na 4 faze, na spletni strani Babel pa lahko preverite, v kateri fazi je vsak predlog.
Kako torej uporabimo to vrsto terminologije? Naslednji seznam vam lahko pomaga:
- ECMAscrip{filter}t: Jezik, ki ga standardizira ECMA International in ga nadzoruje odbor TC39. Pogosto se uporablja za označevanje samega standarda.
- Javascrip{filtering}t: Najpogostejše ime za različne implementacije standarda ECMAscrip{filtering}t. Ta izraz ni omejen na specifično različico specifikacije ECMAscrip{filtering}t in se lahko uporablja za različne stopnje implementacije katere koli različice ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): Peta izdaja ECMAscrip{filtering}t, standardizirana leta 2009. Ta specifikacija je dokaj popolnoma implementirana v vseh sodobnih brskalnikih.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Šesta izdaja ECMAscrip{filtering}t je bila revidirana in standardizirana leta 2015. Ta standard je delno implementiran v večini sodobnih brskalnikov. Lahko si ogledate to tabelo združljivosti, da vidite, kako so različni brskalniki in orodja implementirani.
- ECMAscrip{filter}t 2016: Pričakovana sedma izdaja revizije ECMAscrip{filter}t, načrtovana za izdajo naslednje poletje. Specifične funkcije, ki bodo vključene v to specifikacijo, še niso dokončno določene
- ECMAscrip{filter}t Predlogi: Predlogi značilnosti in sintakse, ki bodo obravnavani za vključitev v prihodnje različice standarda ECMAscrip{filter}t, bodo šli skozi pet faz: Strawman, Proposal, Draft, Candidate in Finished.
V tem blogu bom trenutno različico ECMAscrip{filtering}t imenoval ES6 (ker je to tisto, na kar so večina razvijalcev najbolj vajena), specifikacijo za naslednje leto kot ES2016 (ker bo, za razliko od ES6/ES2015, to ime uporabljeno skozi celoten proces standardizacije) in prihodnje jezikovne koncepte, ki še niso dokončani ali pripravljeni v ECMAscrip{filtering}t predloge ali Javascrip{filter}t proposal. Potrudil se bom, da sledim temu članku ob vsaki priložnosti, ki lahko povzroči zmedo.