Javascript как язык бездействовал несколько лет, но теперь новая версия языка будет выпускаться каждый год. Javascript в настоящее время является постоянно развивающимся языком, и транспиляторы никуда не денутся, чтобы позволить нам использовать эти функции уже сегодня.

Что такое транспайлер?
Транспайлер — это инструмент, который читает код и выводит эквивалентный код, написанный на другом языке.

ES2015

Если вы не слышали об этом раньше, ES2015 — это название последней версии javascript. Возможно, вы также видели термин ES6 раньше, но оба они относятся к одной и той же версии javascript, выпущенной 17 июня 2015 года. отныне будет называться «ES + год» последнего утвержденного стандарта.

Как будут выходить новые функции

Новые функции, предлагаемые для новых версий javascript, проходят 5 этапов:

0 - Соломенный человек: Идея;

1 - Предложение: Работа над ним;

2 - Проект: Начальная спецификация;

3 - Кандидат: полная спецификация;

4 - Готово: будет добавлено в следующий выпуск;

Почему транспилятор

Транспиляторы позволяют нам использовать последнюю версию javascript, не дожидаясь, пока поставщики браузеров реализуют новые предлагаемые функции.

Транспиляция Javascript с помощью Babel

Babel — самый популярный транспилятор javascript на сегодняшний день.
Он в основном принимает javascript и возвращает javascript на основе набора параметров, которые вы ему передаете.

//ES2015 arrow function
(param1, param2, paramN) => { return statements }
//Babel transpiled output
"use strict";
(function (param1, param2, paramN) {
  return statements;
});

Стоимость транспиляторов

Использование блестящего и новейшего обходится дорого, система сборки является обязательным шагом, который может добавить некоторые накладные расходы при запуске проекта, а транспилированный код будет тяжелее, чем его исходный аналог, а отладка может быть сложнее, особенно в производственных средах.

Используйте только функции этапа 3 или выше в рабочей среде.

Babel и другие транспиляторы поддерживают функции ниже финальной стадии или ниже стадии 4. Поддержка этих функций предназначена для того, чтобы дать разработчикам возможность опробовать эти новые функции и получить отзывы от сообщества. Они не предназначены для использования в рабочей среде, поскольку они могут сильно изменяться, и вы застрянете с неподдерживаемая функция в вашей кодовой базе.

Если вы используете функцию стадии ‹4, вы рискуете, что она изменится до того, как она попадет в рабочую среду, и вы застрянете с неподдерживаемой функцией в своей кодовой базе.

Дальнейшие выпуски

Es2015 был самым большим выпуском языка javascript, и ожидается, что дальнейшие выпуски будут намного меньше. ES2016 состоит всего из 2 функций: Array.prototype.includes и Оператор возведения в степень.

Транспиляторы здесь, чтобы остаться

В сообществе javascript много путаницы в отношении того, что является частью какой версии javascript и какие функции безопасны для использования, а также есть много статей, в которых упоминаются функции ранней стадии как часть версии javascript в следующем году, остерегайтесь этого.

Вы можете проверить все активные предложения по новым возможностям javascript по адресу:
https://github.com/tc39/proposals

Готовые предложения и ожидаемые даты выпуска:
https://github.com/tc39/proposals/blob/master/finished-proposals.md

Транспиляторы никуда не денутся, поэтому важно иметь представление о том, как они работают, и если вы хотите использовать последнюю версию javascript сегодня, убедитесь, что то, что вы используете, действительно будет реализовано в браузере.

Хороший путь — убедиться, что вы можете отправить свой код без шага транспиляции в браузер как можно скорее.