Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
В блоге WebKit опубликована статья о том, как было решено бороться с последствиями Intelligent Tracking Prevention, которые позволяли обнаружить использование данной фичи, что, в свою очередь, могло быть использовано для… отслеживания. Данная особенность была замечена безопасниками Google, которые и сообщили инженерам WebKit об этой проблеме.
Вышел Scala.js 1.0.0-RC2, компилятор языка Scala в JavaScript. Если до конца января 2020 не будет выявлено критических проблем, то этот релиз кандидат станет финальным релизом 1.0.0.
Интересный факт.

Количество страниц в печатных версиях разных редакций спецификации ECMAScript:
ES1 (1997) — 110
ES2 (1998) — 117
ES3 (1999) — 188
ES5 (2009) — 252
ES5.1 (2011) — 258
ES2015 (2015) — 566
ES2016 (2016) — 586
ES2017 (2017) — 885
ES2018 (2018) — 805
ES2019 (2019) — 764
Вышла обновленная версия Release Candidate спецификации WebRTC 1.0. По сравнению с предыдущей версией, вышедшей 27 сентября 2018, были решены и уточнены многие вопросы согласования между спецификацией и реализациями. Этот релиз кандидат имеет все шансы стать W3C Recommendation в начале следующего года.
Выпущен First Public Working Draft спецификации Web Share API. Эта спецификация определяет API для обмена текстом, ссылками и другим контентом с произвольным назначением. Доступные цели обмена не указаны и предоставляются браузером пользователя. Это могут быть, например, приложения, веб-сайты, буфер обмена или контакты из списка контактов.
Как и было обещано неделю назад, сегодня вышли обновления безопасности разных версий Node.js:
- Node v8.17.0 (LTS)
- Node v10.18.0 (LTS)
- Node v12.14.0 (LTS)
- Node v13.4.0 (Current)
В TensorFlow.js 1.4.0, библиотеке для тренировки и разработки ML моделей для браузеров и Node.js, появился экспериментальный #WebAssembly бэкенд (в статусе альфа), который значительно ускоряет работу по сравнению с CPU бэкендом (на чистом JavaScript).

Подробнее в статье:
https://yashints.dev/blog/2019/12/17/tfjs-wasm

Бенчмарки:
https://github.com/tensorflow/tfjs/tree/master/tfjs-backend-wasm#benchmarks
В V8 появилась частичная поддержка stage 3 пропозала RegExp Match Indices, который добавляет возможность получить позиции начала и окончания вхождений соответствий.
Среди разработчиков иногда проскакивала шутка: "Что будет, когда V8 доберётся до версии V8?". И вот сегодня зарелизился V8 version 8.0 — V8. Лесджек Свирски рассказал про новые фичи в движке.

В новой версии было оптимизировано потребление памяти — график из статьи показывает падение на 40%. Оптимизация была достигнута за счёт компрессии tagged values (указателей на кучу V8 и small integers). Хорошим побочным эффектом оптимизации стало улучшение производительности движка на реальных сайтах. В статье мало подробностей, но обещают написать подробнее в другом посте.

Оптимизировали работу со встроенными в язык методами Function.prototype.apply, Reflect.apply и методами Array. Теперь код, в котором используются эти методы, оптимизируется с помощью Turbofan.

Теперь в движке есть полноценная поддержка Optional chaining и Nullish coalescing. Это новые фичи языка, которые помогают при обработке falsey-значений:

function Component(props) {
const enable = props?.enabled ?? true;
// …
}


#v8 #release #announcement

https://v8.dev/blog/v8-release-80
Вышел Safari Technology Preview 97. В нём оооочень много интересных изменений:
- ResizeObserver теперь включен по умолчанию
- в WebAuthn добавлены поддержка Google NFC Titan и инструкции по использованию ключей безопасности
- Web Animations CSS Integration включена подефолту, а также улучшения и исправления Web Animations API
- очень много улучшений и исправлений Web Inspector
- улучшения рендерера
- улучшено кэширование сайтов с помощью Back-Forward Cache
- улучшения и исправления SVG
- улучшения Clipboard API
- различные исправления и улучшения CSS
- Remote Playback API включено по умолчанию
- Picture-in-Picture API включено по умолчанию
- исправления различных Web API

Изменения JavaScript:
- поддержка операторов ++ и -- для BigInt
- оптимизированы промисы
- исправление Intl.DateTimeFormat
- String.prototype.replaceAll (stage 3)

#WebAssembly:
- поддержка WebAssembly.Global в JavaScript API
- интерпретатор WebAssembly

А ещё (хотя это и не указано в релизных записях) теперь Optional Chaining и Nullish Coalescing (попавшие недавно в ES2020) доступны по умолчанию без каких-либо флагов.
Разработчики Samsung Internet недавно написали статью о своём видении TWA. Алексей Родионов (@FluorescentHallucinogen), один из самых активных евангелистов PWA в России и основной поставщик новостей в @pwa_ru, поделился инсайдами после общения c PM Samsung Internet (см следующий пост).
Forwarded from Alexey Rodionov
На днях посчастливилось пообщаться лично вживую с Diego из команды Samsung Internet (https://twitter.com/alexey_rodionov/status/1203767691527503872). ☺️

Обсудили кучу всего интересного, так или иначе связанного с PWA. Сошлись в том числе на том, что TWA как технология — "костыль", который решает сейчас 2 проблемы:

1. Публикация в сторах (люди привыкли искать и устанавливать приложения там, где они привыкли, то есть из сторов). TWA позволяет упаковать PWA в APK-файл и опубликовать его, например, в Google Play.

2. Более глубоко интегрировать PWA в операционную систему Android и использовать возможности, недоступные на данный момент в Web-платформе, а доступные только нативным приложениям. Так как TWA — это APK-файл, то есть нативное Android-приложение, то оно отображается не только в виде иконки на главном экране, но и в списке приложений, оно может выступать в виде Web Share Target и т.д. Так как TWA — это по сути гибридное приложение, можно реализовать нативно, например, Background Geolocation, которого сейчас нет в Web, а всё остальное останется написано на Web-технологиях.

Но то, что делает команда Samsung Internet, делает TWA ненужным:

* Galaxy Store позволяет публиковать PWA "как есть" по URL без необходимости вообще что-то паковать.

* Samsung Internet при установке PWA автоматически генерирует APK-файл, что даёт все вышеперечисленные преимущества более глубокой интеграции в ОС. Только это не TWA, а WebAPK.

* Те фичи, которых сейчас нет в Web-платформе, а есть только у нативных приложений, команда считает правильным добавлять в Web-платформу, чтобы они были реализованы в браузере (браузер как раз и есть нативное приложение).

А TWA — это костыль, временное решение для более глубокой интеграции только в одну единственную операционную систему от Google (а есть и другие ОС) и публикации в сторе от Google (если бы Google Play позволял публиковать PWA по URL, паковать в TWA не пришлось бы).

Samsung Internet на собственном примере показывает, что можно решить эти проблемы по другому. Что PWA — это, действительно, кроссплатформенная открытая технология, а TWA — это Google-only thing.
Вышла новая статья от Акселя Раушмайера, на этот раз про top-level await (stage 3):
https://2ality.com/2019/12/top-level-await.html
Статья о том, какие устаревшие фичи в Chrome были помечены как deprecated или убраны:
https://developers.google.com/web/updates/2019/12/chrome-80-deps-rems

Среди прочего, наконец-то убрали Web Components v0, которые долго не могли убрать (изначально планировалось это сделать в Chrome 73, вышедшем в марте 2019) из-за того, что это ломало YouTube.

Бонус: короткая новость о депрекейте WebVR 1.1, который был поглощён стандартом WebXR.
Всем привет. Я запустил Patreon, на котором Вы можете поддержать мою работу над каналом @Juliarderity, стандартами и опенсорсом.

https://www.patreon.com/chicoxyzzy

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

Ещё в самом начале, осенью 2018, когда у канала было не более 400 подписчиков, некоторые читатели выражали поддержку и готовность мотивировать развитие канала и предлагали создать страницу на Patreon. Также многие просили создать чат для обсуждения новостей и технологий, о которых пишет Хулиардерити. Поддерживать такой чат было бы очень сложно, если бы он был публичным, и скорее всего там было бы очень много флуда. Я искренне надеюсь, что Patreon позволит ограничить пользователей чата лишь заинтересованными людьми и поддерживать обсуждения максимально интересными и сфокусированными. Добавление патронов в чат будет происходить волнами.

Если Вам хочется поддержать канал ещё сильнее, а также время от времени получать некоторую дополнительную инсайдерскую информацию и возможно какие-то приятные сюрпризы, то для этого есть отдельный tier Хулиардеро на Patreon.

Также я планирую начать писать статьи, но пока что мне сложно выделить на это время и мотивацию. Ваша поддержка поможет мне увидеть, что это действительно нужно и замотивирует к этому 🙂

Спасибо всем читателям канала, всем кто подходит поблагодарить и пообщаться на митапах, конференциях и на улице (да, и такое было 😄)! Спасибо всем каналам, подкастам и другим ресурсам, которые делятся публикациями из Хулиардерити и не забывают указать источник или поблагодарить!
Вы все супер! ❤️

Помните, что выражение поддержки на Patreon — дело добровольное, и Вы классные независимо от того, поддерживаете ли вы канал материально, информационно или морально!
Новое в грядущем Chrome 80 (выйдет 4 февраля 2020):
- Content Indexing API
- ES модули в веб воркерах
- Contact Picker API (под origin trial)
и другие фичи

https://blog.chromium.org/2019/12/chrome-80-content-indexing-es-modules.html
Ember 3.15 с Octane вышел. Вместе с ним выпущена статья о самом проекте Octane и том, какие улучшения он привносит.

Спасибо за подсказанную новость Александру Канунникову (@ilifeart), одному из лидеров Ember сообщества в России.
Axel Rauschmayer написал несколько новых статей о различных предложениях в ECMAScript:
- ECMAScript proposal: Promise.any()
- ECMAScript proposal: String.prototype.replaceAll
- ECMAScript proposal: RegExp match indices
- Feature watch: ECMAScript 2020