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
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.
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..
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.
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.
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
Yup. I clicked on it, based on the title, and expected a long-form article. Not a simple library utilisation post.
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.
iiuc its a runtime because the engine just dispatches one javascript microtask and returns to the runtime with a stack of remaining microtasks
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..
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.
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
1 reply →