JavaScript State of the Union: October 2024


Tip

This blog post was shown as a talk at MelbJS on 9 October 2024. Join the MelbJS chat on Discord to find details of other upcoming JavaScript talks in Melbourne.

📰 Latest headlines

Oracle, it’s time to free JavaScript

An open letter calling on Oracle and the USPTO to end the JavaScript trademark.

ECMAScript Type Annotations

This proposal aims to enable developers to add type annotations to their JavaScript code, allowing those annotations to be checked by a type checker that is external to JavaScript. At runtime, a JavaScript engine ignores them, treating the types as comments.

scheduler.yield()

Use scheduler.yield() in async functions to yield back to the event loop.

Feature checking

// Check for support before using.
if (globalThis.scheduler?.yield) {
  console.log("scheduler.yield: Supported");
} else {
  console.error("scheduler.yield: NOT Supported");
}

Usage

button.addEventListener("click", async () => {
  // Provide immediate feedback so the user knows their
  // click was received.
  showSpinner();
  await scheduler.yield();
  // Do longer processing
  doSlowContentSwap();
});

Deno

JS runtime built with V8, Rust, and Tokio.

  • Two major changes to global variables — window is gone and Node’s process is now available.
  • Denoflare by Cloudflare to deploy Deno isolates to Cloudflare Workers.
  • Full NPM support.

Bun

  • Bun v1.1.30 released October 8th
  • Experimental CSS Parsing & bundling
  • Currently there are 275 open issues labeled with “Compatibility with Node.js APIs”.

🕰️ Older news

September 2024

August 2024

June 2024

April 2024

  • React 19 release candidate
    • “Actions” - async transitions with optional optimistic updates.
    • ReactDOM <form> Actions - pass functions to handle form submission.
    • Server Components - run once at build time (eg: during CI).
    • Support for Document Metadata - eg: render <title> to document from a component, also <link rel="stylesheet">.

🎁 Shiny new things

Eleventy / 11ty 3.0 – static site generator.

Tabulator 6.3 – Popular interactive table / data grid control.

Jiti 2.0 – Runtime TypeScript and ESM support for Node.js.

pnpm 9.12 – The alternative, efficient package manager.

💸 Follow the money

VoidZero Toolchain

US$4.6M from Accel to VoidZero, founded by Evan You (the creator of Vue.js and Vite). Dedicated to building an open-source, high-performance, and unified development toolchain for the JavaScript ecosystem.

Web Awesome

US$740K via Kickstarter to Web Awesome by Font Awesome- new name for Shoelace, a free and open source web components library.

Thanks!

Questions?

Reminder: I’m available for hire! tyson@clugg.net