Как стать автором
Обновить

Комментарии 33

Наконец то!
Осталось дождаться когда появятся браузеры полностью реализующие новый стандарт. Когда это произойдёт перед web-разработчиками наверное встанет новая задача: браузерам поддерживающим es2015 отдавать es2015 исходники, а другим версию скомпилированную в es5. Так как наверняка es2015 версия будет эффективнее чем скомпилированная.
уже есть инструменты, которые траслитерируют на лету только несовместимое
Вы не могли бы подсказать как они называются? Что-то не могу найти…
Судя по писанию этот инструмент просто может загружать es2015 модули вызывая traceur или babel для них. traceur или babel способны при компиляции оставлять те es2015 конструкции которые уже поддерживаются?
У бабеля есть опция blacklist. Занесите туда те трансформеры, что вам не нужны (нативно поддерживаются). Список трансформеров: babeljs.io/docs/advanced/transformers
В соседней новости TedBeer указал ссылку на книгу одного из разработчиков, думаю, будет полезным и тут упомянуть:
Вчера присутствовал на презентации ES6 с докладчиком Dr. Axel Rauschmayer(его блог) Он плотно учавствовал в разработке ES6. Ему задали вопрос насчет поддержки в браузерах и он сказал, что по плану все основные браузеры будут полностью поддерживать стандарт уже до конца этого года.
На днях он закончил книжку по ES6 и она доступна бесплатно в онлайн — Exploring ES6
Куда интереснее вот это www.w3.org/community/webassembly

«WebAssembly, that defines a portable, size- and load-time-efficient format and execution model specifically designed to serve as a compilation target for the Web».

Если я правильно понимаю, то скоро можно будет писать под Веб на любом языке поддерживающем эту технологию.
Надеюсь для любителей IE кто-то возьмется за быстрые и вменяемые полифилы. Иначе все так и останется роскошью, а не средством передвижения.
Вас что-то не устраивает в существующих? :)
Раз они сделали TCO, они выкинули идиотский метод arguments?
Они не ломали обратную совместимость.
Свойства arguments и функций, мешающие TCO, отключены в строгом режиме ещё в ECMAScript 5. TCO работает только в строгом режиме, а он в синтаксисе модулей включен по умолчанию. Ну а по поводу arguments — хоть он и присутствует, вместо него рекомендуется использовать rest.
О как, очень интересно выслушать точку зрения минусующего :)
Я знаю зачем вас минусуют, но в доках написано, что если функция использует rest параметры в заголовке, то arguments внутри не будет.
Не совсем верно, по спецификации наличие rest на наличие arguments никак не влияет, пример, поведение FF здесь ошибочно, хотя, само собой, реализация не будет создавать arguments, если он не используется :)

Дело в оптимизации кода. Объект arguments привязан к стеку вызова и аргументам функции, большинство действий с ним приводят к деоптимизации функции. В V8 сейчас оптимизируется только получение .length, получение элемента по индексу, передача в .apply, да и то далеко не во всех случаях. Передача arguments в любую функцию (даже Array.prototype.slice.call(arguments)) или изменения переменной-аргумента функции, если в ней присутствует arguments, делает её оптимизацию невозможной. Хорошо расписано здесь. Rest же создаёт обычный массив без лишних привязок и должен легко оптимизироваться движками.
Thanks!
Стало понятно.
Верю что Хром и ФФ к началу следующего года подойдут вплотную к полной совместимости. Но как же быть с Edge? Что-то у меня мало веры в то в Windows 10 Edge будет обновляться так же быстро и незаметно как Хром.
Почему нет? Ведь обещано что сам windows будет регклярно обновляться и новые полноценные релизы windows мы теперь не увидим очень долго.
Про винду всё понятно, но будет ли браузер при этом обновляться чаще винды?
Думаю что можно ожидать что он будет обновляться как минимум со скоростью самой винды.
Обещают, что он будет автоматически получать обновления, в том числе и с добавлением новых фич. Здесь скорее проблема в старых виндах и IE, которые ещё много лет будут портить жизнь, и в корявой реализации фич «для галочки», что будут мешать не меньше, чем Object.defineProperty из IE8.
Как плавно перейти на es6?
транспиллеры ваш выбор
Объявить существующий код кодом на ES6. :)
Он обратно совместим с предыдущей версией. Берите babel и используйте новые фичи.
Зависит от архитектуры вашего проекта и возможностей, которые требуются.
А зачем?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории