Вебня
4.69K subscribers
89 photos
2 videos
3 files
2.08K links
JS VMs, спецификации, пропозалы, встречи #TC39, #WebAssembly, #W3C, браузеры, нёрдство.
Download Telegram
Итак, 4 декабря интернет всколыхнул слух о том, что Edge может заменить часть своего браузера на Chromium. Сегодня этот слух подтвердился. На самом деле это многое объясняет.

До людей, которые занимаются разработкой EdgeHTML всегда было трудно достучаться. Например, помню своё негодование о том, что Edge должен был стать (и в итоге стал) единственным из браузеров, которые не поддерживает TextEncoding/TextDecoding API (и не поддерживает до сих пор), реализовав при этом поддержку WebAssembly. Этот API необходим для работы со строками на текущем этапе развития WebAssembly. John-David Dalton (автор lodash, сотрудник Microsoft) попытался помочь найти нужных людей, но в итоге это не вышло даже у него. У EdgeHTML нет каких-либо открытых трекеров, зато есть голосование за фичи. Это также могло означать, что основная часть команды работает над чем-то еще, пока остальная часть пытается понять что прямо сейчас необходимо разработчикам.

Отдельно стоит упомянуть то, что пока все очень мутно, и в анонсах говорится только о замене какой-то части платформы (скорее всего рендерера и обвязки над ним), но не о замене движка ChakraCore. Последний при этом, в отличии от самого браузера, умеет работать на разных платформах, это касается как ОС, там и архитектур процессоров. Более того, ChakraCore имеет необходимые биндинги для совместимости с движком V8, используемом в Chromium по умолчанию. Существует версия Node-ChakraCore, а также есть поддержка DevTools протокола, используемого Chrome. Еще из забавного, — разработка ChakraCore ведется на GitHub открыто, и разработчики JS движка никогда не были в курсе какая именно версия ChakraCore попадет в следующую версию Edge. Версии Edge для Andriod и iOS используют Chromium и WebKit соответственно, поэтому по сути Microsoft уже использует Chromium в продакшне. А так как Chromium работает и на других архитектурах и операционных системах, то имеет смысл задействовать его для запуска Edge на новых платформах.

Конечно, от такого перехода есть очевидный минус — страдает diversity браузеров. Вот, например, любимый многими Spotify отказывается работать на мобильной версии браузера Firefox. В результате пользователи вынуждены использовать основанные на Chromium браузеры, что еще больше уменьшает рынок не основанных на Chromium браузеров. С другой строны, вместе с новым Edge пользователи смогут получить современные фичи, которые доступны в Chrome (Web Components и другие), а также число пользователей Edge может вырасти за счет других платформ. Вероятно в апрельском обновлении Windows мы увидим обновление все еще старого Edge, т.к. предположительно в Q1 2019 выйдет только превью новой версии. Что ж, посмотрим как это изменит интернет. В любом случае, это знаковое событие.
Прямая трансляция от Avito Online Frontend про инфраструктуру

В дискуссии участвуют:
- Роман Дворнов (Lead Engineer в Авито),
- Егор Копылов (Главный за фронтенд в Яндекс.Диске),
- Станислав Туговиков (Руководитель фронтенда в Mail.Ru),
- Андрей Марченко (Техлид в core-team в Тинькофф),
- Сергей Мелюков (Senior Engineer в Авито).
Ведущий и модератор — Константин Буркалёв (SDCast, RadioJS).

https://www.youtube.com/watch?v=JSrAZlEUOs8&feature=youtu.be
Примерно через 40 минут начнется видеовстреча WebAssembly Community Group. Одна из тем для обсуждения звучит как “The Future of ChakraCore” со ссылкой на вот эту ишью. Расскажет об этом будущем Limin Zhu, который и отвечает за ChakraCore. Так что ждите сегодня инсайдов по этой горячей теме.
Caitlin Potter из Igalia работает над реализацией пропозала Object.fromEntries в V8. На данный момент эта фича уже есть в стабильном Firefox, в Safari TP, а также реализована в ChakraCore (но еще не в Edge). Кажется она также появится уже в текущей версии Chrome Canary.
https://bugs.chromium.org/p/v8/issues/detail?id=8021#c18
Вебня
Примерно через 40 минут начнется видеовстреча WebAssembly Community Group. Одна из тем для обсуждения звучит как “The Future of ChakraCore” со ссылкой на вот эту ишью. Расскажет об этом будущем Limin Zhu, который и отвечает за ChakraCore. Так что ждите сегодня…
Видеовстреча состоялась. Limin Zhu еще раз подтвердил, что Edge переходит на V8, потому что у них нет столько ресурсов, чтобы поддерживать совместимость Chromium и ChakraCore. В то же время, по его словам, они будут заниматься поддержкой ChakraCore. В первую очередь обновлениями безопасности, но также собираются и добавлять новые фичи. Andreas Rossberg поинтересовался как Microsoft собирается распределять ресурсы между Chromium и ChakraCore, на что у Limin не было четкого ответа. Он ответил, что им еще предстоит это осознать, но у них есть много важных партнеров, которые рассчитывают на обновления ChakraCore. Таким образом, приоритет распределения задач между Chromium и ChakraCore будет зависеть от переговоров с партнерами. На вопрос о том, начали ли в Microsoft работать над какими-либо фичами для V8 (и конкретно какие планы на WebAssembly), ответ был также расплывчат: Microsoft только собираются пообщаться с представителями Google и остальных браузерных движков, чтобы осознать что именно они будут “вкладывать обратно в опенсорс“ и как быть полезными в вопросе развития web-технологий.
Завтра Opera собираются запустить свой “First major Web 3 ready browser” для Android. Там будет встроенный кошелек Ethereum и поддержка Web 3 Dapps. Ну не знаю что в этом такого знаменательного. Впрочем, может быть покажут и что-то действительно интересное. Завтра увидим. А пока можете поиграться с демо.
И снова рубрика “советую почитать”. Как всегда безвозмездно и честно. Если вы пишите на ангуляре или интересуетесь им, то вам наверняка понравится вот этот канал, у которого незаслуженно мало подписчиков https://t.me/ngFanatic
Отличный доклад про кишочки V8. Они там больше не будут использовать self-hosted JS, а будут заменять его на код, написанный на Torque — языке программирования, который написан специально для использования в V8.
https://www.youtube.com/watch?v=8W8lcfelhuU
Edge team сделали свой первый коммит в Chromium после решения о переходе на этот движок
https://twitter.com/AaronGustafson/status/1074814655221063681
Сегодня W3C выпустили несколько релизов спецификаций разной версии готовности:
- Accessible Name and Description Computation 1.1 от ARIA WG выпущена как W3C Recommendation
- The Profiles Ontology и Content Negotiation by Profile от Dataset Exchange Working Group выпущены как First Public Working Drafts
- CSS Fragmentation Module Level 4 от CSS WG выпущена как First Public Working Drafts
Новинки и улучшения V8 7.2.
- улучшена скорость парсинга JavaScript
- улучшена скорость async/await в некоторых случаях
- улучшена скорость spread elements в массивах, а также Array.from
- улучшена скорость WebAssembly
- добавлены public class fields (private instance class fields все также доступны под флагом)
- добавлен Intl.ListFormat, который позволяет правильно форматировать списки
- добавлен пропозал, который фиксит поведение JSON.stringify
- добавлен экспорт неймспейсов модуля

Подробное описание изменений в статье от команды V8
https://v8.dev/blog/v8-release-72
В Firefox Nightly появилась поддержка String.prototype.matchAll.
https://bugzilla.mozilla.org/show_bug.cgi?id=1435829
А в Safari ведется работа над поддержкой CSS Houdini Typed OM. Первые патчи уже приземлились в WebKit
https://bugs.webkit.org/show_bug.cgi?id=192671
Интересный батл.