Вебня – Telegram
Вебня
4.68K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
В IDE от JetBrains наконец-то собираются добавить воркспейсы! А также ускорить индексацию, вынести разные блокирующие запись части из основного UI потока, добавить коллаборативное редактирование и облачное выполнение.

https://blog.jetbrains.com/idea/2019/12/intellij-platform-roadmap-for-2020/
Статья от Surma о том, что такое streams и observables и о том, почему это не одно и то же.

https://dassur.ma/things/streams-for-reactive-programming/
На этой неделе вышла новая версия Google Closure Compiler (v20200112). Среди прочих нововведений числятся поддержка вычисляемых имен геттеров и сеттеров в классах (эта фича ES2015 ранее не поддерживалась компилятором) и поддержка компиляции для браузеров, вышедших в 2020. Полный список изменений тут:
https://github.com/google/closure-compiler/wiki/Releases#january-12-2020-v20200112
В репозитории MSEdge есть ишью, которая называется “Make EdgeHTML open source”. Сама по себе она особой ценности не несёт, зато там появились интересные сообщенияя о том, почему EdgeHTML вряд ли когда-то станет свободным ПО. Я расскажу вам немного более полную историю. 🙂

Код рендер движка из Edge legacy основан на кодовой базе движка Trident, который использовался в Internet Explorer. Trident в свою очередь основан на исходниках Mosaic, которые компания Microsoft приобрела у компании Spyglass Inc., созданной Университетом Иллиноиса для того, чтобы релецензировать код другим вендорам и зарабатывать деньги с продаж. Microsoft выкупила лицензию на использование кода Mosaic в 1995 году за 2 миллиона долларов, и Spyglass рассчитывали заработать ещё больше за ежеквартальные платежи и проценты с продаж браузера Internet Explorer, но их планам не суждено было сбыться. Microsoft решили сделать браузер бесплатным, чтобы бороться за рынок с Netscape. Впоследствии Microsoft заплатит Spyglass ещё 8 миллионов роялти за период до конца 1998 (в сумме Microsoft выплатит Spyglass 13.1 миллиона долларов) и добьётся прекращения юридического конфлекта с ними. Внутренний аудит кода Internet Explorer 7 позже покажет, что в нём не осталось кода Mosaic. На данный момент трудно сказать, сможет ли Microsoft при необходимости доказать в суде, что в EdgeHTML не используется код Mosaic, а значит возможно это в том числе является препятствием для перелицензирования своего рендер движка. В любом случае, наверняка есть и другие проблемы, не позволяющие сделать EdgeHTML свободным ПО.
Экспериментальная поддержка WeakRefs (stage 3) добавлена в Firefox Nightly 74. Включить можно в about:config флагом javanoscript.options.experimental.weakref.

https://bugzilla.mozilla.org/show_bug.cgi?id=1593698
В блоге браузера Brave вышла статья Brave 1.0 Performance: Methodology and Results со сравнением производительности Brave, Chrome, Firefox и Opera на платформах Windows, MacOS и Android. Сравниваются такие метрики как скорость загрузки страницы, потребление памяти, потребления энергии, утилизация процессора, пропускная способность (bandwidth). Также прилагаются результаты синтетических тестов Kraken 1.1, Speedometer 2.0, JetStream 2 и BaseMark Web 3.
Вышел Jest 25. Эта версия примечательна началом работы над поддержкой ESM модулей для Node 13. Из других нововведений можно выделить экспериментальную поддержку инструментария для проверки покрытия тестами из V8. Полный спосок изменений можно найти на официальном сайте:
https://jestjs.io/blog/2020/01/21/jest-25
Выпуск подкаста Андрея Смирнова Frontend Weekend с соведущим этого канала Романом Дворновым.
https://soundcloud.com/frontend-weekend/fw-102

00:35 Чем можешь быть известен моей аудитории?
01:16 Как изменилось видение баланса между руководством и разработкой?
03:47 Каково было не работать полгода после ухода из Avito?
07:21 Что успел сделать необычного за время отдыха?
09:18 Насколько Wrike смог предложить то, что тебе нужно сейчас?
11:28 Раскрытие «секрета» про переезд Ромы в Прагу
14:34 Будешь ли переводить Wrike на basis.js и как собиралась твоя команда?
18:26 Когда собираешься отказаться от роли «играющего тренера»?
21:54 Как понимаешь свою миссию как веб-исследователя?
23:33 Как и зачем появился discovery.js?
26:55 Угас ли интерес к open source и появился ли у него успех?
30:53 Договорился ли с работодателем и научился ли продвигать свои проекты?
37:01 Почему называешь себя «изобретателем велосипедов» и понимаешь ли проблемы такого подхода?
42:45 Если бы можно вернуться в прошлое и исправить ровно один проект, какой бы выбрал?
46:07 Как и зачем пришел помогать Серёже Рубанову с Juliarderity?
47:56 Почему стоит переехать в Прагу?
48:50 Какие soft skills помогли стать тимлидом?
50:48 Готовим вместе с фронтенд-разработчиком
52:33 Совет от Ромы
Вышел Safari Technology Preview 99.
Основные изменения:
- убрана поддержка Adobe Flash
- улучшения веб инспектора
- исправления и улучшения поддержки HTML и DOM спецификаций
- улучшения CSS
- улучшения поддержки медиа и различных Web API
Составлен список вопросов на обсуждение для февральской встречи WebAssembly Community Group.

День 1:
- переход Exception Handling на phase 2 🚀
- Stack switching / Coroutines / Effect handlers
- переход Bulk Memory Operations на phase 4 🚀
- переход Reference Types на phase 4 🚀
- переход Tail calls на phase 4 🚀
- Garbage Collection
- Debugging Topics
День 2:
- Feature Detection
- Fixed-Width SIMD
- Custom Annotation Syntax in the Text Format
- Interface Types
- WASI :
- WASI Embedding API, Interface Types и WASI
- CT-Wasm
- Multiple Memories
- Type Reflection for WebAssembly JavaScript API
- Typed Function References
Среди репозиториев Microsoft на GitHub появился интересный проект Playwright — библиотека Node.js для автоматизации браузеров Chrome, Firefox и WebKit. За проектом стоят те же люди, которые создавали Puppeteer.

https://twitter.com/aslushnikov/status/1220045633282662401
Вышел Yarn 2. Изменений там много и некоторые из них весьма смелые. Интересно, что основной мейнтейнер Yarn ушёл из Facebook, и сам Facebook не планирует обновляться до второй версии. Себастьян МакКензи, оригинальный автор Yarn вообще считает, что Yarn 2 не должен называться Yarn. Babel тем временем (оригинальным автором которого также является Себастьян) планирует скоро перейти на новую версию.
Кажется пользователи Flow не смогут использовать Yarn 2 в своих проектах.
https://twitter.com/NicoloRibaudo/status/1221166724579581952

Update: Николо поправил меня, что на самом деле Yarn 2 и Flow можно использовать вместе, для этого надо включить генерацию node_modules.
Mozilla проводит ревью дополнений для Firefox. За последние 2 недели были забанены 197, из которых 129 разработы компанией 2Ring и скачивали и выполняли удаленный код в браузере пользователя. Часть дополнений собирала пользовательские данные, еще часть являлась malware.
Вообще это очень скромные цифры. И в магазине расширений Google всё тоже очень плохо, если не ещё хуже.
В блоге WebKit опубликована статья о ResizeObserver, который был включен по умолчанию в Safari Technology Preview 97 (а также Epiphany Technology Preview 97).
Отличная статья о том, что Internet Explorer сделал для веба и как повлиял на сегодняшние стандарты. Крайне рекомендую.

https://schepp.dev/posts/today-the-trident-era-ends/
Дедлайн для добавления фич для продвижения на следующий stage на ближайшей встрече #TC39 прошёл. Вот полный список таких предложений:
- Unified NumberFormat for Stage 4
- Intl.segmenter for Stage 3 (slides, spec text)
- Object iteration for Stage 2 (slides, draft spec text)
- Logical Assignment for Stage 2
- JSON.parse source text access for Stage 2 (slides)
- SES for Stage 2
- Strict builtin functions for Stage 1
- Legacy reflection features for functions in JavaScript for Stage 1
- Syntax for Explicitly this argument for Stage 1
- function thisArgumentExpected property for Stage 1
- Time Duration Format Proposal for Stage 1
- ArrayBuffer view stride argument for Stage 1
- ArrayBuffer.fillRandom for Stage 1
- RegExp Atomic Groups and Possessive Quantifiers for Stage 1
- Extensions for Stage 1 (ссылки пока не предоставлены автором)
А также те, которые не успели обсудить на декабрьской встрече:
- Async initialization for stage 1
- Preserve Host Virtualizability for Stage 1
- BigDecimal for Stage 1 (slides)

Полный и актуальный список всех тем можно найти тут: https://github.com/tc39/agendas/blob/master/2020/02.md