Javascrip{filter}t are o istorie de denumire foarte ciudată.
A fost lansat pentru prima dată în 1995 ca parte a Netscape Navigator, care a dat noului limbaj numele Livescrip{filtering}t. Un an mai târziu, pentru a prinde valul agitației mediatice legate de Java la acea vreme, numele a fost schimbat temporar în Javascrip{filtering}t (desigur, relația dintre Java și Javascrip{filtering}t este aceeași ca cea dintre Lei Feng și Lei Feng Tower – nu are nicio legătură cu asta)
Gluma cu nucile strâmbe nu e deloc amuzantă
Notă a traducătorului: Intrarea Wikipedia despre Javascrip{filter}t descrie această istorie în detaliu
În 1996, Netscape a trimis Javascrip{filtering}t către ECMA International (Asociația Producătorilor Europeni de Calculatoare) pentru standardizare și, în cele din urmă, a finalizat un nou standard de limbaj, care a fost ECMAscrip{filtering}t. De atunci, ECMAscrip{filtering}t a stat la baza tuturor implementărilor Javascrip{filtering}t, deși din motive istorice și de piață (se pare că ECMAscrip{filtering}t nu este un nume preferat...... În realitate, folosim doar ECMAscrip{filter}t pentru a chema standardul, iar de obicei folosim Javascrip{filter}t pentru a numi acest limbaj.
Terminologie:
- Standard: Un set de reguli care definesc ce îl diferențiază de alte lucruri
- Implementare: Implementarea specifică/practica reală a unui standard
Totuși, dezvoltatorii Javascrip{filtering}t nu sunt prea interesați de acest lucru, deoarece ECMAscrip{filtering} nu s-a schimbat prea mult în cei 15 ani de la început, iar multe implementări reale sunt deja foarte diferite de standard. De fapt, după lansarea primei versiuni de ECMAscrip{filtering}t, au mai fost lansate două versiuni la scurt timp după aceea, dar de la lansarea ECMAscrip{filter}t 3 în 1999, nicio modificare nu a fost adăugată cu succes specificației oficiale timp de zece ani. În schimb, furnizorii de browsere se grăbesc să-și extindă propriile limbaje, lăsând dezvoltatorilor web fără altă opțiune decât să experimenteze și să susțină aceste API-uri. Chiar și după lansarea ECMAscrip{filter}t 5 în 2009, au trecut câțiva ani până când aceste noi specificații au primit suport larg din partea browserelor, dar majoritatea dezvoltatorilor încă scriau cod în stil ECMAscrip{filtering}t 3 și nu au simțit nevoia să le cunoască.
Notă a traducătorului: Proiectul ECMAscrip{filter}t versiunea 4 a fost abandonat pentru că era prea agresiv, iar Actionscrip{filtering}t 3.0 de la Adobe este singura implementare a ECMAscrip{filtering}t ediția 4 (Flash aproape a unificat web-ul)
Până în 2012, lucrurile au început brusc să se schimbe. Există un suport push to end pentru versiunile mai vechi ale IE și este mai fezabil să scrii cod în stilul ECMAscrip{filter}t 5 (ES5). În același timp, este lansată o nouă specificație ECMAscrip{filtering}t. În acest moment, oamenii au început să se obișnuiască să descrie diverse implementări Javascrip{filtering}t în termeni de suport pentru versiuni pentru specificația ECMAscrip{filter}t. Acest nou standard a fost inițial numit ES. Harmony. În 2015, TC39, comitetul responsabil cu dezvoltarea proiectului specificației ECMAscrip{filter}t, a decis să schimbe sistemul de definire a noilor standarde la o dată pe an, ceea ce înseamnă că fiecare caracteristică nouă poate fi adăugată odată ce este aprobată, spre deosebire de finalizarea specificației anterioare doar după finalizarea întregului draft și toate funcționalitățile sunt în regulă. Ca urmare, ECMAscrip{filtering}t versiunea 6 a fost redenumită ECMAscrip{filtering}t 2015 (ES2015) înainte de a fi publicată în iunie.
Există încă multe caracteristici sau sintaxe noi Javascrip{filter}t propuse, inclusiv decoratori, async-await și proprietăți statice de clasă. Acestea sunt adesea denumite ES7, ES2016 sau ES. Apoi, dar de fapt pot fi numite doar propuneri sau posibilități, până la urmă, specificația ES2016 nu este încă completă și este posibil ca toate să fie introduse, sau niciuna să nu fie introdusă. TC39 împarte o propunere în 4 faze, iar pe site-ul lui Babel poți verifica în ce etapă se află fiecare propunere.
Deci, cum folosim această temă de terminologie? Următoarea listă te poate ajuta:
- ECMAscrip{filter}t: Un limbaj standardizat de ECMA International și supravegheat de comitetul TC39. Adesea folosit pentru a se referi la standardul propriu-zis.
- Javascrip{filtering}t: Cel mai comun nume pentru diverse implementări ale standardului ECMAscrip{filtering}t. Acest termen nu se limitează la o versiune specifică a specificației ECMAscrip{filtering}t și poate fi folosit pentru orice grad variabil de implementare al oricărei versiuni de ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): A cincea ediție a ECMAscrip{filtering}t, standardizată în 2009. Această specificație este destul de complet implementată în toate browserele moderne.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): A șasea ediție a ECMAscrip{filtering}t a fost revizuită și standardizată în 2015. Acest standard este parțial implementat în majoritatea browserelor moderne. Poți consulta acest tabel de compatibilitate pentru a vedea cum sunt implementate diferitele browsere și unelte.
- ECMAscrip{filter}t 2016: A șaptea ediție așteptată a revizuirii ECMAscrip{filter}t, programată pentru lansare vara viitoare. Caracteristicile specifice care vor fi incluse în această specificație nu au fost încă finalizate
- Propuneri ECMAscrip{filter}t: Propunerile de funcționalitate și sintaxă care vor fi luate în considerare pentru includere în versiunile viitoare ale standardului ECMAscrip{filter}t vor trece prin cinci etape: Strawman, Propunere, Draft, Candidat și Finalizat.
De-a lungul acestui blog, mă voi referi la versiunea actuală a ECMAscrip{filtering}t ca ES6 (pentru că la asta sunt cei mai obișnuiți dezvoltatori), la specificația de anul viitor ca ES2016 (pentru că, spre deosebire de ES6/ES2015, acest nume va fi folosit pe tot parcursul procesului de standardizare) și concepte viitoare de limbaj care nu au fost încă finalizate sau redactate propuneri ECMAscrip{filtering}t sau Javascrip{filter}t proposal. Voi face tot posibilul să urmăresc acest articol în orice ocazie care ar putea crea confuzie.