Несколько часов назад был опубликован финальный релиз спецификации ECMAScript 2015 ранее известной как ES6 — новый стандарт языка JavaScript.
Первым об этой новости сообщил основной идеолог языка и официальный представитель комитета по стандартизации Allen Wirfs-Brock.
Официальный документ доступен в форматах HTML и PDF.
Полезные ссылки:
- Описание нововведений
- Транслятор в более ранние версии языка
- Таблица совместимости с браузерами
- Книги по изучению нового стандарта
Поздравляю товарищи, это отличная новость, потому что таких серьезных изменений в языке не было почти 16 лет!
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (31)
tegArt
18.06.2015 10:46+3В соседней новости TedBeer указал ссылку на книгу одного из разработчиков, думаю, будет полезным и тут упомянуть:
Вчера присутствовал на презентации ES6 с докладчиком Dr. Axel Rauschmayer(его блог) Он плотно учавствовал в разработке ES6. Ему задали вопрос насчет поддержки в браузерах и он сказал, что по плану все основные браузеры будут полностью поддерживать стандарт уже до конца этого года.
На днях он закончил книжку по ES6 и она доступна бесплатно в онлайн — Exploring ES6
beduin01
18.06.2015 11:16+1Куда интереснее вот это 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».
Если я правильно понимаю, то скоро можно будет писать под Веб на любом языке поддерживающем эту технологию.Athari
18.06.2015 19:21github.com/WebAssembly/design/blob/master/FAQ.md
github.com/WebAssembly/design/blob/master/HighLevelGoals.md
Это asm.js, который правильно сделан, а не революция.
mrsum
18.06.2015 11:45-2Надеюсь для любителей IE кто-то возьмется за быстрые и вменяемые полифилы. Иначе все так и останется роскошью, а не средством передвижения.
potan
18.06.2015 12:15-2Раз они сделали TCO, они выкинули идиотский метод arguments?
rock
18.06.2015 12:43Свойства
arguments
и функций, мешающие TCO, отключены в строгом режиме ещё в ECMAScript 5. TCO работает только в строгом режиме, а он в синтаксисе модулей включен по умолчанию. Ну а по поводуarguments
— хоть он и присутствует, вместо него рекомендуется использовать rest.rock
18.06.2015 13:57О как, очень интересно выслушать точку зрения минусующего :)
Aux
18.06.2015 15:43Я знаю зачем вас минусуют, но в доках написано, что если функция использует rest параметры в заголовке, то arguments внутри не будет.
rock
18.06.2015 18:25+2Не совсем верно, по спецификации наличие rest на наличие
arguments
никак не влияет, пример, поведение FF здесь ошибочно, хотя, само собой, реализация не будет создаватьarguments
, если он не используется :)
Дело в оптимизации кода. Объектarguments
привязан к стеку вызова и аргументам функции, большинство действий с ним приводят к деоптимизации функции. В V8 сейчас оптимизируется только получение.length
, получение элемента по индексу, передача в.apply
, да и то далеко не во всех случаях. Передачаarguments
в любую функцию (дажеArray.prototype.slice.call(arguments)
) или изменения переменной-аргумента функции, если в ней присутствуетarguments
, делает её оптимизацию невозможной. Хорошо расписано здесь. Rest же создаёт обычный массив без лишних привязок и должен легко оптимизироваться движками.
IonDen
18.06.2015 13:46-1Верю что Хром и ФФ к началу следующего года подойдут вплотную к полной совместимости. Но как же быть с Edge? Что-то у меня мало веры в то в Windows 10 Edge будет обновляться так же быстро и незаметно как Хром.
some_x
18.06.2015 14:00Почему нет? Ведь обещано что сам windows будет регклярно обновляться и новые полноценные релизы windows мы теперь не увидим очень долго.
IonDen
18.06.2015 14:03Про винду всё понятно, но будет ли браузер при этом обновляться чаще винды?
some_x
18.06.2015 14:09Думаю что можно ожидать что он будет обновляться как минимум со скоростью самой винды.
rock
18.06.2015 14:12Обещают, что он будет автоматически получать обновления, в том числе и с добавлением новых фич. Здесь скорее проблема в старых виндах и IE, которые ещё много лет будут портить жизнь, и в корявой реализации фич «для галочки», что будут мешать не меньше, чем
Object.defineProperty
из IE8.
iDennis
18.06.2015 15:26Как плавно перейти на es6?
monolithed Автор
18.06.2015 17:46Зависит от архитектуры вашего проекта и возможностей, которые требуются.
some_x
Наконец то!
Осталось дождаться когда появятся браузеры полностью реализующие новый стандарт. Когда это произойдёт перед web-разработчиками наверное встанет новая задача: браузерам поддерживающим es2015 отдавать es2015 исходники, а другим версию скомпилированную в es5. Так как наверняка es2015 версия будет эффективнее чем скомпилированная.
second_pilot
уже есть инструменты, которые траслитерируют на лету только несовместимое
some_x
Вы не могли бы подсказать как они называются? Что-то не могу найти…
second_pilot
github.com/systemjs/systemjs
some_x
Судя по писанию этот инструмент просто может загружать es2015 модули вызывая traceur или babel для них. traceur или babel способны при компиляции оставлять те es2015 конструкции которые уже поддерживаются?