Static Hermes: the Next Generation of Hermes - Tzvetan Mikov | React Native EU 2023
Vložit
- čas přidán 24. 09. 2023
- 📖 About the talk
Welcome to Static Hermes, an evolution of non-web JavaScript engines. The cornerstone feature is the optional compilation of type-annotated JavaScript into native code, offering predictable performance on par with C/C++. It supports an arbitrary mix of native and interpreted code, both typed and untyped. Optional 'unsafe' language extensions enable direct manipulation of native types and APIs, reducing the need to shift to C++ and allowing for a predominantly single-language codebase. These advancements merge native-like power with the flexibility and convenience of JavaScript. We will explore how Static Hermes may redefine our interaction with React Native and shift the paradigm of JavaScript engines.
🗣 Speaker Bio
Working on a super secret project to speed up JS, previously Hermes JavaScript Engine, previously Bloomberg L.P.
Get your tickets for React Native EU 2024:
ti.to/react-native-eu/react-n...
Check out more about React Native EU conference:
www.react-native.eu/?...
Visit the organizer's website:
www.callstack.com/?...
Follow us on Twitter to stay up to date:
/ react_native_eu - Věda a technologie
This is the talk that I was most excited to hear about! Exciting times ahead!
You're amazing, man. Please keep up this work as I can't wait to be able to use this compiler. I also ask that you develop a multithreading system similar to go, for our joy.
Would love to have static hermes be a system programming language but itself. Even if a category of code will be restricted to enable native compilation
Really enjoyed this talk, great presenter. Exciting stuff!
Damnnnn we need this quickly ❤ Full support to Static Hermes Team
awesome talk!
i was waiting of this
awesome
🎉🎉
Question:
JavaScript has the “number” type. One thing I’d like to be able to do as a developer is utilize pure integers and floating point numbers, and potentially add the ability to use things like fixed point numbers in my own code.
How do FFI calls operate when dealing with the “number” data type?
24:27
what did Microsoft do?
+1
React Native Windows and Mac
This is completely a C++ killer, if you have the performance of C++ with the Syntax of JS, we'll live in a dream world
Have you ever heard of Rust or go? I think this thing is awesome for existing typescript apps using the js ecosystem, but as far as killing c++ there's no way
Yep, or Zig even. This is really cool for React Native but for the fastest performance you need to be able to tune the types used (unsigned vs signed vs 8bit, 16bit, 32bit, etc), and also control memory alignment, etc. From what I can tell so far, this won't enable those types of optimizations which are needed for the best performance. But it does bring it kinda close which is cool. Also, I wonder how much faster this is than V8 (in Node.js, etc) and JSC (Bun, Webkit, etc). Those are already insanely fast and from a dated benchmark Hermes was really slow at just executing bytecode a while back... I wanna try comparing non-static Hermes to V8 (at the highest optimization level) and see how they both compare to static Hermes
It’s not either/or it’s both/and. The VCR didn’t kill the movie theater. Airbrushes did not kill paintbrushes. And C++ will outlive us all.
LOL you're definitely a JS only dev
@@deprilula28 rust isn't as fast as C++ and has alien syntax. Js has a more familiar syntax and simpler overall
Types is coming to JS, so...
Not really, though. Comments prefixed by a colon in certain positions of your source code which can be used by typecheckers are proposed to JS, and are a long way from becoming a reality.
Javascript devs will do anything but learn another language
Ikr, what a loser
well because Javascript bring food to the table ?
Your statement is self defeating, if this was built by JavaScript devs, it means they learnt another language. If not, your comment is meaningless.
is it just me or he sounds like zizek 😅
Why only for React Native?
because he is working for meta.
because Meta, gotta lock JS devs in. JS devs aren't smart enough to learn native development so they'll sell their souls to use it.
@@natescode I write native but I'm not that smart so? 😂
Bun killer or not?
It's not. This requires your code to be properly type annotated and the code run will behave with different semantics than normal code. i.e. possibly 99% of all existing Node.js/Bun programs will fail with this new system. Not to mention, a _lot_ of Javascript code is currently untyped or just not typed correctly but are used as dependencies, etc. For Hermes to be a Bun killer the non-static Hermes VM needs to be improved to run faster than Bun first (which I presume is currently not the case, i.e. Hermes likely runs bytecode quite a bit slower than Bun/JSC)
May be better to fix current Hermes issues before going to such native future?
both are different and teams would be different
I guess we will have to wait for more 4 to 5 years on this.
better than learning another programming language -- every JS dev