JavaScript State of the Union: October 2024
About me
👋 My name is Tyson Clugg.
I’ve used many languages in the 20+ years I’ve been working, but my favourites are Python and Typescript.
I’ve been involved in many tech meetups, including Melbourne Wireless since 2000, and PostgreSQL Down Under since 2017 - both of which I helped to form and incorporate.
I’m currently available for hire, email tyson@clugg.net or visit clugg.net/tyson if you want me on your team. 🙂
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.
- Secure by default.
- Deno v2.0.0-rc landed on 19 September, followed by v2.0.0-rc.10.
- Two major changes to global variables —
window
is gone and Node’sprocess
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
- Typescript 5.6 released.
August 2024
-
- Introduces the
--experimental-strip-types
flag for initial Typescript support.
- Introduces the
-
- The results of the 2023 State of JavaScript survey were released.
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!
- Culture Amp for the 🏢 venue and 🥤 drinks.
- SEEK for the 🍕 pizza.
- Mark Dalgleish and his army of volunteers for organising MelbJS.
Questions?
Reminder: I’m available for hire! tyson@clugg.net