---
title: "Cutting JavaScript into two: trick or treat?"
publication: "JavaScript Weekly"
issue: 711
published_at: "2024-10-31"
canonical_url: "https://javascriptweekly.com/issues/711"
---

Plus Node 22 goes LTS, Microsoft's 178GB JavaScript monorepo, and VS Code gets a nifty new JavaScript feature. |        

#​711 — October 31, 2024 

[Read on the Web](https://javascriptweekly.com/issues/711)  

Together with [![Sentry logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_350,h_100/e_make_transparent/co_white,e_outline:7/xdmchdxkka938lxfr86f.png)](https://sentry.io/resources/clean-architecture-nextjs/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q4-cleanarchitectureworkshop&utm_content=newsletter-cleanarchitectureworkshop-register)   

JavaScript Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/opvdpooawsep7ktikltx.jpg)](https://github.blog/news-insights/octoverse/octoverse-2024/)  

[Python Jumps to #1 on GitHub Over JavaScript, But...](https://github.blog/news-insights/octoverse/octoverse-2024/) — [GitHub Universe](https://githubuniverse.com/) 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](https://github.blog/news-insights/product-news/bringing-developer-choice-to-copilot/), and [GitHub Spark](https://githubnext.com/projects/github-spark) is a new AI-powered tool for rapidly creating and deploying small apps.  [![\](https://copm.s3.amazonaws.com/889f8c12.png)](https://sentry.io/resources/clean-architecture-nextjs/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q4-cleanarchitectureworkshop&utm_content=newsletter-cleanarchitectureworkshop-register) 

[Implementing Clean Architecture in Next.js](https://sentry.io/resources/clean-architecture-nextjs/?utm_medium=paid-community&utm_source=javascriptweekly&utm_campaign=fy25q4-cleanarchitectureworkshop&utm_content=newsletter-cleanarchitectureworkshop-register) — 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?](https://devclass.com/2024/10/22/should-javascript-be-split-into-two-languages-new-google-driven-proposal-divides-opinion/) — Two weeks ago we linked to [an interesting slidedeck](https://docs.google.com/presentation/d/1ylROTu3N6MyHzNzWJXQAc7Bo1O0FHO3lNKfQMfPOA4o/edit#slide=id.p) 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](https://news.ycombinator.com/item?id=41955353) too. 

Dev Class   

🤔 You could argue TypeScript is _already_ that second language..?  

**IN BRIEF:** 

- ✂️ The [latest version of VS Code](https://code.visualstudio.com/updates/v1_95#_update-imports-on-paste-for-javascript-and-typescript) 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_](https://vercel.com/blog/recap-next-js-conf-2024) and its main announcements.
- 🤖 Anthropic's Claude AI system has [introduced an 'analysis' tool](https://www.anthropic.com/news/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](https://github.com/angular/angular/discussions/58412) implementing a new Angular style guide to bring it up to 2024 standards and wants your input. The [existing style guide](https://angular.dev/style-guide) was written in 2016.   

**RELEASES:** 

- [Node.js v22.11.0 (LTS)](https://nodejs.org/en/blog/release/v22.11.0) - 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)](https://nodejs.org/en/blog/release/v23.1.0) – The cutting edge Node release line makes JSON modules, import attributes, and the [`MockTimers` test runner API](https://nodejs.org/api/test.html#class-mocktimers) stable.
- 📊 [ApexCharts 4.0](https://github.com/apexcharts/apexcharts.js) – Popular JS charting library updates its [SVG.js](https://svgjs.dev/docs/3.2/)dependency.
- [Chakra UI v3](https://www.chakra-ui.com/blog/00-announcing-v3) – A full rewrite for the comprehensive React component suite.
- [jQuery UI 1.14.1](https://blog.jqueryui.com/2024/10/jquery-ui-1-14-1-released/)  

📒 Articles & Tutorials  

[How We Shrunk Our JavaScript Monorepo Git Size by 94%](https://www.jonathancreamer.com/how-we-shrunk-our-git-repo-size-by-94-percent/) — 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](https://www.robinwieruch.de/how-to-roll-your-own-auth/) — 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](https://shortclick.link/6yoncu) — 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)](https://ui.shadcn.com/docs/react-19) — Fresh documentation from the [shadcn/ui](https://ui.shadcn.com/) 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](https://evanhahn.com/re-implementing-javascript-double-equals-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](https://expressionstatement.com/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](https://sxlijin.github.io/2024-10-09-node-stdout-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`](https://svelte.dev/blog/sv-the-svelte-cli) Ben McCann  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ecbnaarwsxcm4yaggyn1.jpg)](https://fakerjs.dev/)  

[Faker 9.1: Generate Fake, Realistic Data on Demand](https://fakerjs.dev/) — Names, bios, addresses, zip codes, dates, monetary amounts, transactions, and a lot more besides. I really like [the guided DevTools console based demo](https://fakerjs.dev/guide/usage.html#browser) you can try – an idea other projects should consider. [GitHub repo.](https://github.com/faker-js/faker) 

Faker.js Team   

[Fraction.js: Library for Working with Rational Numbers](https://github.com/rawify/Fraction.js) — 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](https://handsontable.com/docs/react-data-grid/?utm_source=jsweekly&utm_medium=newsletter&utm_campaign=jswoct23) — 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](https://fedify.dev/) — 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](https://github.com/yantrajs/yantra) — 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](https://svgjs.dev/docs/3.2/) — A lightweight approach without dependencies. There’s [a demo on JSFiddle](https://jsfiddle.net/Fuzzy/f2wbgx5a/) you can play with. [GitHub repo.](https://github.com/svgdotjs/svg.js) 

Various Authors   

[Dependency Cruiser 16.5: A Way to Visualize Dependencies](https://github.com/sverweij/dependency-cruiser) — If you want a look at the output, there’s [a whole page of graphs for popular, real world projects](https://github.com/sverweij/dependency-cruiser/blob/main/doc/real-world-samples.md) including Chalk, Yarn, and React. 

Sander Verweij   

[AuthKit: The World’s Best Login Box — Powered by WorkOS & Radix](https://www.authkit.com/?utm_source=cpjs&utm_medium=newsletter&utm_campaign=q32024) — 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](https://github.com/eshaz/wasm-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](https://github.com/LuanRT/YouTube.js) – Unofficial JS client for YouTube's private API.
- [Serverless Express 4.16](https://github.com/CodeGenieApp/serverless-express) – Run Express.js on AWS Lambda, API Gateway, Lambda@Edge, etc. Now supporting Express 5 too.
- [Execa 9.5](https://github.com/sindresorhus/execa) – 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](https://github.com/mui/mui-x/releases/tag/v7.22.0) – Popular React component suite. Now with server-side support for Data Grid row grouping.
- 🗓️ [react-calendar 5.1](https://github.com/wojtekmaj/react-calendar) – The 'ultimate' calendar for your React app.
- 📷 [VisionCamera 4.6](https://github.com/mrousavy/react-native-vision-camera) – Advanced camera control for React Native.
- [Elliptic 6.6](https://github.com/indutny/elliptic) – Plain JS elliptic curve cryptography implementation.
- [Acorn 8.14](https://github.com/acornjs/acorn) – Small, fast, JavaScript-based JavaScript parser.
- [Strapi 5.2](https://github.com/strapi/strapi) – Popular Node.js headless CMS.       

📰 Classifieds   

🏠 [Remote Senior Developer Experience Engineer](https://crystallize.com/careers/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](https://www.osohq.com/webinar-google-authorization-at-scale?utm_source=paid&utm_medium=newsletter&utm_campaign=zanzibar%20webinar&utm_content=js-weekly). A technical comparison of Google's Relationship-based authz system and Oso's Authz as a Service.           

Published by [Cooperpress](https://cooperpress.com/) and edited by [Peter Cooper](https://twitter.com/cooperx86) 

'JavaScript' is a trademark of Oracle Corporation in the US
We are not endorsed by or affiliated with Oracle. 

[Change your email address](https://javascriptweekly.com/edit_subscription/*|UID|*) or [stop getting this newsletter](https://javascriptweekly.com/leave/*|UID|*). 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom
