#693 — June 20, 2024
JavaScript Weekly
The Results of the State of JavaScript 2023 Survey — It feels odd including something about 2023 in June 2024, but the results of the major annual JavaScript developer survey are now out. It’s interesting to see what features JS devs do and don’t use, changes in library popularity over time, what build tools people are using, the divide between JavaScript and TypeScript usage, and much more besides.
Devographics
How JavaScript is Finally Improving the Module Experience — Multiple long-term proposals collectively known as “module harmony” will complete the features lost as developers move away from CommonJS.
Mary Branscombe / The New Stack
Simplify Your Data Collection with a Fully Integrated Form Management Platform — SurveyJS is an open-source JavaScript library suite for secure form creation and data collection in your app. Build JSON-driven surveys/forms quickly, without manual coding. Integrate with any backend system, gather and store responses while retaining full control over your data.
SurveyJS sponsor
How React 19 (Almost) Made the Internet Slower — Even changes that are planned in advance can have big effects on the developer experience if people aren’t aware of them. A change to Suspense in React 19 led to much confusion and surprise, but the story has a happy ending with the React team ready to listen to end users more closely.
Henrique Yuji
IN BRIEF:
Evan You, the creator of Vue.js, recently gave ▶️ a talk on 10 years of Vue, covering both its past and future.
Over on Twitter/X, Daniel Lemire showed off a situation where Bun is much faster than Node.js, even when both are using the same underlying library, due to the complexities the V8 engine introduces.
🎵 Did you know TC39 now has its own pop group and a song?
RELEASES:
htmx 2.0 – The popular ‘access lots of JS and Web API features via special HTML attributes’ library gets a new major version mainly to remove deprecations and drop IE support.
Electron 31 – The cross-platform desktop app framework steps up to Chromium 126, Node 20.14, and V8 12.6.
Relay 17 – Facebook’s declaritive GraphQL client for React.
ESLint 9.5, Serverless Framework v4, pnpm 9.4
Your Fastest Path to Production — Build, deploy, and scale your apps with unparalleled ease – from your first user to your billionth.
Render sponsor
📒 Articles & Tutorials
▶ 3D in TypeScript with Raycasting — Raycasting is a somewhat old fashioned technique to render 3D environments (you may have seen it in 1992’s Wolfenstein 3D) but it’s easy to understand and worth implementing at least once.
Tsoding Daily
Live Types in a TypeScript Monorepo — Several strategies to make a TypeScript monorepo feel more “alive” in the sense of the propagation of changes.
Colin McDonnell
Intro to Sentry & Codecov: Live Demo — From pre to post-release, learn how Sentry help developers find and fix errors and slowdowns and deploy with confidence.
Sentry sponsor
What Happens When a Major npm Library Goes Commercial? — The ua-parser-js library is commonly used to parse user agent strings and gets over 12 million downloads a month, but it has recently switched to AGPL+commercial licensing.
Matteo Collina
Dual Publishing ESM and CJS Modules with tsup and ‘Are the Types Wrong’ — tsup makes it easy to bundle TypeScript libraries and ‘Are the Types Wrong?’ analyzes packages for issues with their types.
John Reilly
📄 How to Use Google Sheets as a ‘Database’ from React Paul Scanlon
📺 How Svelte and RSCs are Changing Web Development – A group discussion including Svelte’s Rich Harris, Tracy Lee, Ben Lesh, and Adam Rackis. This Dot Media
📄 Mastering Date Formatting using Intl.DateTimeFormat Rafael Camargo
📄 MobX Memoizes Components (You Don’t Need React Compiler) – If you’re actually using MobX, that is. Mike Johnson
📄 Refactoring a Scroll-Driven Animation from JavaScript to CSS Andrico Karoulla
📄 UUIDv7 Implemented in 20 Languages – Surprisingly short and sweet. Anton Zhiyanov
🛠 Code & Tools
Phoenix: A macOS Window Manager You Can Script with JS — macOS is set to adding more window management features in Sequoia, but how about something you can script entirely with JavaScript right now? GitHub repo.
Kasper Hirvikoski
JSONEditor: A Component for Viewing and Editing JSON — If your app needs to let users work with JSON directly, this is worth a look. It supports both text and tree views and is cross browser compatible. Live demo.
Jos de Jong
Transformational Auth & Identity | Userfront — “Compared to our previous experiences in the security/auth space, Userfront is an order of magnitude simpler to use.”
Userfront sponsor
Rooster v9.6: Microsoft’s Framework-Independent Rich Text Editor — A rich-text editor control neatly nested inside a single div element (demo). Several years old, but still maintained.
Microsoft
NLUX: A Library for Rendering Conversational AI Experiences — If you want to spin up a ChatGPT-style conversational experience on top of your own services or third party AI backends, this provides the pieces needed to get an interface up quickly. GitHub repo.
Salmen Hichri
⚙︎ NodeSwift – Bridges Node.js and Swift so you can write Swift code that talks to Node and vice versa. Kabir Oberai
⚙︎ Vuesion – Boilerplate for Next/Vue app development. Werner-Most Ideen GmbH
⚙︎ Kitbag Router – Type safe router for Vue.js. Craig Harshbarger
QUICK RELEASES:
Electron Store 10.0 – Simple data persistence for Electron apps.
React Date Picker 7.1 – Simple date picker component. (Demo.)
Monads 0.7 – Rust-inspired Option, Result, and Either types.
Plasmo 0.88 – “Like Next.js for browser extensions.”
MUI X 7.7 – Popular React component suite.
🤖 QUICK NOTE
Next week, I’m attending the AI Engineer World’s Fair. If you happen to be there, come and say hi!
It might be a bit late to attend in person unless you’re based in SF, but you can subscribe to the AI Engineer YouTube channel to be notified when the livestreams go live next Wednesday and Thursday if you’d like to see what’s going on.
— Peter Cooper, your editor