Итоги четвёртого дня 80й встречи #TC39
С некоторым опозданием публикую результаты за прошлый четверг, — последний день первого пленарного заседания #TC39 в этом году.
Итоги первого дня тут, второго тут, а третьего — вот тут.
Пропозалы
Adopting Unicode behavior for set notation in regular expressions (слайды) — взят stage 1.
RegExp.escape — взят stage 1.
index from end syntax (слайды) — stage 1 не взят, т.к. не все удовлетворены как синтаксисом, так и спорной аналогией с аналогичным оператором в C# (он тут вышел другим). Также чемпиону было рекомендовано пообщаться с имплементарами из V8, у которых были опыты с чем-то подобным.
Array find from last (слайды) — взят stage 1. У комитета есть сомнения по поводу веб-совместимости имён, но в целом пропозал был поддержан многими.
defer module import eval (слайды) — переходит на stage 1. У пропозала есть определённые проблемы с сайд-эффектами внутри "ленивых" модулей (порядок выполнения), но в целом предложение признано интересным и стоящим дальнейших исследований. Очень хотелось бы видеть его в стандарте!
Intl LocaleMatcher — как и в случае со многими ECMA402 пропозалами, stage 1 взять без каких-либо проблем.
Другие темы
Inclusion working group updates — предложение перейти на Matrix с IRC как основного инструмента для общения TC39.
Incubation Chartering — небольшой апдейт по отдельным созвонам для некоторых пропозалов заинтересованными лицами, в целом ничего важного.
Protocols in JavaScript — доклад о кейсах, когда надо использовать протоколы в JavaScript. Предложения докладчика были основаны на опыте пропозала Temporal. Чтобы оформить это в конкретный пропозал, предложено подумать над вариантами и продолжить обсуждения внутри комитета.
С некоторым опозданием публикую результаты за прошлый четверг, — последний день первого пленарного заседания #TC39 в этом году.
Итоги первого дня тут, второго тут, а третьего — вот тут.
Пропозалы
Adopting Unicode behavior for set notation in regular expressions (слайды) — взят stage 1.
RegExp.escape — взят stage 1.
index from end syntax (слайды) — stage 1 не взят, т.к. не все удовлетворены как синтаксисом, так и спорной аналогией с аналогичным оператором в C# (он тут вышел другим). Также чемпиону было рекомендовано пообщаться с имплементарами из V8, у которых были опыты с чем-то подобным.
Array find from last (слайды) — взят stage 1. У комитета есть сомнения по поводу веб-совместимости имён, но в целом пропозал был поддержан многими.
defer module import eval (слайды) — переходит на stage 1. У пропозала есть определённые проблемы с сайд-эффектами внутри "ленивых" модулей (порядок выполнения), но в целом предложение признано интересным и стоящим дальнейших исследований. Очень хотелось бы видеть его в стандарте!
Intl LocaleMatcher — как и в случае со многими ECMA402 пропозалами, stage 1 взять без каких-либо проблем.
Другие темы
Inclusion working group updates — предложение перейти на Matrix с IRC как основного инструмента для общения TC39.
Incubation Chartering — небольшой апдейт по отдельным созвонам для некоторых пропозалов заинтересованными лицами, в целом ничего важного.
Protocols in JavaScript — доклад о кейсах, когда надо использовать протоколы в JavaScript. Предложения докладчика были основаны на опыте пропозала Temporal. Чтобы оформить это в конкретный пропозал, предложено подумать над вариантами и продолжить обсуждения внутри комитета.
GitHub
agendas/2021/01.md at main · tc39/agendas
TC39 meeting agendas. Contribute to tc39/agendas development by creating an account on GitHub.
Бета версии macOS 11.3 и iOS 14.5 поставляются с Safari 14.1
Из нового по сравнению с версией 14:
JavaScript
- поддержка WeakRefs (ES2021)
- поддержка приватных полей классов (stage 3)
- поддержка публичных и приватных статических полей классов (stage 3)
- Intl.NumberFormat Unified API (ECMA402 2020)
- Intl.DateTimeFormat.formatRangeToParts (ECMA402 2021)
- Intl.ListFormat (ECMA402 2021)
- Intl.DisplayNames (ECMA402 2021)
- DateTimeFormat dateStyle & timeStyle (ECMA402 2021)
WebAssembly
- JS BigInt to Wasm i64 integration
- Sign-extension operations (еее мой код уже в Safari 😭)
CSS
- свойство gap в Flexbox
- поддержка aspect-ratio
Web API
- Web Audio API
- атрибут SameSite для кукис
- WebGL 2.0
- MediaRecorder API
- много улучшений WebRTC
Этот список изменений составлен лично мной и, скорее всего, далеко не полный. Напишите в комментарии, если вы заметили ещё какие-нибудь фичи.
Из нового по сравнению с версией 14:
JavaScript
- поддержка WeakRefs (ES2021)
- поддержка приватных полей классов (stage 3)
- поддержка публичных и приватных статических полей классов (stage 3)
- Intl.NumberFormat Unified API (ECMA402 2020)
- Intl.DateTimeFormat.formatRangeToParts (ECMA402 2021)
- Intl.ListFormat (ECMA402 2021)
- Intl.DisplayNames (ECMA402 2021)
- DateTimeFormat dateStyle & timeStyle (ECMA402 2021)
WebAssembly
- JS BigInt to Wasm i64 integration
- Sign-extension operations (еее мой код уже в Safari 😭)
CSS
- свойство gap в Flexbox
- поддержка aspect-ratio
Web API
- Web Audio API
- атрибут SameSite для кукис
- WebGL 2.0
- MediaRecorder API
- много улучшений WebRTC
Этот список изменений составлен лично мной и, скорее всего, далеко не полный. Напишите в комментарии, если вы заметили ещё какие-нибудь фичи.
Команда AngularJS о прекращении поддержки
Поддержка AngularJS будет прекращена 31 декабря 2021 года. Мейнтейнеры предлагают варианты тем, кто всё еще использует этот фреймворк: миграция на Angular, либо остаться на AngularJS и воспользоваться расширенной поддержкой — независимая команда разработчиков будет поддерживать форк AngularJS и предоставлять заплатки безопасности, а также другие необходимые изменения.
https://blog.angular.io/finding-a-path-forward-with-angularjs-7e186fdd4429
Поддержка AngularJS будет прекращена 31 декабря 2021 года. Мейнтейнеры предлагают варианты тем, кто всё еще использует этот фреймворк: миграция на Angular, либо остаться на AngularJS и воспользоваться расширенной поддержкой — независимая команда разработчиков будет поддерживать форк AngularJS и предоставлять заплатки безопасности, а также другие необходимые изменения.
https://blog.angular.io/finding-a-path-forward-with-angularjs-7e186fdd4429
Medium
Finding a Path Forward with AngularJS
In January of 2018 we laid out our plans for the final releases of AngularJS before entering long term support. Then in July 2020 we…
Private Click Measurement — предложение Apple по стандартизации отслеживания рекламных переходов
Apple собирается влючить Private Click Measurement по умолчанию в Safari, чтобы дать разработчикам попробовать новое API, и предлагает помощь другим браузерам в имплементации, чтобы добиться стандартизации в W3C. Этот подход отслеживания рекламных переходов позволит пользователям сохранить приватность, а владельцам сайтов даст альтернативу использованию кук.
https://webkit.org/blog/11529/introducing-private-click-measurement-pcm/
Apple собирается влючить Private Click Measurement по умолчанию в Safari, чтобы дать разработчикам попробовать новое API, и предлагает помощь другим браузерам в имплементации, чтобы добиться стандартизации в W3C. Этот подход отслеживания рекламных переходов позволит пользователям сохранить приватность, а владельцам сайтов даст альтернативу использованию кук.
https://webkit.org/blog/11529/introducing-private-click-measurement-pcm/
WebKit
Introducing Private Click Measurement, PCM
This blog post covers a new feature called Private Click Measurement, or PCM, for measuring ad clicks across websites and from iOS apps to websites.
GitHub о релизе npm 7
Количество зависимостей в нём уменьшено на 54%, покрытие кода тестами увеличено на 17%, а также значительно увеличена производительность. В npm 7 используется новый формат локфайла, а также появилась поддержка
Подробнее в блоге GitHub: https://github.blog/2021-02-02-npm-7-is-now-generally-available/
Количество зависимостей в нём уменьшено на 54%, покрытие кода тестами увеличено на 17%, а также значительно увеличена производительность. В npm 7 используется новый формат локфайла, а также появилась поддержка
yarn.lock. Кроме этого, peerDependencies теперь устанавливаются по умолчанию.Подробнее в блоге GitHub: https://github.blog/2021-02-02-npm-7-is-now-generally-available/
The GitHub Blog
npm 7 is now generally available!
We’re announcing version 7 of the npm CLI is now generally available.
О публикации рекламы на этом канале (её нет) и прочие условия сотрудничества
Каждый день мне в личку пишут с вопросами об условиях публикации рекламы в Вебне. Я устал каждый раз отвечать одно и то же, поэтому решил сделать этот пост, чтобы в следующий раз просто скопировать ссылку.
Ответ коротко:
Условия очень простые: реклама на канале не публикуется (да, совсем (да, это точно (да, даже релевантная (да, я понимаю, что за деньги)))).
Ответ развёрнуто:
1) Если ну очень хочется порекламировать здесь своё событие (конференцию, митап, выставку кошек) или публикацию (интервью, подкаст), то можете пригласить меня или Романа выступить или провести какую-то другую общественно-полезную активность, и тогда, скорее всего, в виде исключения и для самопиара тут будет опубликовано приглашение обратить внимание на активность с участием авторов канала, что косвенно является рекламой вашего события, издания, подкаста и пр.
2) Также я планирую когда-нибудь все-таки запустить YouTube-канал Вебни, где рекламные интеграции возможны (можете связаться со мной, если Вам интересен этот формат).
3) Иногда я рассказываю здесь о других каналах. Это не значит, что я могу рассказать о любом канале. Рассказываю исключительно о тех, которые мне нравятся, безвозмездно, импульсивно и ВНЕЗАПНО. Это также означает, что, скорее всего, просьбы рассказать о Вашем канале тут будут расценены как давление и проигнорированы, даже если мы старые друзья.
Постскриптум:
Если Вам нравится этот канал, то Вы можете:
- просто написать спасибо в комментариях к этому посту или лично авторам канала (контакты выше и в описании канала) — это всегда приятно! ❤️
- рассказать о канале коллегам и друзьям
- поддержать его на патреоне
Кстати, большая часть денег с патреона идёт на благотворительность и на поддержание опенсорс проектов.
Спасибо, что дочитали досюда!
Каждый день мне в личку пишут с вопросами об условиях публикации рекламы в Вебне. Я устал каждый раз отвечать одно и то же, поэтому решил сделать этот пост, чтобы в следующий раз просто скопировать ссылку.
Ответ коротко:
Условия очень простые: реклама на канале не публикуется (да, совсем (да, это точно (да, даже релевантная (да, я понимаю, что за деньги)))).
Ответ развёрнуто:
1) Если ну очень хочется порекламировать здесь своё событие (конференцию, митап, выставку кошек) или публикацию (интервью, подкаст), то можете пригласить меня или Романа выступить или провести какую-то другую общественно-полезную активность, и тогда, скорее всего, в виде исключения и для самопиара тут будет опубликовано приглашение обратить внимание на активность с участием авторов канала, что косвенно является рекламой вашего события, издания, подкаста и пр.
2) Также я планирую когда-нибудь все-таки запустить YouTube-канал Вебни, где рекламные интеграции возможны (можете связаться со мной, если Вам интересен этот формат).
3) Иногда я рассказываю здесь о других каналах. Это не значит, что я могу рассказать о любом канале. Рассказываю исключительно о тех, которые мне нравятся, безвозмездно, импульсивно и ВНЕЗАПНО. Это также означает, что, скорее всего, просьбы рассказать о Вашем канале тут будут расценены как давление и проигнорированы, даже если мы старые друзья.
Постскриптум:
Если Вам нравится этот канал, то Вы можете:
- просто написать спасибо в комментариях к этому посту или лично авторам канала (контакты выше и в описании канала) — это всегда приятно! ❤️
- рассказать о канале коллегам и друзьям
- поддержать его на патреоне
Кстати, большая часть денег с патреона идёт на благотворительность и на поддержание опенсорс проектов.
Спасибо, что дочитали досюда!
❤1
Улучшение аллокации атласа текстур в WebRender
В блоге команды Mozilla Gfx появилась техническая статья о работе над улучшением аллокации текстур, плюсах и минусах разных подходов. Будет интересно тем, кто любит сильно технические подробности о борьбе за память и время исполнения и компромиссах. Результаты исследования уже частично реализованы в Firefox 85, а в Firefox 86 аллокация текстур будет улучшена ещё больше.
https://mozillagfx.wordpress.com/2021/02/04/improving-texture-atlas-allocation-in-webrender/
В блоге команды Mozilla Gfx появилась техническая статья о работе над улучшением аллокации текстур, плюсах и минусах разных подходов. Будет интересно тем, кто любит сильно технические подробности о борьбе за память и время исполнения и компромиссах. Результаты исследования уже частично реализованы в Firefox 85, а в Firefox 86 аллокация текстур будет улучшена ещё больше.
https://mozillagfx.wordpress.com/2021/02/04/improving-texture-atlas-allocation-in-webrender/
Mozilla Gfx Team Blog
Improving texture atlas allocation in WebRender
This is going to be a rather technical dive into a recent improvement that went into WebRender. Texture atlas allocation In order to submit work to the GPU efficiently, WebRender groups as many dra…
Вышла бета V8 v8.9
Новое:
- top-level await (stage 3)
- более быстрые вызовы функций с несовпадающим количеством аргументов
Релиз ожидается 2 марта вместе с Chrome 89.
Новое:
- top-level await (stage 3)
- более быстрые вызовы функций с несовпадающим количеством аргументов
Релиз ожидается 2 марта вместе с Chrome 89.
v8.dev
V8 release v8.9 · V8
V8 release v8.9 brings performance improvements to calls with argument size mismatch.
Вебня
Спецификация WebRTC 1.0 получила статус W3C Recommendation Пресс-релиз: https://www.w3.org/2021/01/pressrelease-webrtc-rec.html.en
В Mozilla тоже решили написать про WebRTC по случаю недавнего релиза спецификации (напомню, что ранее про это писали Google).
The Mozilla Blog
What WebRTC means for you
If I told you that two weeks ago IETF and W3C finally published the standards for WebRTC, your response would probably be to ask what all those acronyms were. Read ...
Новый Edge заменит Edge Legacy в апрельском обновлении Windows 10
13 апреля 2021 года выйдет обновление Windows 10, которое удалит старую версию Edge из системы и установит новый Edge в случае, если он ещё не установлен.
https://techcommunity.microsoft.com/t5/microsoft-365-blog/new-microsoft-edge-to-replace-microsoft-edge-legacy-with-april-s/ba-p/2114224
13 апреля 2021 года выйдет обновление Windows 10, которое удалит старую версию Edge из системы и установит новый Edge в случае, если он ещё не установлен.
https://techcommunity.microsoft.com/t5/microsoft-365-blog/new-microsoft-edge-to-replace-microsoft-edge-legacy-with-april-s/ba-p/2114224
Создана организация Rust Foundation для дальнейшего развития языка Rust
Язык изначально был создан в Mozilla и использовался в том числе для написания компонентов браузера Firefox (и рендер-движка Servo). Текущими членами организации стали Mozilla (анонс), AWS, Google, Huawei и Microsoft.
Язык изначально был создан в Mozilla и использовался в том числе для написания компонентов браузера Firefox (и рендер-движка Servo). Текущими членами организации стали Mozilla (анонс), AWS, Google, Huawei и Microsoft.
Обмен данными между CSS и JavaScript через custom properties
Christian Heilmann показывает как просто можно сделать необычные вещи в CSS, передавая туда параметры из JavaScript (например, координаты указателя мыши).
https://christianheilmann.com/2021/02/08/sharing-data-between-css-and-javanoscript-using-custom-properties/
Christian Heilmann показывает как просто можно сделать необычные вещи в CSS, передавая туда параметры из JavaScript (например, координаты указателя мыши).
https://christianheilmann.com/2021/02/08/sharing-data-between-css-and-javanoscript-using-custom-properties/
Вышел WebdriverIO v7
Новая версия переписана на TypeScript, получила поддержку Google Lighthouse через DevTools протокол (а также PWA quality support поверх лайтхауса), а также лишилась поддержки Node 10 (хотя конец поддержки у неё случится только 30 апреля 2021).
https://webdriver.io/blog/2021/02/09/webdriverio-v7-released/
Новая версия переписана на TypeScript, получила поддержку Google Lighthouse через DevTools протокол (а также PWA quality support поверх лайтхауса), а также лишилась поддержки Node 10 (хотя конец поддержки у неё случится только 30 апреля 2021).
https://webdriver.io/blog/2021/02/09/webdriverio-v7-released/
webdriver.io
WebdriverIO v7 Released | WebdriverIO
It's the time of the year where the WebdriverIO project is releasing a new major update. It’s almost become a tradition for us to rewrite the complete code base to further grow the project. When we announced the v5 update, we moved from a multi-repository…
⚡️Только что закончилась встреча #WebAssembly WG, на которой пропозалы Bulk Memory operations и Reference types было решено добавить в спецификацию.
GitHub
meetings/WG-02-10.md at main · WebAssembly/meetings
WebAssembly meetings (VC or in-person), agendas, and notes - meetings/WG-02-10.md at main · WebAssembly/meetings
Вышел Safari Technology Preview 120
По большей части релиз содержит багфиксы и улучшения для уже существующих фич.
https://webkit.org/blog/11548/release-notes-for-safari-technology-preview-120/
По большей части релиз содержит багфиксы и улучшения для уже существующих фич.
https://webkit.org/blog/11548/release-notes-for-safari-technology-preview-120/
WebKit
Release Notes for Safari Technology Preview 120
Safari Technology Preview Release 120 is now available for download for macOS Big Sur and macOS Catalina.
Safari 14.1 beta теперь доступен также для macOS Catalina и Mojave
Чтобы скачать, понадобится аккаунт разработчика на сайте Apple.
https://developer.apple.com/download/more/?=Safari
Чтобы скачать, понадобится аккаунт разработчика на сайте Apple.
https://developer.apple.com/download/more/?=Safari
Спецификация CSS Cascading and Inheritance Level 3 получила статус W3C Recommendation
Эта спецификация находилась в разработке аж с декабря 2005 года!
https://www.w3.org/TR/2021/REC-css-cascade-3-20210211/
Эта спецификация находилась в разработке аж с декабря 2005 года!
https://www.w3.org/TR/2021/REC-css-cascade-3-20210211/
Pointer Events Polyfill (PEP) прекращает своё развитие
Pointer Events теперь поддерживаются в большинстве браузеров, и разработчики полифилла решили прекратить его дальнейшее развитие, к тому же ещё с Pointer Events Level 2 было сложно полифиллить нативные возможности платформы.
https://openjsf.org/blog/2021/02/10/pointer-events-polyfill-pep-enters-emeritus-status-at-the-openjs-foundation/
Pointer Events теперь поддерживаются в большинстве браузеров, и разработчики полифилла решили прекратить его дальнейшее развитие, к тому же ещё с Pointer Events Level 2 было сложно полифиллить нативные возможности платформы.
https://openjsf.org/blog/2021/02/10/pointer-events-polyfill-pep-enters-emeritus-status-at-the-openjs-foundation/
OpenJS Foundation
Pointer Events Polyfill (PEP) enters emeritus status at the OpenJS Foundation - OpenJS Foundation
Pointer Events Polyfill (PEP) enters emeritus status at the OpenJS Foundation. The project, originally part of the jQuery project family, is fully deprecating after 8 years.
Webref – машиночитаемые выдержки из веб-спецификаций
В организации w3c на GitHub появился репозиторий Webref, который содержит описания CSS свойств и определений, IDL и метаданные из веб-спецификаций. Данные есть как по опубликованным спецификациям, так и по их черновикам (Editor's Drafts); из таких областей как CSS, DOM, SVG, WebGL, CSP и другие Web API. Данные извлекаются из почти 400 спецификаций, краулером Reffy, который тоже доступен на GitHub в организации w3c.
Что примечательно, обоим репозиториям более трех лет, но им удавалось оставаться в тени (меньше 50 звезд на GitHub на оба репозитория). Судя по всему, эти репозитории перенесли в w3c в районе сентября прошлого года.
Они используются в WebIDLpedia, анализе аномалий в спецификациях и в тестах веб-платформы. Вероятно этим данным скоро найдется новое применение.
В организации w3c на GitHub появился репозиторий Webref, который содержит описания CSS свойств и определений, IDL и метаданные из веб-спецификаций. Данные есть как по опубликованным спецификациям, так и по их черновикам (Editor's Drafts); из таких областей как CSS, DOM, SVG, WebGL, CSP и другие Web API. Данные извлекаются из почти 400 спецификаций, краулером Reffy, который тоже доступен на GitHub в организации w3c.
Что примечательно, обоим репозиториям более трех лет, но им удавалось оставаться в тени (меньше 50 звезд на GitHub на оба репозитория). Судя по всему, эти репозитории перенесли в w3c в районе сентября прошлого года.
Они используются в WebIDLpedia, анализе аномалий в спецификациях и в тестах веб-платформы. Вероятно этим данным скоро найдется новое применение.
GitHub
GitHub - w3c/webref: Machine-readable references of terms defined in web browser specifications
Machine-readable references of terms defined in web browser specifications - w3c/webref