Javascrip{filter}t има много странна история на именуване.
Първоначално беше пуснат през 1995 г. като част от Netscape Navigator, който даде на новия език името Livescrip{filtering}t. Година по-късно, за да се хване медийният шум около Java по онова време, името временно е променено на Javascrip{filtering}t (разбира се, връзката между Java и Javascrip{filtering}t е същата като между Lei Feng и Lei Feng Tower – няма нищо общо с това)
Шегата с кривия орехи изобщо не е смешна
Бележка на преводача: Статията в Javascrip{filter}t в Уикипедия описва тази история по-подробно
През 1996 г. Netscape подаде Javascrip{filtering}t на ECMA International (Европейската асоциация на производителите на компютри) за стандартизация и накрая финализира нов езиков стандарт, който беше ECMAscrip{filtering}t. Оттогава ECMAscrip{filtering}t е основата за всички реализации на Javascrip{filtering}t, макар и по исторически и пазарни причини (очевидно ECMAscrip{filtering}t не е подходящо име...... В действителност използваме само ECMAscrip{filter}t за извикване на стандарта и обикновено използваме Javascrip{filter}t за извикване на този език.
Терминология:
- Стандарт: Набор от правила, които определят какво го отличава от другите неща
- Внедряване: Специфичната реализация/реалната практика на стандарт
Въпреки това, разработчиците на Javascrip{filtering}t не се интересуват особено от това, защото ECMAscrip{filtering}t не се е променил много през 15-те години от създаването си, а много реални реализации вече са много различни от стандарта. Всъщност, след излизането на първата версия на ECMAscrip{filtering}t, скоро след това бяха пуснати още две версии, но след излизането на ECMAscrip{filter}t 3 през 1999 г. в рамките на десет години не са били успешно добавени промени в официалната спецификация. Вместо това, доставчиците на браузъри бързат да разширят собствените си езици, оставяйки уеб разработчиците без избор, освен да експериментират и поддържат тези API-та. Дори след пускането на ECMAscrip{filter}t 5 през 2009 г., отне няколко години, докато тези нови спецификации получат широка подкрепа от браузърите, но повечето разработчици все още пишеха код в стил ECMAscrip{filtering}t 3 и не чувстваха нужда да ги изучават.
Бележка на преводача: Черновата на ECMAscrip{filter}t версия 4 беше изоставена, защото беше твърде агресивна, а Actionscrip{filtering}t 3.0 на Adobe е единствената реализация на ECMAscrip{filtering}t издание 4 (Flash почти обедини уеба)
До 2012 г. нещата внезапно започнаха да се променят. Има натиск за прекратяване на поддръжката на по-стари версии на IE и е по-осъществимо да се пише код в стил ECMAscrip{filter}t 5 (ES5). По същото време е пусната нова спецификация ECMAscrip{filtering}t. В този момент хората започнаха да свикват да описват различни реализации на Javascrip{filtering}t по отношение на поддръжката на версии за спецификацията ECMAscrip{filter}t. Този нов стандарт първоначално се наричаше ES. Хармони. През 2015 г. TC39, комитетът, отговорен за разработването на проекта на спецификацията ECMAscrip{filter}t, реши да промени системата за дефиниране на нови стандарти на веднъж годишно, което означава, че всяка нова функция може да бъде добавена след одобрението си, за разлика от предишната спецификация да се финализира едва след като цялата черза е завършена и всички функции са наред. В резултат на това ECMAscrip{filtering}t версия 6 беше преименувана на ECMAscrip{filtering}t 2015 (ES2015) преди да бъде публикувана през юни.
Все още се предлагат много нови функции или синтаксис в Javascrip{filter}t, включително декоратори, async-await и статични свойства на класове. Често се наричат ES7, ES2016 или ES. След това, но всъщност те могат да се нарекат само предложения или възможности, все пак спецификацията ES2016 все още не е завършена и е възможно всички да бъдат въведени или нито една от тях да не бъде представена. TC39 разделя предложението на 4 фази и можете да проверите на кой етап е всяко предложение в момента на уебсайта на Babel.
И така, как да използваме този куп терминология? Следният списък може да ви помогне:
- ECMAscrip{filter}t: Език, стандартизиран от ECMA International и наблюдаван от комитета TC39. Често се използва за обозначаване на самия стандарт.
- Javascrip{filtering}t: Най-често срещаното име за различни реализации на стандарта ECMAscrip{filtering}t. Този термин не се ограничава само до конкретна версия на спецификацията ECMAscrip{filtering}t и може да се използва за всякаква различна степен на имплементация на всяка версия на ECMAscrip{filtering}t.
- ECMAscrip{filtering}t 5 (ES5): Петото издание на ECMAscrip{filtering}t, стандартизирано през 2009 г. Тази спецификация е сравнително напълно реализирана във всички съвременни браузъри.
- ECMAscrip{filter}t 6 (ES6) / ECMAscrip{filter}t 2015 (ES2015): Шестото издание на ECMAscrip{filtering}t беше ревизирано и стандартизирано през 2015 г. Този стандарт е частично реализиран в повечето съвременни браузъри. Можете да разгледате тази таблица за съвместимост, за да видите как са реализирани различните браузъри и инструменти.
- ECMAscrip{filter}t 2016: Очакваното седмо издание на ревизията на ECMAscrip{filter}t, планирано за издаване следващото лято. Конкретните функции, които ще бъдат включени в тази спецификация, все още не са финализирани
- ECMAscrip{filter}t Предложения: Предложенията за характеристики и синтаксис, които се разглеждат за включване в бъдещи версии на стандарта ECMAscrip{filter}t, преминават през пет етапа: Strawman, Proposal, Draft, Candidate и Finished.
В целия този блог ще наричам настоящата версия на ECMAscrip{filtering}t ES6 (защото това е нещото, с което повечето разработчици са най-свикнали), спецификацията за следващата година като ES2016 (защото, за разлика от ES6/ES2015, това име ще се използва през целия процес на стандартизация), както и бъдещи езикови концепции, които все още не са финализирани или изготвени ECMAscrip{filtering}t предложения или Javascrip{filter}t предложение. Ще се постарая да следя тази статия при всякакви обстоятелства, които могат да предизвикат объркване.