Вебня
4.66K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Релиз проекта Rome, начатого автором Babel и Yarn как универсальный тулчейн для фронтенда и объединяющего в себе линтер, компилятор JavaScript, JSX, TypeScript, бандлер и многое другое, ожидается в конце этого месяца. Первая версия включает только… линтер (но охватывает также линтинг HTML и CSS).

https://twitter.com/romefrontend/status/1280894663654662144
Я уже публиковал информацию о том, что группа чемпионов пропозала Temporal (stage 2) ищет фидбек о пропозале. Это очень важно, чтобы сделать API максимально удобным для каждого. Если у Вас есть возможность, то попробуйте полифилл, ознакомьтесь с документацией (на страницах документации полифилл работает прямо из консоли) и поучаствуйте в опросе. Существует книга рецептов Temporal с примерами использования. Если у Вас есть какие-либо предложения, то откройте issue на GitHub, участвуйте в уже существующих обсуждениях или просто ставьте 👍 или 👎 когда согласны или не согласны с авторами комментариев. Есть также интересная статья о том, почему уже существующий Date не может быть исправлен и было решено сделать Temporal API.

https://blogs.igalia.com/compilers/2020/06/23/dates-and-times-in-javascript/
Закончен приём пропозалов для продвижения на следующий стейдж в повестку 77й встречи #TC39.

Среди них целых 6 пропозалов готовятся взять stage 4:
- NumericLiteralSeparator
- Intl.ListFormat
- Intl.DateTimeFormat dateStyle/timeStyle
- Promise.any и AggregateError
- WeakRefs
- Logical Assignment

Stage 3 собираются брать 5 пропозалов:
- Ergonomic brand checks for private fields
- Intl.Segmenter
- Map.prototype.emplace (бывший upsert)
- Import Conditions (бывший Import Attributes)
- WeakRefs CleanupSome (собирается отколоться от основного WeakRefs пропозала)

Будут пытаться брать stage 2:
- Symbol as WeakMap key
- .item()
- Number.range
- Slice notation
- Record and Tuple
- JSON.parse source text access

Stage 1 кандидаты:
- await operations (мой любимый новый пропозал!)
- Array.prototype.unique()
- ResizableArrayBuffer and GrowableSharedArrayBuffer
- Async Context (будет пытаться во второй раз)

Обновления по пропозалам, нормативные изменения и другие обсуждения будут приниматься до начала встречи 20 июля.

Повестка очень насыщенная. Думаю, что шансов успеть всё из этого очень мало.
Вебня pinned «Закончен приём пропозалов для продвижения на следующий стейдж в повестку 77й встречи #TC39. Среди них целых 6 пропозалов готовятся взять stage 4: - NumericLiteralSeparator - Intl.ListFormat - Intl.DateTimeFormat dateStyle/timeStyle - Promise.any и AggregateError…»
Очень крутое исследование — история промисов от Sam Saccone.

https://samsaccone.com/posts/history-of-promises.html
В PHP тоже добавляют аналог optional chaining.

https://wiki.php.net/rfc/nullsafe_operator
Разработчики Ember опубликовали свой план на 2020. Основные приоритеты — доведение Octane до идеала, улучшения системы сборки и прочего тулинга, доступность и евангелизм.

https://blog.emberjs.com/2020/07/10/2020-ember-roadmap.html
Igalia запустили новый проект Open Prioritization. Это инициатива, которая помогает обычным людям помогать в приоритезации разработки фич, что должно положительно сказаться на совместимости в вебе и покрывать потребности разработчиков и дизайнеров, а не компаний.

Статьи:
- общая вводная
- со стороны Firefox
- со стороны WebKit
- со стороны Chrome
Daniel Aleksandersen сделал сравнения размеров файлов для различных форматов изображений.

Сравнение AVIF и WebP
Сравнение WebP, FLIF и PNG
Вышел Chrome 84. Из нового:
- контекстное меню для веб приложений
- новые фичи Web Animations API
- API для индексирования контента
- Wake lock API
Новые origin trials:
- Idle Detection API
- #WebAssembly SIMD
Помимо этого:
- возобновлены изменения SameSite Cookies
- изменения UI уведомлений
- QuicTransport

Видео, в котором Pete LaPage рассказывает обо всех этих изменениях: https://www.youtube.com/watch?v=1XBUeaqjTA4
Изменения в V8 8.4: https://v8.dev/blog/v8-release-84
Вышел Apollo Client 3.0 — новая версия клиентской библиотеки для работы с GraphQL. Из интересного стоит выделить новые API для работы с кэшем, включая сборщик мусора, наподобии того, что используется в Relay от Facebook (кстати, недавно обновился и он тоже), и хелперы для пагинации, а также улучшенные управление внутренним состоянием, реактивность. Кажется, этим релизом Apollo Client практически достиг паритета по фичам с Relay.
Появилась возможность скачать Safari 14 beta 1 для macOS Catalina или Mojave. Для этого нужно иметь аккаунт разработчика на сайте Apple.

https://developer.apple.com/download/more/?=Safari
Сегодня в 7 вечера по Москве пройдёт #WebAssembly Moscow meetup #3. В этот раз он пройдёт в онлайн.

Доклады:
WebAssembly Flexible Vectors Operations - развитие концепции кросс-платформ SIMD - Пётр Пензин (Intel)
Мифы и реальность портирования C/C++ приложений - Николай Ходов
Варианты использования С/С++ кода в JS-приложении - Евгений Карпов, Игорь Карпинский (Лаборатория Касперского)

Ссылка на трансляцию: https://www.youtube.com/watch?v=acDBVR8KalU
На 77 встречу #TC39, которая начнётся уже в понедельник, добавлена тема про обновление статуса декораторов. Выявлены ограничения, не позволяющие удовлетворить все требования, выдвигаемые к декоратором, поэтому чемпионы пропозала и рабочая группа по декораторам находятся в поиске наиболее удачного компромиссного решения.

Слайды: https://slides.com/pzuraq/decorators-3cb407
Документ с ограничениями и предложенными стратегиями развития: https://docs.google.com/document/d/1DSuLlEbAjBImDutX_rhjnA6821EUyj9rANzDVJS3QV0
Спецификации JSON-LD 1.1 опубликованы в статусе W3C рекомендаций. JSON-LD — это основанный на JSON формат для сериализации связанных данных.

Спецификации:
- JSON-LD 1.1
- JSON-LD 1.1 Processing Algorithms and API
- JSON-LD 1.1 Framing
Вышел Safari Technology Preview 110. Внутри очередная пачка улучшений и исправлений WebRTC, WebAuthn, Web Animations, Media, CSS, рендеринга, доступности, JavaScript, Storage API, безопасности, Web Inspector и нескольких Web API. В целом ничего прям такого интересного, хотя изменений очень много.
Вышел Edge 84. Изменения такие же, как и у Chrome 84, за редкими специфическими исключениями.

https://docs.microsoft.com/en-us/DeployEdge/microsoft-edge-relnote-stable-channel#version-84052240-july-16
Интереснейший пейпер по безопасности #WebAssembly!

Everything Old is New Again: Binary Security of WebAssembly

Бонус: комментарии от Alon Zakai
Noam Rosenthal и Gilles Dubuc из Wikimedia Performance Team рассказывают о том, как они добавили поддержку Paint Timing API в WebKit.

https://techblog.wikimedia.org/2020/06/24/how-we-contributed-paint-timing-api-to-webkit/
Отличная подборка от Ивана.