Cutting JavaScript into two: trick or treat?
#711 — October 31, 2024
JavaScript Weekly
Python Jumps to #1 on GitHub Over JavaScript, But… — GitHub Universe took place this week, flooding us with data about how folks are using the platform. Of interest to those on social media was that Python has taken JavaScript’s #1 language crown, though many argued that TypeScript (now #3) made an impact here. In positive news, JS still ranks first for code pushes alone and there’s been a 15% jump in npm package consumption in the past year.
GitHub
🎉 In other GitHub news, their Copilot AI coding tool can now use alternative LLMs like Gemini and Claude, and GitHub Spark is a new AI-powered tool for rapidly creating and deploying small apps.
Implementing Clean Architecture in Next.js — Learn how to make projects testable and debuggable, independent of UI, framework, database, and external dependencies with the concept of Clean Architecture. Join us live on November 4th.
Sentry sponsor
Should JavaScript Be Split Into Two Languages? — Two weeks ago we linked to an interesting slidedeck presented at TC39 where it was proposed to split JavaScript into two languages: a basic core and a fully featured version that needs tooling to compile it down. This covers a bit more of the story and led to a particularly extensive Hacker News discussion too.
Dev Class
🤔 You could argue TypeScript is already that second language..?
IN BRIEF:
✂️ The latest version of VS Code has a new experimental feature for updating imports when you copy and paste between JS/TS files.
Lee Robinson and Delba de Oliveira present a quick recap of last week’s Next.js Conf 2024 and its main announcements.
🤖 Anthropic’s Claude AI system has introduced an ‘analysis’ tool for writing and running JavaScript within a sandbox, so Claude can perform various calculations and analysis before returning answers.
🙋 The Angular team is considering implementing a new Angular style guide to bring it up to 2024 standards and wants your input. The existing style guide was written in 2016.
RELEASES:
Node.js v22.11.0 (LTS) – Codenamed Jod, this marks Node v22 becoming the active LTS release of Node, a status it will maintain until late 2025.
Node.js v23.1.0 (Current) – The cutting edge Node release line makes JSON modules, import attributes, and the MockTimers test runner API stable.
📊 ApexCharts 4.0 – Popular JS charting library updates its SVG.js dependency.
Chakra UI v3 – A full rewrite for the comprehensive React component suite.
📒 Articles & Tutorials
How We Shrunk Our JavaScript Monorepo Git Size by 94% — And by “we”, the author means Microsoft, which had an extremely large 178 gigabyte JavaScript monorepo on its hands – big enough that many employees had problems cloning it at all. Jonathan tells the full story here.
Jonathan Creamer
How to Roll Your Own Auth in JavaScript and TypeScript — A snappy look at how to build a session-based authentication system, something Robin notes “does not have to be complicated”.
Robin Wieruch
MongoDB Atlas Search Integration with BuildShip — MongoDB Atlas Search offers powerful full-text search, vector search, and hybrid search capabilities.
MongoDB sponsor
Using shadcn/ui with React 19 (and Next.js 15) — Fresh documentation from the shadcn/ui project on the specifics of using the popular component library with React 19 generally, though with a slight emphasis on Next.js 15.
shadcn
Reimplementing JavaScript’s == in JavaScript — What a trip. Whether or not you’re aware of the ‘quirks’ of JavaScript’s == operator, this could boggle your mind.
Evan Hahn
HTML Form Validation is Heavily Underused — An exploration of the “powerful validation mechanisms” of HTML forms, opining that they’re underused, and proposing why that lack of utilization may be.
everdimension
📄 Node.js, Pipes, and Disappearing Bytes – If piping a Node app’s output to another command, mysterious problems can arise.. Sam Lijin
📄 Introducing the New Svelte CLI Tool: sv Ben McCann
🛠 Code & Tools
Faker 9.1: Generate Fake, Realistic Data on Demand — Names, bios, addresses, zip codes, dates, monetary amounts, transactions, and a lot more besides. I really like the guided DevTools console based demo you can try – an idea other projects should consider. GitHub repo.
Faker.js Team
Fraction.js: Library for Working with Rational Numbers — The imprecise representation of floating point numbers can lead to all sorts of problems, so if you’re working with fractions at all, you might want a little more precision, which Fraction.js offers.
Robert Eisele
Handsontable: Spreadsheet-Like JavaScript Data Grid for Your App — Feature-rich data grid for developers seeking a powerful, customizable, and accessible solution to manage complex data.
Handsontable sponsor
Fedify: A Framework for Building ActivityPub Servers — If you want to join the fediverse with an app of your own (rather than leaning on Mastodon, say), this gives you the building blocks you need.
Hong Minhee
Yantra: A JavaScript Engine for .NET Standard — A managed JS engine for .NET Standard written in C# that supports both CommonJS and ES modules.
Yantra Team
SVG.js: SVG Manipulation and Animation Library — A lightweight approach without dependencies. There’s a demo on JSFiddle you can play with. GitHub repo.
Various Authors
Dependency Cruiser 16.5: A Way to Visualize Dependencies — If you want a look at the output, there’s a whole page of graphs for popular, real world projects including Chalk, Yarn, and React.
Sander Verweij
AuthKit: The World’s Best Login Box — Powered by WorkOS & Radix — AuthKit is a complete solution for authentication, authorization, and user management. It’s free up to 1 million MAUs and comes standard with RBAC, bot protection, MFA, and more.
AuthKit sponsor
🔊 WebAssembly Audio Decoders — Targeting both browser and Node.js use cases, this is a collection of WASM-powered audio decoding libraries for formats like MPEG I/II/III, FLAC, Ogg Opus, Ogg FLAC, Opus, and Ogg Vorbis.
Ethan Halsall
📺 YouTube.js 11.0 – Unofficial JS client for YouTube’s private API.
Serverless Express 4.16 – Run Express.js on AWS Lambda, API Gateway, Lambda@Edge, etc. Now supporting Express 5 too.
Execa 9.5 – Powerful process execution library for Node. When redirecting stdout or stderr to a file, you can now optionally append rather than replace.
MUI X 7.22 – Popular React component suite. Now with server-side support for Data Grid row grouping.
🗓️ react-calendar 5.1 – The ‘ultimate’ calendar for your React app.
📷 VisionCamera 4.6 – Advanced camera control for React Native.
Elliptic 6.6 – Plain JS elliptic curve cryptography implementation.
Acorn 8.14 – Small, fast, JavaScript-based JavaScript parser.
Strapi 5.2 – Popular Node.js headless CMS.
📰 Classifieds
🏠 Remote Senior Developer Experience Engineer – Passionate about React & GraphQL? Join us as a Developer Experience Engineer to elevate our dev community. Remote, EU timezone.
How Google handles authorization at scale. A technical comparison of Google’s Relationship-based authz system and Oso’s Authz as a Service.