Javascrip{filter}t má veľmi zvláštnu históriu pomenovaní.
Prvýkrát bol vydaný v roku 1995 ako súčasť Netscape Navigator, ktorý dal novému jazyku názov Livescrip{filtering}t. O rok neskôr, aby sa naplnilo mediálne nadšenie okolo Javy, bol názov dočasne zmenený na Javascrip{filtering}t (samozrejme, vzťah medzi Java a Javascrip{filtering}t je rovnaký ako medzi Lei Feng a Lei Feng Tower – nemá s tým nič spoločné)
Vtip o krivých orechoch vôbec nie je vtipný
Poznámka prekladateľa: Wikipédiin záznam Javascrip{filter}t opisuje túto históriu podrobnejšie
V roku 1996 Netscape predložil Javascrip{filtering}t ECMA International (Európska asociácia výrobcov počítačov) na štandardizáciu a nakoniec dokončil nový jazykový štandard, ktorý bol ECMAscrip{filtering}t. Odvtedy je ECMAscrip{filtering}t základom všetkých implementácií Javascrip{filtering}t, hoci z historických a trhových dôvodov (zrejme ECMAscrip{filtering}t nie je obľúbený názov...... V skutočnosti používame ECMAscrip{filter}t iba na volanie štandardu a zvyčajne používame Javascrip{filter}t na volanie tohto jazyka.
Terminológia:
- Štandard: Súbor pravidiel, ktoré definujú, čím sa odlišuje od ostatných vecí
- Implementácia: Konkrétna implementácia/prax štandardu v reálnom svete
Vývojári Javascrip{filtering}t sa však o to príliš nezaujímajú, pretože ECMAscrip{filtering}t sa za 15 rokov od svojho vzniku príliš nezmenil a mnohé reálne implementácie sú už veľmi odlišné od štandardu. V skutočnosti po vydaní prvej verzie ECMAscrip{filtering}t boli krátko nato vydané ďalšie dve verzie, ale od vydania ECMAscrip{filter}t 3 v roku 1999 neboli do oficiálnej špecifikácie úspešne pridané žiadne zmeny už desať rokov. Namiesto toho sa výrobcovia prehliadačov snažia rozšíriť svoje vlastné jazyky, takže weboví vývojári nemajú inú možnosť, než experimentovať a podporovať tieto API. Aj po vydaní ECMAscrip{filter}t 5 v roku 2009 trvalo niekoľko rokov, kým tieto nové špecifikácie získali širokú podporu v prehliadačoch, no väčšina vývojárov stále písala kód v štýle ECMAscrip{filtering}t 3 a necítila potrebu sa o nich učiť.
Poznámka prekladateľa: Návrh verzie 4 ECMAscrip{filter}t bol opustený, pretože bol príliš agresívny, a Adobe Actionscrip{filtering}t 3.0 je jedinou implementáciou ECMAscrip{filtering}t edície 4 (Flash takmer zjednotil web)
Do roku 2012 sa veci náhle začali meniť. Existuje tlak na ukončenie podpory starších verzií IE a je reálnejšie písať kód v štýle ECMAscrip{filter}t 5 (ES5). Zároveň je spustená nová špecifikácia ECMAscrip{filtering}t. V tomto bode si ľudia začali zvykať opisovať rôzne implementácie Javascrip{filtering}t z hľadiska podpory verzií špecifikácie ECMAscrip{filter}t. Tento nový štandard sa pôvodne nazýval ES. Harmónia. V roku 2015 sa TC39, výbor zodpovedný za vypracovanie návrhu špecifikácie ECMAscrip{filter}t, rozhodol zmeniť systém definovania nových štandardov na raz ročne, čo znamená, že každá nová vlastnosť môže byť pridaná po schválení, na rozdiel od toho, že predchádzajúca špecifikácia bola dokončená až po dokončení celého návrhu a splnení všetkých funkcií. V dôsledku toho bola verzia 6 ECMAscrip{filtering}t premenovaná na ECMAscrip{filtering}t 2015 (ES2015) pred jej publikovaním v júni.
Stále sa navrhuje veľa nových funkcií alebo syntaxe Javascrip{filter}t, vrátane dekorátorov, async-await a statických tried vlastností. Často sa označujú ako ES7, ES2016 alebo ES. Ďalej, ale v skutočnosti ich možno nazvať len návrhmi alebo možnosťami, napokon, špecifikácia ES2016 ešte nie je kompletná a je možné, že budú predstavené všetky, alebo žiadna z nich. TC39 rozdeľuje návrh do 4 fáz a na webovej stránke Babel si môžete pozrieť, v ktorej fáze sa každý návrh nachádza.
Ako teda používame túto zbierku terminológie? Nasledujúci zoznam vám môže pomôcť:
- ECMAscrip{filter}t: Jazyk štandardizovaný ECMA International a pod dohľadom výboru TC39. Často sa používa na označenie samotného štandardu.
- Javascrip{filtering}t: Najbežnejší názov pre rôzne implementácie štandardu ECMAscrip{filtering}t. Tento pojem nie je obmedzený na konkrétnu verziu špecifikácie ECMAscrip{filtering}t a môže sa použiť pre rôznu úroveň implementácie akejkoľvek verzie ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): Piate vydanie ECMAscrip{filtering}t, štandardizované v roku 2009. Táto špecifikácia je pomerne plne implementovaná vo všetkých moderných prehliadačoch.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Šieste vydanie ECMAscrip{filtering}t bolo revidované a štandardizované v roku 2015. Tento štandard je čiastočne implementovaný vo väčšine moderných prehliadačov. Môžete si pozrieť túto tabuľku kompatibility, aby ste videli, ako sú implementované rôzne prehliadače a nástroje.
- ECMAscrip{filter}t 2016: Očakávané siedme vydanie revízie ECMAscrip{filter}t, plánované na vydanie budúce leto. Konkrétne funkcie, ktoré budú zahrnuté v tejto špecifikácii, zatiaľ neboli definitívne stanovené
- ECMAscrip{filter}t Návrhy: Návrhy funkcií a syntaxe, ktoré sa zvažujú na zaradenie do budúcich verzií štandardu ECMAscrip{filter}t, prejdú piatimi fázami: Slamený muž, Návrh, Návrh, Kandidát a Dokončené.
V tomto blogu budem odkazovať na aktuálnu verziu ECMAscrip{filtering}t ako ES6 (pretože na to sú väčšina vývojárov najviac zvyknutá), na budúcoročnú špecifikáciu ako ES2016 (pretože na rozdiel od ES6/ES2015 sa tento názov bude používať počas celého procesu štandardizácie) a budúce jazykové koncepty, ktoré ešte neboli finalizované alebo vypracované návrhy ECMAscrip{filtering}t alebo Javascrip{filter}t proposal. Urobím všetko pre to, aby som tento článok sledoval pri každej príležitosti, ktorá by mohla spôsobiť zmätok.