gr4vityWall 3 days ago

Although not intuitive, it's common to call that the 'runtime' in the JS world, while V8 and JSC would be called 'JS engines'.

Deno used similar wording in a tutorial for creating your own JS runtime using Rust and V8 bindings: https://deno.com/blog/roll-your-own-javascript-runtime

IMO the tutorial is still cool nonetheless, it's a fun subject.

Minor49er 3 days ago

Agreed. It contradicts the whole "from scratch" idea. The article even has an engine implementation section where it just calls JavaScriptCore as you mentioned. It's a cool wrapper, but a misleading and disappointing article

  • trollied 3 days ago

    Yup. I clicked on it, based on the title, and expected a long-form article. Not a simple library utilisation post.

curtisblaine 3 days ago

To be fair, all commercial non-browser runtimes (node, bun, deno) are "just" wrappers of V8 or JSC. Some more experimental ones are "just" wrappers of QuickJS and other less known engines.

  • throwawaymaths 3 days ago

    iiuc its a runtime because the engine just dispatches one javascript microtask and returns to the runtime with a stack of remaining microtasks

jesse__ 3 days ago

Yeah, I was expecting a lot more than "I glued some libraries together in C!", especially when the author is claiming 'from scratch'. Seems like a somewhat disingenuous title if you ask me..

  • jakogut 3 days ago

    I suppose when your accustomed level of abstraction is interpreted languages like JavaScript, and "the web", "gluing some libraries together in C" is a somewhat novel and interesting endeavor.

    • jesse__ 3 days ago

      I bit my tongue and decided to hold that jab at JavaScript programmers, but yeah, I think that's exactly what were looking at here

      • jakogut 3 days ago

        I wasn't trying to make any jabs, just an observation that getting outside of your comfort zone can be novel and interesting, even if it's mundane to people that commonly spend lots of time there.