Зачем использовать транспортеры / прокладки, если ES6 больше поддерживается в Chrome и других браузерах?

Судя по найденной здесь таблице совместимости ES6

Большинство шайб и транспортеров реализуют только менее 70% функций ES6, поэтому зачем кому-то использовать Babel/Traceur, когда Javascript ES6 в значительной степени поддерживается сейчас в Chrome / Safari и Firefox по умолчанию.

Я имею в виду, если бы я был разработчиком, скажем, Babel - конечно, ваш приоритет номер один - убедиться, что у вас есть функции ES6 и даже ES7, реализованные до вашего соревнования.

Или я что-то здесь упускаю?

2 ответа

Решение

Большинство шайб и транспортеров реализуют только менее 70% функций ES6, поэтому зачем кому-то использовать Babel/Traceur, когда Javascript ES6 теперь поддерживается в Chrome/Safari и Firefox по умолчанию.

Потому что некоторые из моих приложений по-прежнему нуждаются в поддержке вплоть до IE9 (мы наконец-то заставили вашего клиента поднять планку до IE9). И это не из-за недостатка знаний у нашего клиента, а потому, что пользователи этой платформы действительно используют этот браузер.

Особенно, когда ваши пользователи - это компании (или их сотрудники), IE (даже Edge) часто остается стандартом.

"Я что-то здесь упускаю?" -Да. Вам не хватает десятилетий споров об относительных достоинствах динамической и статической типизации. Приступай к чтению. - Джаред Смит

@ Даниэль, ни одно из твоих правок ничего не изменило в этот момент, сделанное Джаредом.

JS, вероятно, никогда не предоставит статическую проверку типов или ошибки времени компиляции; потому что это существенно другой подход к написанию и публикации кода.

Я имею в виду, если бы я был разработчиком, скажем, Babel - конечно, ваш приоритет номер один - убедиться, что у вас есть функции ES6 и даже ES7, реализованные до вашего соревнования.

Да, мне нравится использовать ES6 и использовать транспортер, когда это необходимо, но я все еще считаю функции ES7 нестабильными и в процессе разработки. Если окончательная реализация будет отличаться от текущей версии, мне придется вернуться и проверить каждый проект, в котором я бы ее использовал. Это слишком большая неопределенность, чтобы фактически использовать их в производстве, так что...
Мне (как одному из пользователей Babels) на самом деле все равно, работает ли один транспортер, или другой уже поддерживает эти последние функции, если только не опубликован окончательный стандарт.

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

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

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

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

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

Другие вопросы по тегам