I am wondering about long-term plans and motivation of creating hermes.
Application startup time and apk size are very important, but compatibility across platforms is very important as well.
It took core team a while to bring up-to-date release of JSC to android using https://github.com/react-native-community/jsc-android-buildscripts in core. And both platforms are using more or less same version of webkit now.
Hermes works in a different way (bite-code generation), uses different bundle format and does not support all js features supported by JSC. I think RN on android is less stable(https://github.com/facebook/react-native/issues/21755, https://github.com/facebook/react-native/issues/24261, https://github.com/facebook/react-native/issues/15059) then IOS due to larger device and OS diversity. New engine potentially contains even more bugs sine it's very new. Also it might not properly work with existing crash report tools, code-push like things and any other tools which uses reflection/js modification in the runtime due to different format of bundle.
Considering all things above I want to ask, is it really worth to try and what are facebook long-term plans about this engine.
Thanks for your question! This is pretty fundamental for our reasons for working on Hermes.
Facebook is committed to Hermes. Most of our Android React Native apps have already switched to use Hermes, some more than a year ago, and it has provided significant value for us. We have a significant number of people running RN apps on Android. We run tests continuously and track reliability metrics across all platforms. For open source React Native, Hermes is still opt-in. We recognize that it鈥檚 a big change, and we want to work with the community to determine if and when it鈥檚 right to make Hermes the default. We welcome any issues and PRs around engine inconsistencies. For developers who strongly value compatibility, they will be able to continue using JSC on Android as long as the community keeps maintaining it.
Or for Android you can replace JavascriptCore by J2V8
https://github.com/eclipsesource/J2V8
Most helpful comment
Thanks for your question! This is pretty fundamental for our reasons for working on Hermes.
Facebook is committed to Hermes. Most of our Android React Native apps have already switched to use Hermes, some more than a year ago, and it has provided significant value for us. We have a significant number of people running RN apps on Android. We run tests continuously and track reliability metrics across all platforms. For open source React Native, Hermes is still opt-in. We recognize that it鈥檚 a big change, and we want to work with the community to determine if and when it鈥檚 right to make Hermes the default. We welcome any issues and PRs around engine inconsistencies. For developers who strongly value compatibility, they will be able to continue using JSC on Android as long as the community keeps maintaining it.