Вебня
4.67K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Авторы State of CSS опубликовали The State of CSS 2020 Trend Report

В отчёте отражены три основных тренда в CSS: CSS фреймворки, CSS-in-JS фреймворки и новые фичи в самом CSS.

Полные результаты State of CSS: https://2020.stateofcss.com/en-US/
Source Map Visualization

Новый инструмент для отладки Source Map от Evan Wallace (автор esbuild). Его отличительная черта, что спроектирован быть высокопроизводительным, так что отладка огромных карт кода становится возможной. Работает действительно быстро.
Ценителям стоит заглянуть в репозиторий, потому что вся имплементация это по одному файлу на HTML, JavaScript и CSS. Проект не использует зависимостей, то есть каких либо фреймворков или сборщиков, что нетипично для современного фронтенда. При этом весь JS это ~1200 sloc или 48kb. Ключевая часть интерфейса (две скролируемые области с текстом и связи между фрагментами) реализована на canvas.
Движок ChakraCore окончательно передан коммьюнити

JavaScript движок ChakraCore, который ранее использовался в браузере Edge Legacy (Edge до миграции на Chromium), окончательно передан коммьюнити. Microsoft будет предоставлять обновления безопасности для ветки 1.11 до 9 марта 2021.

Репозиторий движка теперь находится тут: https://github.com/chakra-core/ChakraCore

Проект нуждается в контрибьюторах. Исходный код движка очень хорошо структурирован и отлично подходит для изучения работы виртуальных машин. А добавление какой-нибудь фичи идеально подойдёт в качестве дипломного проекта 😉
Присоединиться к разработке можно через issues на GitHub или чат в Discord.
Состоялся релиз Wasmer 1.0

Wasmer — это рантайм для исполнения #WebAssembly на сервере. В версии 1.0 значительно увеличена скорость компиляции, а также появилось несколько новых фич.

https://medium.com/wasmer/wasmer-1-0-3f86ca18c043
Вышел Safari Technology Preview 118

Список изменений в этот раз снова не содержит некоторые из них, но может дать примерную общую картину. На самом деле там как минимум ещё очень много изменений в JavaScriptCore, включая улучшенную совместимость ECMAScript, частичную поддержку #WebAssembly Bulk Memory Operations и Reference Types.

https://webkit.org/blog/11439/release-notes-for-safari-technology-preview-118/
Кодовая база WebKit теперь хранится на GitHub

Ранее на GitHub уже было зеркало git-репозитория WebKit, но теперь это полноценный репозиторий. Ишью и пулл реквесты пока что не получится использовать, но в течение нескольких месяцев они также станут доступны. Пока что для заведения багов всё ещё используется Bugzilla. WebKit стал первым из самых распространённых браузеров, чьи исходники полностью и официально размещены на GitHub.

https://github.com/WebKit/WebKit
Fastly включили поддержку QUIC и HTTP/3

В данный момент их поддержка работает в Chrome, Safari 14 на Big Sur, а также находится за флагом в Firefox.

https://www.fastly.com/blog/debugging-quic-with-h2o-and-qlog
Front-End Performance Checklist 2021

Smashing Magazine выпустили очень большой и подробный гайд о том, как увеличить производительность сайта. Он охватывает всевозможные метрики, сборщики, оптимизацию ассетов, CDN, HTTP/2 и HTTP/3, и много всего другого.

https://www.smashingmagazine.com/2021/01/front-end-performance-2021-free-pdf-checklist/
В Firefox Nightly появилась частичная поддержка Chrome DevTools Protocol

Благодаря частичной поддержке CDP, теперь можно использовать средства автоматизации Puppeteer и Selenium 4 для управления Firefox, а также удалённую отладку.

https://hacks.mozilla.org/2021/01/improving-cross-browser-testing-part-2-new-automation-features-in-firefox-nightly/
Вышел TypeScript 4.2 Beta

Из нового:
- Остаточные элементы теперь могут находиться в любом месте кортежей, а не только в середине
- Сохранение псевдонимов типов в случаях, когда они раньше раскладывались на базовые
- Шаблонные выражения теперь имеют шаблонные литеральные типы
- Более строгие проверки для оператора in
- новый флаг компилятора --noPropertyAccessFromIndexSignature
- модификатор abstract для сигнатур конструкторов
- флаг компилятора --explainFiles
- улучшения взаимодействия опциональных свойств и строковых сигнатур ключа объекта

Также представлены несколько ломающих изменений, которые могут затронуть некоторых пользователей.

https://devblogs.microsoft.com/typescript/announcing-typescript-4-2-beta/
В V8 появился дополнительный движок для обработки некоторых сложных случаев регулярных выражений

Новый движок пока что является экспериментальным и включается отдельным флагом. Он появился в дополнение к старому движку Irregexp (на который в прошлом году также перешёл Firefox).
Вышел отчёт State of JS 2020

Версия на анлийском: https://2020.stateofjs.com/en-US/

Версия на русском: https://2020.stateofjs.com/ru-RU/
Версия на украинском (переведена частично): https://2020.stateofjs.com/ua-UA/
Микрофронтенды на Blazor

Wael Kdouh из Microsoft делится советами о том, как построить микрофронтенд архитектуру, используя Blazor и #WebAssembly.

https://medium.com/@waelkdouh/microfrontends-with-blazor-webassembly-b25e4ba3f325
7 способов протестировать доступность с помощью DevTools Chromium

Christian Heilmann написал статью об инструментах DevTools в таких браузерах как Edge и Chrome, которые позволяют определить проблемы доступности на сайте.

https://christianheilmann.com/2021/01/11/seven-ways-to-test-for-accessibility-of-your-web-site-with-browser-developer-tools/
Создание игры с дополненной реальностью

Ada Rose Cannon из команды Samsung Internet о создании игры с использованием WebXR DOM Overlay API и WebXR Hit Test API.

https://medium.com/samsung-internet-dev/making-an-ar-game-with-aframe-529e03ae90cb
PWA в 2021 году

Maximiliano Firtman написал статью о том, что изменилось в мире PWA к 2021 году, совместимости, новых возможностях, убранных возможностях и о том, чего ждать в этом году.

https://firt.dev/pwa-2021/
Обновился веб-сайт Ecma International

Ассоциация Ecma International получила обновлённый веб-сайт. Казалось бы новость не очень важная, но вы просто вспомните какой сайт у них был раньше — табличная верстка, адрес и пункты меню картинками gif.
Список TC39 пропозалов, которые запрашивают продвежения на следующий стейдж

25-28 января пройдёт первое в этом году заседание #TC39, для которого уже финализирован список пропозалов, которые могут попасть на следующий стейдж (дедлайн был в пятницу 15 января). Список очень большой, поэтому вероятно, что не все предложения из него комитет успеет обсудить.

Stage 3 -> Stage 4
- Intl.DateTimeFormat.prototype.formatRange

Stage 2 -> Stage 3
- JSON modules
- Array.isTemplateObject
- Class static Initialization Blocks
- Ergonomic brand checks for private fields

Stage 1 -> Stage 2
- Intl Locale Info
- Intl DisplayNames v2
- Dynamic code brand checks
- JS Module Blocks
- do expressions

Новые пропозалы (-> Stage 1)
- Array find from last
- Extend TimeZoneName Option Proposal
- eraDisplay option for Intl.DateTimeFormat
- Intl LocaleMatcher
- async do expressions
- index from end syntax
- class brand check
- defer module import eval
Вебня
Интересный факт. Количество страниц в печатных версиях разных редакций спецификации 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)…
Количество страниц в печатных версиях разных редакций спецификации 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
ES2020 (2020) — 860
Вышел Chrome 88

В новой версии:
- Manifest v3 для расширений, который должен улучшить производительность, безопасность и приватность (не нашел нигде дату, когда v2 перестанут публиковать и начнут убирать из Chrome Web Store, если вы обладаете такой информацией — поделитесь, пожалуйста)
- поддержка CSS-свойства aspect-ratio
- точность таймеров будет уменьшена для повторяющихся вызовов
- биллинг Google Play для Trusted Web Activities доступен под origin trial на Android
- в соответствии с изменениями в стандарте HTML, target="_blank" теперь по умолчанию имеет также поведение rel="no-opener"
- Pointer Lock API
- addEventListener теперь может принимать AbortSignal

Видео о новых фичах Chrome 88.

Об изменениях DevTools можно почитать тут.
О деприкейтах и убранных фичах тут.
Изменения в поддержке SharedArrayBuffer в Chrome

Поддержка SharedArrayBuffer уже доступна в десктопной версии Chrome, но начиная с версии 91 для его работы потребуется настройка cross-origin isolation. Начиная с версии 88 для Android, поддержка также включается для страниц с cross-origin изоляцией.

https://developer.chrome.com/blog/enabling-shared-array-buffer/