Wednesday, August 27, 2025

JavaScript Runtimes of the Last Decade

Whatever, Jamie (via Hacker News):

This last decade has seen an inundation of new JavaScript runtimes (and engines in equal measure), enabling us to run JavaScript in all manner of contexts with precise fitness for task. Through these, we’ve seen the language spread to the Cloud, the edge, Smart TVs, mobile devices, and even microcontrollers.

In this article, we’ll explore what’s driving this diversity, and why no one runtime or engine suffices for all purposes.

[…]

The earliest polyglot engine was Rhino, which was made in 1997 as an effort to write Netscape Navigator – JavaScript engine and all – fully in Java. Rhino supports two-way interop between Java and JavaScript, based on the JVM. That is to say, it allows JavaScript to implement Java interfaces and call Java class methods, while allowing Java to define JavaScript classes, run scripts, and more. By 2006, it was included in JDK 6, and by 2008, it was the basis of the Helma runtime, nowadays known as RingoJS.

[…]

While Deno and CloudFlare Workers (which run on the workerd runtime) continue Node.js’s tradition of using V8, we see Bun employing JavaScriptCore, WinterJS using SpiderMonkey, and LLRT on QuickJS. No longer is the backend solely a stage for Node.js and V8 – it’s now fashionable to pick a runtime and engine optimised for the task.

Comments RSS · Twitter · Mastodon

Leave a Comment