Вебня
4.65K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
На прошлой неделе я был в гостях у подкаста Фронтенд Юность. Поговорили о #TC39, JavaScript и о пиве. Кажется немного прогнал там местами (ещё сам не слушал), но в целом, надеюсь, должно быть интересно.

https://twitter.com/frontend_u/status/1315392088243154945
Только что закончилась встреча #WebAssembly Community Group. Из главного:
- у пропозала Relaxed Dead Code Validation, который попал на phase 1 на прошлой встрече, начальное описание, автор представил доклад и собирается представлять его к продвижениею на phase 2 на следующей встрече 27го октября.
- был предложен способ определения поддержки фич в SIMD (слайды)
Бонус: доклад о том, как можно автоматически разбить C++ код на модули для уменьшения времени старта #WebAssembly приложения для веба.

https://soil-initiative.org/seminar/#20201012
И ещё немного про #WebAssembly от Cloudflare. Интересные статьи:
- Exploring WebAssembly AI Services on Cloudflare Workers
- Let's build a Cloudflare Worker with WebAssembly and Haskell
Declarative Shadow DOM — способ задать Shadow DOM прямо в HTML, что должно решить проблему веб компонент с серверным рендерингом. Протестировать эту фичу можно в Chrome 85, включив флаг Experimental Web Platform Features. Поддержка по умолчанию будет включена в Chrome 88, который выйдет в начале 2021 года.

Статья: https://web.dev/declarative-shadow-dom/
Explainer: https://github.com/mfreed7/declarative-shadow-dom/blob/master/README.md

Некоторые сотрудники Mozilla выражают свою обеспокоенность тем, как Google пушит эту фичу.

Разработчики WebKit свою позицию не озвучили.
Если в коде остаются ссылки на окно (или вкладку или iframe) браузера, то после его закрытия возникает утечка памяти. Хотя окно фактически закрыто, браузер не может очистить память до тех пор, пока код ссылается на него. Деврелы Google написали статью том, как отследить такую проблему и о способах её решения.

https://web.dev/detached-window-memory-leaks/
В конце сентября W3C опубликовал новую версию дорожной карты веб приложений на мобильных устройствах (Roadmap of Web Applications on Mobile). Роадмап включает список спецификаций по группам, а также информацию о поддержке этих спецификаций браузерами.

Сам родмап: https://www.w3.org/2020/09/web-roadmaps/mobile/
Анонс: https://www.w3.org/blog/news/archives/8686
JavaScript будет наиболее производительным тогда, когда он наиболее предсказуем. А предсказуем он тогда, когда состояние инлайн кэша мономорфно, то есть структура объектов не изменяется с течением времени (в объекты не добавляются и из них не удаляются поля в течение жизненного цикла объекта). Новый инструмент Indicium — это системный анализатор, который позволяет отследить когда состояние инлайн кэша становится полиморфным (когда создаются несколько map’ов aka hidden class’ов для одного объекта).

https://v8.dev/blog/system-analyzer
Вышел npm v7.0.0. Эта версия будет включена по умолчанию в Node.js 15 (которая, к слову, выйдет уже через неделю). Новая версия теперь поддерживает воркспейсы, сильно увеличена скорость npm install, устанавливать пакеты теперь можно из GitHub PR, а также добавились ещё какие-то фичи, которые разработчики предлагают поискать в ченжлогах, начиная с первой беты 😡. Если Вы знаете что ещё там изменилось или добавилось, то пишите в комментарии.

https://blog.npmjs.org/post/631877012766785536/release-v700
Компания Mozilla запустила дерзкую компанию Unfck the Internet. Призывают бороться с политической рекламой установкой Firefox, посмотерть The Social Dilemma на Netflix, установить расширения Facebook Container (чтобы избавиться от фейсбуковой слежки в интернете) и Flag bad YouTube recommendations (чтобы отучить YouTube предлагать ненужное), а также использовать независимые технологии.

Анонс компании: https://blog.mozilla.org/blog/2020/09/30/the-internet-needs-our-love/
Страница компании: https://www.mozilla.org/en-US/firefox/unfck/
Видос: https://www.youtube.com/watch?v=jeu0oKBThMg

Mozilla, ты пьяна, иди домой.
Chrome Dev Summit 2020 пройдёт онлайн 9-10 декабря.
Запросить инвайт можно тут:
https://developer.chrome.com/devsummit/
17 ноября выйдет Chrome 87. В DevTools появятся полезные штуки:
- инструменты отладки CSS Grid
- новый таб для отладки WebAuthn
- расположение двух отдельных инструментов сверху и снизу
- обновления панели Elements
- Lighthouse 6.4
- добавлены события performance.mark() на временной шкале панели Performance
- новые фильтры в панели Network
- обновление деталей о фрейме во вкладке Application

https://developers.google.com/web/updates/2020/10/devtools
A New Backend for Cranelift, Part 1: Instruction Selection — статья от Chris Fallin из Mozilla.
В ней он рассказывает о том, что такое Cranlift, фреймворк для написания компиляторов в #WebAssembly (и не только). VCode — это новое IR (промежуточное представление), которое является платформозависимым и позволяет генерировать более оптимальный результирующий код.

https://cfallin.org/blog/2020/09/18/cranelift-isel-1/
У пропозала .item() (stage 3) проблема с веб-совместимостью. Видимо придётся менять название.

https://github.com/tc39/proposal-item-method/issues/34

Проблема была обнаружена в Firefox Nightly, где сразу после этого фича была откачена. Также она была убрана и в JavaScriptCore.
Вводная статья о том как использовать Rust в вебе (через #WebAssembly) и сравнение с JavaScript.

https://www.jakobmeier.ch/blogging/Rust_on_the_Web.html
В Chrome появился origin trial WebCodecs. Веб кодеки будут включать декодеры и энкодеры видео, аудио, изображений и получение кадров. Черновик возможного будущего стандарта разрабатывается совместно Google и Mozilla в рамках WICG.

https://web.dev/webcodecs/
В Safari 14 (и WebKit) появилась поддержка Face ID и Touch ID через WebAuthn. Подробнее об этом в блоге WebKit.

https://webkit.org/blog/11312/meet-face-id-and-touch-id-for-the-web/
Ada Rose Cannon из команды браузера Samsung Internet рассказывает о своём опыте использования Web Audio для VR сцены.

https://medium.com/samsung-internet-dev/audio-on-the-web-for-games-and-vr-efcd523a3d58

Для пространственного звучания используется Resonance Audio SDK для веб.
W3C WebFonts Worknig Group опубликовала документ Progressive Font Enrichment: Evaluation Report, который представляет собой работу по исследованию различных техник для прогрессивного улучшения шрифтов для более быстрого их отображения в медленных сетях, при больших размеров шрифтов или сложных условий выборки подмножества шрифтов. Комментарии к документу принимаются до 15 декабря.