Несколько часов назад был опубликован финальный релиз спецификации ECMAScript 2015 ранее известной как ES6новый стандарт языка JavaScript.
Первым об этой новости сообщил основной идеолог языка и официальный представитель комитета по стандартизации Allen Wirfs-Brock.

Официальный документ доступен в форматах HTML и PDF.

Полезные ссылки:

Поздравляю товарищи, это отличная новость, потому что таких серьезных изменений в языке не было почти 16 лет!
Что скажите?

Проголосовало 372 человека. Воздержалось 117 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Комментарии (31)


  1. some_x
    18.06.2015 05:59
    +1

    Наконец то!
    Осталось дождаться когда появятся браузеры полностью реализующие новый стандарт. Когда это произойдёт перед web-разработчиками наверное встанет новая задача: браузерам поддерживающим es2015 отдавать es2015 исходники, а другим версию скомпилированную в es5. Так как наверняка es2015 версия будет эффективнее чем скомпилированная.


    1. second_pilot
      18.06.2015 10:36
      +2

      уже есть инструменты, которые траслитерируют на лету только несовместимое


      1. some_x
        24.06.2015 09:44

        Вы не могли бы подсказать как они называются? Что-то не могу найти…


        1. second_pilot
          24.06.2015 09:51

          1. some_x
            24.06.2015 13:41

            Судя по писанию этот инструмент просто может загружать es2015 модули вызывая traceur или babel для них. traceur или babel способны при компиляции оставлять те es2015 конструкции которые уже поддерживаются?


  1. tegArt
    18.06.2015 10:46
    +3

    В соседней новости TedBeer указал ссылку на книгу одного из разработчиков, думаю, будет полезным и тут упомянуть:

    Вчера присутствовал на презентации ES6 с докладчиком Dr. Axel Rauschmayer(его блог) Он плотно учавствовал в разработке ES6. Ему задали вопрос насчет поддержки в браузерах и он сказал, что по плану все основные браузеры будут полностью поддерживать стандарт уже до конца этого года.
    На днях он закончил книжку по ES6 и она доступна бесплатно в онлайн — Exploring ES6


    1. monolithed Автор
      18.06.2015 14:09

      На самом деле это далеко не первая книга.


      1. tegArt
        18.06.2015 14:43
        +2

        Никто и не говорил, что первая…


  1. 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».

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


    1. Athari
      18.06.2015 19:21

      github.com/WebAssembly/design/blob/master/FAQ.md
      github.com/WebAssembly/design/blob/master/HighLevelGoals.md

      Это asm.js, который правильно сделан, а не революция.



  1. mrsum
    18.06.2015 11:45
    -2

    Надеюсь для любителей IE кто-то возьмется за быстрые и вменяемые полифилы. Иначе все так и останется роскошью, а не средством передвижения.


    1. rock
      18.06.2015 12:07
      +2

      Вас что-то не устраивает в существующих? :)


  1. potan
    18.06.2015 12:15
    -2

    Раз они сделали TCO, они выкинули идиотский метод arguments?


    1. some_x
      18.06.2015 12:35

      Они не ломали обратную совместимость.


    1. rock
      18.06.2015 12:43

      Свойства arguments и функций, мешающие TCO, отключены в строгом режиме ещё в ECMAScript 5. TCO работает только в строгом режиме, а он в синтаксисе модулей включен по умолчанию. Ну а по поводу arguments — хоть он и присутствует, вместо него рекомендуется использовать rest.


      1. rock
        18.06.2015 13:57

        О как, очень интересно выслушать точку зрения минусующего :)


        1. Aux
          18.06.2015 15:43

          Я знаю зачем вас минусуют, но в доках написано, что если функция использует rest параметры в заголовке, то arguments внутри не будет.


          1. rock
            18.06.2015 18:25
            +2

            Не совсем верно, по спецификации наличие rest на наличие arguments никак не влияет, пример, поведение FF здесь ошибочно, хотя, само собой, реализация не будет создавать arguments, если он не используется :)

            Дело в оптимизации кода. Объект arguments привязан к стеку вызова и аргументам функции, большинство действий с ним приводят к деоптимизации функции. В V8 сейчас оптимизируется только получение .length, получение элемента по индексу, передача в .apply, да и то далеко не во всех случаях. Передача arguments в любую функцию (даже Array.prototype.slice.call(arguments)) или изменения переменной-аргумента функции, если в ней присутствует arguments, делает её оптимизацию невозможной. Хорошо расписано здесь. Rest же создаёт обычный массив без лишних привязок и должен легко оптимизироваться движками.


            1. monolithed Автор
              19.06.2015 04:20

              + на русском от первого лица


      1. potan
        18.06.2015 13:57

        Thanks!
        Стало понятно.


  1. IonDen
    18.06.2015 13:46
    -1

    Верю что Хром и ФФ к началу следующего года подойдут вплотную к полной совместимости. Но как же быть с Edge? Что-то у меня мало веры в то в Windows 10 Edge будет обновляться так же быстро и незаметно как Хром.


    1. some_x
      18.06.2015 14:00

      Почему нет? Ведь обещано что сам windows будет регклярно обновляться и новые полноценные релизы windows мы теперь не увидим очень долго.


      1. IonDen
        18.06.2015 14:03

        Про винду всё понятно, но будет ли браузер при этом обновляться чаще винды?


        1. some_x
          18.06.2015 14:09

          Думаю что можно ожидать что он будет обновляться как минимум со скоростью самой винды.


        1. rock
          18.06.2015 14:12

          Обещают, что он будет автоматически получать обновления, в том числе и с добавлением новых фич. Здесь скорее проблема в старых виндах и IE, которые ещё много лет будут портить жизнь, и в корявой реализации фич «для галочки», что будут мешать не меньше, чем Object.defineProperty из IE8.


  1. iDennis
    18.06.2015 15:26

    Как плавно перейти на es6?


    1. bo883
      18.06.2015 17:44

      транспиллеры ваш выбор


    1. andy128k
      18.06.2015 17:46
      +3

      Объявить существующий код кодом на ES6. :)
      Он обратно совместим с предыдущей версией. Берите babel и используйте новые фичи.


    1. monolithed Автор
      18.06.2015 17:46

      Зависит от архитектуры вашего проекта и возможностей, которые требуются.


    1. forgotten
      18.06.2015 18:23

      А зачем?