---
title: "Ryan Dahl on Deno and the future of JavaScript"
publication: "Node Weekly"
issue: 525
published_at: "2024-03-19"
canonical_url: "https://nodeweekly.com/issues/525"
---

Plus setting up a modern Express.js dev environment. |        

#​525 — March 19, 2024 

[Read on the Web](https://nodeweekly.com/issues/525)  

Together with [![Memetria\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_600,h_145/e_make_transparent/co_white,e_outline:7/vvpdctzacmq3xehpvwps.png)](https://dashboard.memetria.com/nodeweekly/)  

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/xk9lllslcbadazypnrds.jpg)](https://joyeecheung.github.io/blog/2024/03/18/require-esm-in-node-js/)  

[Bringing `require(esm)` to Node](https://joyeecheung.github.io/blog/2024/03/18/require-esm-in-node-js/) — Joyee writes about landing [experimental support for `require()`-ing synchronous ES modules](https://github.com/nodejs/node/pull/51977) in Node, a feature that has been a long time coming, due to both technical and cultural factors. 

Joyee Cheung   

[Building a Node App with TypeScript](https://www.totaltypescript.com/typescript-and-node) — Learn how to set up TypeScript to bundle a Node app using pnpm, Node, TypeScript, and ES modules for a seamless development experience, all from someone who knows a thing or two about TypeScript! 

Matt Pocock   [![\](https://copm.s3.amazonaws.com/c20cd592.png)](https://dashboard.memetria.com/nodeweekly/) 

[Memetria: Secure, Scalable Redis Hosting](https://dashboard.memetria.com/nodeweekly/) — High performance Redis hosting with large key tracking, detailed metrics, and a superior uptime record. 

Memetria sponsor   

▶[Setting up an Express.js App with TypeScript in 2024](https://www.youtube.com/watch?v=Be7X6QJusJA) — This hour-long video doesn’t focus on building an Express.js app itself, but on getting everything set up and working in a very clear, easy to follow way with a variety of modern DX niceties. 

Anson the Developer   

_IN BRIEF:_ 

- ▶️ The _Stack Overflow_ podcast [interviewed Node's creator Ryan Dahl](https://stackoverflow.blog/2024/03/19/why-the-creator-of-node-js-r-created-a-new-javascript-runtime/) about why he moved on to creating [Deno](https://deno.com/), as well as JSR, edge functions, and the future of JavaScript generally.
- ⚙️ Sticking with Deno, the Deno project has [unveiled `deployctl`](https://deno.com/blog/deployctl), a CLI tool for working with _Deno Deploy._
- On the [JSR](https://jsr.io/) front, there's [▶️ now a 6-minute video introduction](https://www.youtube.com/watch?v=gOfOSRertMA) explaining its motivations and what it offers beyond npm.
- If you're a Windows-based developer and you've been itching to try [the Bun runtime](https://bun.sh/), hold that thought – [Windows support is now close to shipping](https://bun.sh/blog/bun-v1.0.33#windows-support-is-close) with 93% of tests passing.   

[unplugin-parcel-macros: Use Parcel/Bun Macros with Other Bundlers](https://github.com/devongovett/unplugin-parcel-macros?tab=readme-ov-file) — [Macros](https://parceljs.org/features/macros/), as implemented in Parcel and Bun, are JavaScript functions that run at _build_ time and whose values get inlined into the bundle in place of the original call. You can now use this feature with webpack, Vite, Rollup, esbuild, and Next.js. 

Devon Govett   

[A Beginner's Guide to Worker Threads in Node](https://betterstack.com/community/guides/scaling-nodejs/nodejs-workers-explained/) — [Worker threads](https://nodejs.org/api/worker_threads.html) provide a way to create independent JavaScript execution threads that run in parallel. 

Stanley Ulili   

[Building Reliable Applications with Durable Execution](https://pages.temporal.io/download-building-reliable-apps-durable-execution-co) — Learn about the concept of durable execution, which is used to solve a wide range of problems in distributed systems. 

Temporal Technologies sponsor   

[Parsing Hacker News's _'Who's Hiring'_ Threads with OpenAI and Node](https://www.jbernier.com/p?id=hn-who-is-hiring-chatgpt) 
Jeremy Bernier   

[Comparing ECMAScript Modules (ESM) with CommonJS](https://wanago.io/2024/03/18/ecmascript-modules-esm-commonjs/) 
Marcin Wanago   

▶[Is Drizzle Really Better Than Prisma?](https://www.youtube.com/watch?v=cTu9-C2rd-0) 
Kyle Cook   

[Server Actions in Fastify](https://hire.jonasgalvez.com.br/2024/mar/04/server-actions-in-fastify/) 
Jonas Galvez    

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zkghkn3mdmd1uc6hswfk.jpg)](https://eta.js.org/)  

[Eta 3.4: Embedded JS Template Engine for Node, Deno, & Browsers](https://eta.js.org/) — Boasts being lighter and faster than EJS but with many of the same features (it looks a _lot_ like Ruby’s ERB, if you like that vibe). [GitHub repo](https://github.com/eta-dev/eta). 

Ben Gubler   

[VineJS: Form Data Validation Library for Node Apps](https://vinejs.dev/docs/introduction) — A fast validation library for data received by your backend app, providing both runtime and static type safety, and handling form data and JSON payloads. Why use VineJS over Zod? [They’ve answered that](https://vinejs.dev/docs/introduction#why-should-i-use-vinejs-over-zod). 

VineJS Contributors      

📰 Classifieds   

[Never miss a webhook ever again](https://hookdeck.com/docs/receive-webhooks?ref=nodeweekly-525). Use [Hookdeck](https://hookdeck.com/docs/receive-webhooks?ref=nodeweekly-525) to receive, transform, filter, route, deliver, and even retry webhooks in DEV and PROD. 

--- 

👨‍💻Try [Pythagora](https://bit.ly/cp-3-marketplace) - VS Code extension that builds apps from scratch with AI by talking to you. [It writes the code while you write instructions](https://bit.ly/cp-3-marketplace).     

[date-fns 3.6: A Modern Date Utility Library](https://date-fns.org/) — It’s been a few years since we linked to this _“lodash for dates”_ that’s packed with [over 100](https://date-fns.org/docs/Getting-Started) date and time manipulation functions, but it continues to get frequent updates. [GitHub repo](https://github.com/date-fns/date-fns). 

Sasha Koss   

💡 [Tempo](https://tempo.formkit.com/) offers another suite of date and time functions and was inspired by date-fns.  

- [Happy DOM 14.0](https://github.com/capricorn86/happy-dom) – JS implementation of a web browser _sans_UI.
- [date-fns 3.6](https://github.com/date-fns/date-fns) – ⏳ Modern JavaScript date utility library ⌛️
- [Nightwatch.js 3.5](https://github.com/nightwatchjs/nightwatch) – Node.js end-to-end testing framework.
- [ExpressoTS 2.9](https://github.com/expressots/expressots) – TypeScript framework for server-side apps.
- [RxDB 15.12](https://github.com/pubkey/rxdb/releases/tag/15.12.0) – Offline-first, reactive database for JS apps.
- [lmdb-js 3.0](https://github.com/kriszyp/lmdb-js) – Data store wrapper for LMDB.
- [x-crawl 9.0](https://github.com/coder-hxl/x-crawl) – Flexible Web crawling library.
- [Undici 6.9](https://github.com/nodejs/undici/releases/tag/v6.9.0) – Node's HTTP/1.1 client library.
- [Javet 3.1](https://github.com/caoccao/Javet) – Java + V8. Embed JS into Java.    

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
