🌐 Что такое es6, ECMAscript2015, babel?
(Пост для паблика Codegirls)
ECMAscript – язык программирования, используемый как основа для построения других скриптовых языков.
ECMAscript был создан для стандартизации javascript, который и остаётся его самой популярной реализацией (другие примеры - JScript, ActionScript)
ECMAscript 6 – одна из версий стандарта, разработанная в 2015 году, поэтому её иногда называют ECMAscript2015. Краткое название - es6. То есть es6, ECMAscript6, ECMAscript2015, ES-2015 - названия одной и той же версии.
js используется для разработки десктопных, мобильных и серверных приложений, но наиболее популярным вариантом остаётся разработка клиентской части веб-приложений. В этом случае код исполняется в браузере пользователя, а значит должен без проблем работать во всех современных браузерах.
Основные браузеры уже поддерживают большую часть возможностей es6, но нам может понадобиться поддержка более старых браузеров.
В то же время в новом стандарте много привлекательных фич, и разработчики хотят их использовать. Эту проблему можно решить с помощью транспайлера babel, который преобразует код, соответствующий новому стандарту, в код, соответствующий es5.
Таким образом, мы пишем es6-код, транспайлер обрабатывает его, и сервер отдаёт клиентам полностью совместимую с их браузерами версию.
Обычно babel работает в составе системы сборки, например, в виде плагина для вебпака, есть и другие варианты. Чтобы посмотреть, как транспайлер преобразует код, настраивать всю систему сборки необязательно. Можно попробовать прямо на сайте. Например, попробуйте ввести код из этого гиста в поле слева, справа появится результат для es5. Видно, что работа с классами в es6 стала намного проще.
Ещё можно установить babel в консоли и поэкспериментировать у себя на компьютере (инструкция, Babel CLI).
Со временем юзеры постепенно перейдут на новые версии браузеров, тогда отпадёт необходимость переписывать код на es5, но с новыми версиями ECMAscript придётся работать по той же схеме.
Дополнительная информация:
ES-2015 сейчас
Учебник по js на русском
Таблица поддержки стандартов браузерами и транспайлерами
Основы JavaScript, курс от Mozilla [ру]
Babel & ES6 [en]
ES6 для начинающих [en]
You might not need to transpile [en]