Cutting JavaScript into two: trick or treat?

#​711 — October 31, 2024

Read on the Web

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.

jQuery UI 1.14.1

📒 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.

Leave a Reply

Your email address will not be published. Required fields are marked *