⚠️ Внимание! Вы можете быть согласны или не согласны с автором следующей статьи, но учтите, что его выводы иногда неоднозначны, на некоторые из них члены комитета отвечали очень даже валидными контраргументами уже много раз в разных issue на GitHub. Данная статья ни в коем случае не рекомендуется в качестве неоспоримого источника правды, а только лишь как альтернативное мнение. ⚠️
Один из самых активых разработчиков из числа несогласных с предложениям о приватных полях классов собрал все свои аргументы против в статье на медиуме.
https://medium.com/@kingmph/the-new-feature-on-the-horizon-in-es-cd0015158ceb
Один из самых активых разработчиков из числа несогласных с предложениям о приватных полях классов собрал все свои аргументы против в статье на медиуме.
https://medium.com/@kingmph/the-new-feature-on-the-horizon-in-es-cd0015158ceb
Surma наконец-то влил мои пулл реквесты в IsHoudiniReadyYet.com. Теперь там все up to date.
На ближайшей встрече #TC39 будет рассмотрена альтернатива текущим предложениям о приватных полях классов — приватные символы. Это предложение является компромиссом между приватными полями и старой версией пропозала о приватных символах, которая была ранее представлена комитету Кевином Смитом из Майкрософт.
https://github.com/jridgewell/proposal-private-symbols
https://github.com/jridgewell/proposal-private-symbols
В 2019 году Dart для web собирается добавить поддержку современного JS. На данный момент dart2js позволяет компилировать только в ES5.
https://groups.google.com/a/dartlang.org/forum/#!msg/announce/x7eDinVT6fM/37GumZNtEAAJ
https://groups.google.com/a/dartlang.org/forum/#!msg/announce/x7eDinVT6fM/37GumZNtEAAJ
Еще немного про Dart. Вячеслав Егоров из Google опубликовал статью (а точнее черновик) о том, как работает виртуальная машина Dart.
https://mrale.ph/dartvm/
https://mrale.ph/dartvm/
Вышел Safari TP 73, в котором помимо прочего появилась отмена Fetch, хотя в релизных записях это не указано.
https://webkit.org/blog/8555/release-notes-for-safari-technology-preview-73/
https://webkit.org/blog/8555/release-notes-for-safari-technology-preview-73/
WebKit
Release Notes for Safari Technology Preview 73
Safari Technology Preview Release 73 is now available for download for macOS Mojave and macOS High Sierra.
Jest собирается мигрировать c Flow на TypeScript
https://github.com/facebook/jest/pull/7554#issuecomment-454358729
Кто-то всё ещё не верит, что тайпскрипт победил?
https://github.com/facebook/jest/pull/7554#issuecomment-454358729
Кто-то всё ещё не верит, что тайпскрипт победил?
GitHub
[RFC] Migrate Jest to TypeScript by SimenB · Pull Request #7554 · facebook/jest
In the lastest State of JS, the one stat that stood out to me was the number of people either using or wanting to use TypeScript (over 46.7% has used and will use it again, 33.7% wants to learn it)...
А тем временем продолжают кипеть страсти вокруг приватных свойств. Помимо альтернативного предложения о приватных символах (о котором я уже рассказывал), появилось дополнение к основным предложениям о приватных полях и приватных методах — new.initialize (на самом деле решает также и проблемы модификации цепочки прототипов). Но и это еще не всё. Появилось также предложение приватные декларации (честно говоря, по имеющейся информации я пока слабо понимаю мотивацию этого предложения).
Все эти три новых пропозала будут представлены уже менее чем через 2 недели на январской встрече #TC39.
Слайды к будущим презентациям:
- Private fields and methods refresher: Why they are based on WeakMaps
- Private Symbols for stage 1
- new.initialize for stage 1
- Private Declarations
Все эти три новых пропозала будут представлены уже менее чем через 2 недели на январской встрече #TC39.
Слайды к будущим презентациям:
- Private fields and methods refresher: Why they are based on WeakMaps
- Private Symbols for stage 1
- new.initialize for stage 1
- Private Declarations
Microsoft собираются заимплементить в Chromium расширение для системы модулей в ECMAScript — HTML модули. Изначально HTML модули были представлены Google на конференции BlinkOn в 2017 году. Это предложение решает многие проблемы, которые были у HTML imports (засорение глобального объекта, блокировка основного потока при парсинге HTML import и т.д.). Microsoft также обещают имплементацию HTML модулей в Edge. Safari и Firefox заявили о своей поддержке этой идеи на TPAC 2018.
Вебня
Январская встреча #TC39 пройдет в офисе GoDaddy с 29 по 31 января 2019. Это последний шанс для stage 3 предложений попасть в спецификацию ES2019. На данный момент в повестке указаны 3 пропозала, которые будут пытаться попасть на stage 4: - Object.fromEntries…
Теперь к ним добавился также Array.prototype.{flat,flatMap}, который тоже будет пытаться взять stage 4.
Как-то совершенно незаметно в декабре вышел браузер Samsung Internet 8.2 (при том, что на официальной странице браузера на Samsung Developers указаны версии 6.4 и 7.2 Beta). Internet 8.2 основан на Chromium 63, а значит включает такие фичи как ES-модули и WebAssembly. Кроме того, уже доступна версия 9.2 Beta, которая включает обновление до Chromium 67 (добавит поддержку Custom Elements v1, CSS Paint API, Resize Observer, BigInt, отменяемый Fetch). Эта версия Chromium вышла в мае 2018, текущая актуальная версия Chromium 71 вышла 4 декабря 2018. Chromium 72 и основанный на этой версии Chrome 72 выйдут 29 января, в один день с Firefox 65.
Новость со вчерашней встречи по WebGPU (об этой технологии я писал ранее, например, здесь). Разработчики Chromium планируют добавить поддержку WebGPU под флагом в середине этого года. Стабильный релиз планируется не раньше 2020 года. Напомню, что Safari уже имеет поддержку WebGPU под флагом. Вопрос о языке шейдеров все еще открыт. Им может стать как WHLSL (развитие HLSL из Direct3D), так и SPIR-V.
Интересная статья от Бенедикта Мойрера из команды V8 про падение производительности при использовании Object.freeze(), Object.seal() и Object.preventExtensions().
https://docs.google.com/document/d/1X6zO5F_Zojizn2dmo_ftaOWsY8NltPHUhudBbUzMxnc/preview
https://docs.google.com/document/d/1X6zO5F_Zojizn2dmo_ftaOWsY8NltPHUhudBbUzMxnc/preview
Google Docs
Fast frozen & sealed elements in V8
Fast frozen & sealed elements in V8 Attention: Shared Google-externally Authors: bmeurer@, leszeks@, verwaest@, jarin@, duongn@microsoft.com Last Updated: 2019-04-09 TL;DR This document describes the issue of Object.freeze(), Object.seal(), and Object.p…
Вышел Safari TP 74 с обновлениями Web Authentication, поддержкой WebRTC MDNS ICE, visual viewport API. В релизных записях также вспомнили по отменяемый фетч, который на самом деле был добавлен в 73 версии.
https://webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/
https://webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/
Короткая, но важная для некоторых новость — хуки влили в мастер ветку реакта.
https://github.com/facebook/react/pull/14679
https://github.com/facebook/react/pull/14679
GitHub
Enable hooks! by bvaughn · Pull Request #14679 · facebook/react
Turn hooks on everywhere in preparation for the upcoming release.
Commits are atomic to simplify the review:
7c54bff: Turn hooks on everywhere
021844a: Remove test overrides (and promote internal ...
Commits are atomic to simplify the review:
7c54bff: Turn hooks on everywhere
021844a: Remove test overrides (and promote internal ...
Динамические импорты (которые были добавлены в Firefox 66) теперь будут включены по умолчанию в ночных сборках Firefox начиная с версии 67.
https://bugzilla.mozilla.org/show_bug.cgi?id=1522491
https://bugzilla.mozilla.org/show_bug.cgi?id=1522491
Если вдруг кто-то все ещё не верит в победу тайпскрипта даже после новости о миграции jest с flow на тайпскрипт, есть ещё новости. И будут ещё.
https://github.com/yarnpkg/yarn/issues/6953
За хайлайт спасибо @denysdovhan!
https://github.com/yarnpkg/yarn/issues/6953
За хайлайт спасибо @denysdovhan!
24 января вышла операционная система macOS Mojave 10.14.4 beta 1 (сборка для разработчиков), в которой браузер Safari обновился до версии 12.1 (14607.1.22) и теперь включает все наработки из Safari Technology Preview. Со стороны JS это stage 3 предложения globalThis, Object.fromEntries, Well-formed JSON.stringify. Со стороны CSS и различных Web API — CSS Conical Gradients, IntersectionObserver, Web Animations API, Color input type, Datalist element, Web Share API, AbortController & AbortSignal.
Вышла вторая версия JavaScript фреймворка для создания data-driven приложений на React с использованием GraphQL, Relay 2.0. Странно, что об этом практически ничего не слышно, хотя релизу уже два дня. Также в релизных записях указано, что переход на новую версию контекста в React ломает серверный рендеринг. Обещают починить это в 2.0.0-rc.2 (который вообще-то вышел 6 дней назад 🤷♂️)
https://github.com/facebook/relay/releases/tag/v2.0.0
https://github.com/facebook/relay/releases/tag/v2.0.0
GitHub
Release v2.0.0 · facebook/relay
2.0.0
Commits: v1.7.0...v2.0.0
Breaking
Relay now uses new Context API instead of Legacy Context API. Any consumers of Relay context using the Legacy context API will break.
Removed experimental ...
Commits: v1.7.0...v2.0.0
Breaking
Relay now uses new Context API instead of Legacy Context API. Any consumers of Relay context using the Legacy context API will break.
Removed experimental ...
Сегодня произойдет несколько интересных событий:
- релиз Chrome 72
- релиз Firefox 65
- начнется встреча комитета TC39, которая пройдет с 29 по 31 января, и после которой произойдет feature freeze спецификации ES2019
Обо всех этих событиях я еще расскажу подробнее.
- релиз Chrome 72
- релиз Firefox 65
- начнется встреча комитета TC39, которая пройдет с 29 по 31 января, и после которой произойдет feature freeze спецификации ES2019
Обо всех этих событиях я еще расскажу подробнее.