Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Вышел Safari 15 Beta

https://developer.apple.com/documentation/safari-release-notes/safari-15-beta-release-notes

В новой версии:
- поддержка OTP
- поддержка Webauthn Passkey
- улучшенная поддержка aspect-ratio
- поддержка цветовых функций lab(), lch(), hwb() и пространств цветов в color()
- новый дизайн форм
- мета-тэг theme-color
- top-level await (ES2022)
- поддержка ES модулей в воркерах и сервис воркере
- Error.cause (stage 3)
- приватные методы классов и аксессоры (ES2022)
- поддержка TypedArray с элементами BigInt типов
- аппаратное ускорение VP9 и WebM
- Opus кодек для аудио в WebM контейнерах
- автоматический апгрейд соединения до HTTPS
- автоматическое скрытие IP от трекеров
- разные улучшения Private Click Measurement
- потоковая компиляция #WebAssembly
- #WebAssembly Bulk Memory Operations
- #WebAssembly Reference Types
- #WebAssembly Non-trapping float-to-int Conversations
- WebGL 2 включен по умолчанию
- Web Share API level 2
- поддержка Web Extensions на iOS и iPadOS
- отладка CSS Grid в Web Inspector
⚡️ W3C и WHATWG совместно собираются представить обновление спецификаций DOM от 15 июня 2020 года в статусе Candidate Recommendation 6 июля 2021 года.
Команда React поделилась планами разработки следующей мажорной версии библиотеки — "The Plan for React 18".

В React 18 будет добавлен автоматический батчинг обновлений стейта компонентов, новые API (например, startTransition) и стриминговый серверный рендерер с поддержкой React.lazy. Изменится работа с конкурентным режимом. Он будет включаться автоматически при использовании новых фич, которые требуют этот режим. Такая стратегия упростит миграцию приложений на React 18.

С этой версии команда React начинает больше работать с сообществом. Для этого была организована специальная рабочая группа из экспертов, разработчиков, авторов библиотек и образовательных программ.

Также была опубликована альфа-версия React 18. Команда React призывает авторов библиотек поэкспериментировать с ней и поделиться фидбеком.

#react

https://reactjs.org/blog/2021/06/08/the-plan-for-react-18.html
Проблемы доступности, которые можно обнаружить и исправить используя интрументы разработчика в браузере

Christian Heilmann из команды Microsoft Edge собрал материалы и записал видео о том, как улучшить доступность сайтов.

https://christianheilmann.com/2021/06/08/accessibility-issues-you-can-discover-and-fix-using-the-browser-developer-tools/
Вышел браузер Vivaldi 4.0

В нём добавлена встроенная возможность перевода, а также бета-версии почтового клиента, читалки для подписок, и календарь.

https://vivaldi.com/blog/vivaldi-4-0/
This media is not supported in your browser
VIEW IN TELEGRAM
В комментариях новостей про Web Extensions в Safari 15 многие интересовались будут ли доступны блокировщики рекламы. Я записал видео, на котором вы можете увидеть, что на данный момент там практически только они есть. Также присутствуют ссылки на два альтернативных браузера - Firefox Focus (при этом его блокировщик работает и в Safari) и DuckDuckGo (только standalone, как альтернатива Safari)
Будущее HTTP клиента в Node.js

В Node.js существует 3 встроенных модуля для HTTP запросов: HTTP, HTTPS и HTTP/2. Из названий, в общем-то, понятно для чего каждый из них предназначен. Все эти модули используют встроенный модуль Net для осуществления запросов.

Но обычно с этими модулями напрямую мы не работаем. Самый популярный пакет-обертка — это request. (он, кстати, задепрекейчен) Следующий по популярности это node-fetch, ну а догоняет его got от Синдре Сорхуса. Где-то в районе четвёртого места появляется axios.

Все эти библиотеки используют те самые встроенные модули. И это проблема, т.к. многие из них манки-патчат методы и это затрудняет добавление фич и исправление багов в ноде.

И здесь мы переходим к undici. Этот непопулярный клиент (52 000 установок в неделю против более 20 000 000 у каждого из пакетов выше) написаный Маттео Калина (со-автор fastify и член TSC Node.js) фундаментально отличается от всех остальных библиотек — он использует модуль Net в обход встроенных http и https. Так же используется WASM билд парсера llhttp. За счёт этого undici в разы быстрее, но что более интересно — в документации Node.js будет ссылка на undici. Т.е. это будет один из рекомендованных способов для работы с HTTP.

Но отвлечёмся на node-fetch и axios: их популярность более чем очевидна — зачем мне учить 2 разных API для сервера и клиента, если я могу использовать одну и ту же библиотеку и всё работает? Тем более учитывая, что в ноде начинают появляться Web API, например Crypto. А ишью с просьбой добавить fetch в ноду вот уже 3 года, но недавно началось интересное движение: один из членов репозитория ноды запостил скрин с использванием fetch из ноды со словами «now who wants to write tests for it :P». Конечно, это ничего не значит, но немного приближает нас к наличию fetch в ноде.

Так же нужно отметить, что существует undici-fetch и скорей всего он будет вмерджен в сам undici. Опять же, сейчас это не более чем размышления на тему, но, возможно, именно undici — будущее HTTP в Node.js.

Отдельно оставлю ссылки на ключевые ишью:
Future of the Node HTTP Client
Implement window.fetch into core
W3C Web Machine Learning Working Group опубликовала первый публичный черновик спецификации Web Neural Network API

Документ описывает низкоуровневый API для аппаратного ускорения нейросетей в вебе.
Можно также почитать блогпост о создании рабочей группы W3C.
⚡️Спецификация Web Audio API получила статус W3C Recommendation
Опубликованы обновления спецификаций ECMAScript 2021

https://www.ecma-international.org/news/ecma-international-approves-new-standards-4/

ECMAScript® 2021 Language Specificationhttps://262.ecma-international.org/12.0/
ECMAScript® 2021 Internationalization APIhttps://402.ecma-international.org/8.0/

Также добавлена новая спецификация ECMA-419, ECMAScript® embedded systems API, которая специфицирует использование языка для встраиваемых систем — https://www.ecma-international.org/publications-and-standards/standards/ecma-419/

Фичи, которые были добавлены в ECMAScript:
- Logical Assignment Operators
- Numeric Separators
- Promise.any & AggregateError (соавтором которых я являюсь 🎉)
- String.prototype.replaceAll
- WeakRefs & FinalizationRegistry

Фичи, которые были добавлены в ECMA-402:
- Intl.ListFormat
- DateTimeFormat dateStyle и timeStyle
- Intl.DisplayNames
- Intl.DateFormat.prototype.formatRange

Также в рамках работы над ECMA-419 опубликованы документы ECMA TR/109, Class specifications for embedded hardware components и ECMA TR/110 Recommendations and best practices for scripts on connected sensing devices
Вышел Safari Technology Preview 126

Релиз доступен для операционных систем macOS Big Sur и бета версии macOS Monterey и включает все фичи, добавленные в бета версии Safari 15.
Компания Brave начала публичное тестирование бета версии своего поисковика Brave Search

Поисковой движок доступен для выбора в Brave Browser, а также доступен по адресу search.brave.com. Разработчики позиционируют его как поисковик, который заботится о приватности и построен по принципу открытости.

https://brave.com/brave-search-beta/
Имплементация приватных свойств класса в SpiderMonkey

Mattew Gaudet опубликовал статью на Mozilla Hacks, в которой вдаётся в подробности реализации пропозала.

https://hacks.mozilla.org/2021/06/implementing-private-fields-for-javascript/
Требования к JavaScript для доступных компонент

Stephanie Eckles написала статью о случаях, когда одного CSS недостаточно для создания доступных компонент и требуется добавить немного JavaScript.

https://www.smashingmagazine.com/2021/06/css-javascript-requirements-accessible-components/
Введение в #WebAssembly для JavaScript разработчиков

https://pascalpares.appspot.ovh/webassembly-for-javascript-developers/
W3C CSS WG выпустила спецификацию CSS Fonts Module Level 5 в статусе First Public Working Draft
Forwarded from UfoStation
В конце следующего месяца будет выпуск подкаста с разработчиками из Яндекс.Браузер, если все пойдет по плану🤞

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

Может и вы хотите что-то спросить у разработчиков Яндекс.Браузера?

Напишите свой вопрос, желательно технический, и возможно он попадет в следующий выпуск ;)

ps. До выпуска подкаста сосредоточусь на заметках про рендеринг и производительность.