Facebook открыл исходный код JavaScript-движка Hermes, который был разработан для оптимизации работы React Native приложений на Android.
Hermes в отличие от V8 использует ahead-of-time компиляцию (парсинг и компиляция JS-кода в байткод происходит не на устройстве пользователя, а на этапе сборки программы). Приложения, использующие Hermes, запускаются гораздо быстрее (примерно в 2 раза быстрее в демо с Mattermost) и потребляют меньше памяти. При сборке приложений с новым движком apk-пакеты занимают меньше места. Для режима разработки предусмотрена ленивая компиляция кода на устройстве, чтобы фидбек при разработке оставался быстрым.
Движок поддерживает большую часть синтаксиса ES2015. В процессе разработки добавление
Hermes уже используется в production-приложениях Facebook. На данный момент разработчики не планируют адаптировать Hermes для работы на сервере или в web'е.
https://www.youtube.com/watch?v=zEjqDWqeDdg
#talk #reactnative #engine #announcement #facebook
Hermes в отличие от V8 использует ahead-of-time компиляцию (парсинг и компиляция JS-кода в байткод происходит не на устройстве пользователя, а на этапе сборки программы). Приложения, использующие Hermes, запускаются гораздо быстрее (примерно в 2 раза быстрее в демо с Mattermost) и потребляют меньше памяти. При сборке приложений с новым движком apk-пакеты занимают меньше места. Для режима разработки предусмотрена ленивая компиляция кода на устройстве, чтобы фидбек при разработке оставался быстрым.
Движок поддерживает большую часть синтаксиса ES2015. В процессе разработки добавление
const, let, ES-модулей, классов, вычисляемых свойств объектов. Исключены из поддержки Proxy, Reflect, with и другие редко-используемые части языка.Hermes уже используется в production-приложениях Facebook. На данный момент разработчики не планируют адаптировать Hermes для работы на сервере или в web'е.
https://www.youtube.com/watch?v=zEjqDWqeDdg
#talk #reactnative #engine #announcement #facebook
YouTube
Chain React 2019: Hermes Engine Announcement
Note: there's a problem with the audio until 2:13 into the video, after which it is fixed. We apologize for the inconvenience!
Facebook drops a huge announcement at Chain React 2019! Marc Horowitz from Facebook gave us a look at Hermes Engine, a small and…
Facebook drops a huge announcement at Chain React 2019! Marc Horowitz from Facebook gave us a look at Hermes Engine, a small and…
Эту неделю можно запомнить как неделю релизов JavaScript-движков. 9 июля Фабрис Беллар (автор QEMU, FFmpeg) представил свой новый проект — QuickJS.
QuickJS — это маленький встраиваемый JavaScript-движок, который поддерживает спецификацию ES2019. Его особенности: быстрая интерпретация, быстрое время старта, проходит 100% ECMAScript Test Suite, может компилировать исходники с JS-кодом в исполняемые файлы без зависимостей, содержит математические расширения
По результатам бенчмарка v8, QuickJS опережает другие встраиваемые движки — DukTape, XS, MuJS и JerryScript. Удивительно, что это творение рук одного человека. Очень рекомендую прочитать про него статью на хабре (https://habr.com/ru/post/119455/).
#js #engine #embedded
https://bellard.org/quickjs/
QuickJS — это маленький встраиваемый JavaScript-движок, который поддерживает спецификацию ES2019. Его особенности: быстрая интерпретация, быстрое время старта, проходит 100% ECMAScript Test Suite, может компилировать исходники с JS-кодом в исполняемые файлы без зависимостей, содержит математические расширения
BigInt, BigFloat, директивы 'use bigint'; и 'use math'; и т.п., содержит небольшую стандартную библиотеку, которая разбита на два модуля: std и os.По результатам бенчмарка v8, QuickJS опережает другие встраиваемые движки — DukTape, XS, MuJS и JerryScript. Удивительно, что это творение рук одного человека. Очень рекомендую прочитать про него статью на хабре (https://habr.com/ru/post/119455/).
#js #engine #embedded
https://bellard.org/quickjs/
Хабр
Фабрис Беллар: портрет сверхпродуктивного программиста
Как в компьютерной индустрии есть обычные ПК и суперкомпьютеры, также и среди разработчиков выделяются эдакие гиганты, обладающие сверхсилой. Как ещё можно назва...