News for hackers. Stuff that matters.
Re:Hermes, a JavaScript engine optimized for React Native by cellularmitosis on Wednesday March 24, 2021 @10:58AM (#26568038)
The primary React Native performance issue on iOS is that Apple disables the JIT when using JavaScriptCore. If you run some JS in a WKWebView you should see it speed up by 5 to 10x. (WKWebView runs in a different process, so they allow the JIT)
Re:Hermes, a JavaScript engine optimized for React Native by afavour on Wednesday March 24, 2021 @12:30PM (#26569398)
Arguably the primary React Native performance issue is that JS is single-threaded. Does React Native provide any useful tools for that?
Re:Hermes, a JavaScript engine optimized for React Native by nicoburns on Wednesday March 24, 2021 @05:15PM (#26573029)
That's not the primary issue. The main issue that there isn't (or wasn't until recently) a fast, low overhead way to communicate between JavaScript and native code. That's changing with JSI, and I think we might find React Native gets a lot faster in practice if they ever complete the work.
Re:Hermes, a JavaScript engine optimized for React Native by spullara on Wednesday March 24, 2021 @02:25PM (#26571114)
You can run things in workers:

https://github.com/devfd/react-native-workers

Re:Hermes, a JavaScript engine optimized for React Native by Cthulhu_ on Wednesday March 24, 2021 @11:27AM (#26568446)
To be anal, the root cause of that is using javascript instead of building a native app.

I get that Facebook has the biggest apps on any platform and they run into platform limitations (like number of classes on Android) and build cycles so for them it makes sense to make a dynamic partial-hot-reloading-in-place app development framework, but they're still beholden to the runtime that Apple offers them.

(In theory they could compile JS to a compiled binary that Apple's reviewers are okay with, but I don't know enough about any of that)

Re:Hermes, a JavaScript engine optimized for React Native by JUNGLEISMASSIVE on Wednesday March 24, 2021 @11:39AM (#26568620)
The security implications of running JS in an interpreter and running native bytecode are very different, though. Native apps also routinely request much more permissions and gather extra user data such as contacts, just because it is possible to do so.