JS Runtime Royale
#667 — December 14, 2023
✍️ Christmas is almost here, so we’re preparing our annual roundup issue for next week, before we take some time off! Keep an eye out for that next Thursday 🙂
__
Your editor, Peter Cooper
JavaScript Weekly
Oxlint: A New JS Linter ’50-100x Faster’ than ESLint? — Making tools as fast as possible is a common theme in the JavaScript world, and it’s the MO for the JavaScript Oxidation Compiler toolkit. Oxlint is one of their tools that’s now GA. It’s still early days, but when Evan You says “the performance is absolutely nuts” when running against the Vue 3 codebase, we sit up and listen.
Boshen
Bun v1.0.18: The JS Runtime Preparing to Take Over the World — I might have overegged the headline, but Bun is on a serious mission to replace Node.js, at least, with their ‘one goal for 2024’ being to “flip the default backend JavaScript runtime from Node.js to Bun.” They are also placing a focus on shipping Windows support ASAP.
Jarred Sumner et al.
New TypeScript Courses: Take the Learning Path — Join Mike North (Tech Lead at Stripe) for this series of brand new TypeScript courses. You’ll get hands-on practice covering both the fundamentals and advanced features like utility types and advanced generics. Learn best practices to configure and evolve your TS codebase!
Frontend Masters sponsor
Visual Studio Code November 2023 — The latest VS Code release has some handy enhancements for JS developers, including a V8 heap snapshot visualizer, the ability to drag tabs into their own new windows (a.k.a. ‘floating editor windows’), and TypeScript 5.3.
Microsoft
Deno 1.39: The Return of WebGPU — Deno introduced WebGPU support in Deno 1.8 but it was removed for various reasons. It’s back and gives you a tidy way to work with the GPU directly from JavaScript (behind the –unstable-webgpu flag, at least). Improvements to Node.js compatibility and various Deno APIs, as well as TypeScript 5.3, are included.
The Deno Team
IN BRIEF:
🎁 GitHub Unwrapped is a fun project that renders your GitHub activity into a video (a la Spotify’s “Wrapped” roundups). The source is available. It uses the React-based Remotion to dynamically create the videos.
Safari 17.2 is a particularly jam-packed release of Apple’s browser, but on the JavaScript side it has added support for import attributes.
There’s only a day or two left to take the State of JS 2023 survey.
The latest Storybook beta has added support for React Server Components.
A handy list of JavaScript engines, runtimes, and interpreters.
RELEASES:
Million 3.0 – VDOM replacement for faster React.
Croner 8.0 – Trigger functions using cron syntax.
Rollup 4.9, Ember.js 5.5, Expo Router 3.0 beta, Remix 2.4.
📄 Articles & Tutorials
The Await Event Horizon in JavaScript — You know someone’s getting heavy when they start a JavaScript article by talking about the event horizon around black holes and how “a similar boundary exists around every JavaScript Promise.” Enjoy.
Charles Lowell
Benchmarking, Profiling, and Optimizing JS Libraries — As part of this year’s Web Performance Calendar, take a journey with Stéphane to learn about optimizing a library (globalize, in his case) by way of benchmarking and profiling.
Stéphane Goetz
[Live Today] Fix Slow Code and Improve Browser JavaScript Performance
Sentry sponsor
The New TC39 FAQs — TC39 is the committee responsible for evolving and maintaining the ECMAScript spec, the standardized form of JavaScript, and its members have started a disclaimer-riddled FAQ. You can suggest new topics by opening an issue, or learn a little from the nine questions covered so far, including Will JS ever add JSX notation? and Will WebAssembly replace JS?
Ecma TC39
You Don’t Need JavaScript for That — “Just because you know something needs JavaScript, doesn’t mean it still does. You can make better websites if you test those assumptions every now and then.”
Killian Valkhof
What Vue’s Creator Learned the Hard Way with Vue 3 — Evan You shared some of the lessons he learned from the release and reception of Vue 3 around things like including a lot of small breaking changes, to choosing deprecation over breaking changes.
Loraine Lawson (The New Stack)
▶ Deploying Node.js with Google’s Duet AI — Duet AI is Google’s AI-based assistive agent that works both in the IDE and within Google Cloud.
Google Cloud
Stop Nesting Ternaries in JavaScript
Phil Nash
🛠 Code & Tools
RE:DOM 4.0: The 2K UI Library — We first linked to this library over 6 years ago but it’s still going, so if you want something to help with creating and syncing DOM elements that’s ‘close to the metal’, it’s worth a look. v4.0 enables tree shaking and adds viewFactory.
Juha Lindstedt and contributors
TS Docs: Online Reference Docs for npm Packages — Browse reference TypeScript documentation for any package or version of a library.
Shubham Kanodia
Add Authorization, MFA, Biometrics and More to Your JavaScript App in Just Minutes — It’s about time that somebody talked some sense about OAuth and JavaScript. So we did. You’re welcome.
FusionAuth sponsor
Seroval 1.0: Stringify JS Values — A handy utility library for turning JavaScript values into strings that can handle far more complex things than JSON, say.
Alexis H. Munsayac
SpaceTime 7.5: A Lightweight Timezone Library — Use this to calculate times in other timezones. Has a Moment-like API but is immutable. No dependencies. GitHub repo.
Spencer Kelly
React Responsive Pagination: Component for Smart Pagination — A responsive pagination component which intelligently adjusts to the available width. The homepage is a live demo, or you can hit the GitHub repo.
Jon Elantha
Svelte SPA Router: A Router for Svelte 3 and 4 SPAs — Previously for Svelte 3 only, Svelte 4 support has now been added. Upgrade guide.
Alessandro (Ale) Segala
📊 vue-chartjs: A Vue.js Wrapper for Chart.js — Using Vue? Want charts? Consider this. Demos here.
Jakub
Bringing Performance, Reliability, and CI/CD to Data — Managed infrastructure for versioning, access controls, and performance. Subscribe now.
Patch sponsor
Facebook Relay 16.1 – The React GraphQL framework.
React PDF 7.6 – Display PDFs in your React apps.
Reactotron 3.0 – React Native debugging tool.
jest-image-snapshot 6.4 – Jest matcher for image comparisons.
pnpm 8.12 – Fast, efficient package manager.
ws 8.15 – Fast Node.js WebSocket library.
np 9.2 – A better npm publish.
😍 Beautiful Planets
Three.js Procedural Planets — This is gorgeous! You can have a lot of fun adjusting the parameters to change the outcome, or you can spin up and play with your own copy using the source code. If you don’t want to stress out your browser, you can see how it looks ▶️ in this video.
Daniel Greenheck