Human Who Codes Newsletter - Deno: What happened?


Deno: What happened?

When Ryan Dahl introduced Deno at JSConf EU 2018, it generated significant interest in the JavaScript community. As the creator of Node.js, Dahl presented a compelling vision: a new runtime that would address the common pain points developers face. Deno (a palindrome of "node") promised a fresh approach with new core APIs, ESM-only modules, familiar web APIs, independence from npm, and security by default. Who better to reimagine the JavaScript runtime than the person who helped shape its current landscape?

Seven years later, Deno's market adoption remains limited. According to StackOverflow's 2024 Survey, only 1.9% of respondents use Deno compared to Node.js's 40.8% (Bun was not included in the survey). Google Trends data shows consistently low interest in Deno relative to Node.js. Let's examine why.

Ambitious vision. Deno's approach was bold: build a JavaScript runtime from scratch, breaking away from traditional ideas about what a runtime should be. It offered an all-in-one development experience with built-in testing, linting, and formatting tools, removing the need for separate installations. Native TypeScript support eliminated the traditional build step. This complete solution seemed perfect for starting new projects.

However, this ambition also meant that Deno was leaving behind the existing JavaScript ecosystem, creating a challenging migration path for current applications. In its early days, Deno lacked access to npm and familiar Node.js APIs, forcing developers interested in Deno to rewrite their applications almost from the ground up. While some developers embraced the change, most opted to stay with the established Node.js ecosystem.

Monetization through hosting. In 2021, following venture capital investment, Deno unveiled its revenue strategy with Deno Deploy. The platform aimed to provide a complete JavaScript-based cloud service, with key-value storage, queues, cron jobs, and other essential infrastructure components. It was designed to be the ideal cloud platform for JavaScript developers.

Despite its promise, Deno Deploy struggled to gain widespread adoption. While some notable companies successfully adopted the platform, including Netlify, Slack, and Deco.cx, along with Supabase for their edge functions, overall market adoption remained limited. Recent reports indicate that Deno Deploy's availability regions have decreased, even as they work to revitalize the service.

Package registry innovation. March 2024 saw Deno's attempt to revolutionize package management with JSR. The registry introduced innovative features: strict package validation, anti-squatting measures, mandatory scoping, type-checking optimization, and direct TypeScript publishing capabilities.

However, JSR faced similar adoption challenges. Its npm compatibility limitations, particularly with transitive dependencies, created significant obstacles, as ESLint's experience demonstrated. While Deno has established a governance board to guide JSR's development, community engagement and project momentum appear to have diminished.

Strategic pivot. Recognition of these challenges led to a significant shift in Deno's strategy. The release of Deno v2.0 in 2024 marked a turning point, introducing comprehensive Node.js compatibility. The emergence of Bun, which prioritized Node.js compatibility from inception, likely influenced this decision. Meanwhile, Node.js itself evolved, incorporating modern features like fetch(), native TypeScript support, and a permissions system.

Better doesn't always win. As an early adopter of both Deno and JSR, I believe they offer better solutions to many common development challenges. Their well-thought-out design and clean solutions could make JavaScript development much smoother.

Yet the tech world often shows us that "good enough" solutions with large user bases tend to stick around, even when better alternatives come along. While Dahl has responded to concerns about Deno's future, and their $21 million Series A funding gives them time to try new approaches, one question remains: Can Deno become a real alternative to Node.js, or is Node.js simply good enough that most developers don't see a reason to switch?

Key Takeaways

  • Technical superiority doesn't guarantee success in the JavaScript ecosystem. Even Deno's innovative features couldn't overcome Node.js' established presence.
  • Breaking compatibility with existing tools creates major barriers to adoption. Deno's initial lack of npm support and familiar APIs kept many developers on Node.js.
  • Developer tools need to balance innovation with practicality. The JavaScript ecosystem seems to favor incremental improvements to familiar tools over complete reinvention.

Understanding JavaScript Promises

My e-book, Understanding JavaScript Promises, now includes information about Promise.withResolvers() and a whole new chapter on using and creating abortable functions.


Stuff I've Enjoyed this Month

📝 The hidden time bomb in the tax code that's fueling mass tech layoffs by Catherine Baab
It's hard to look at the news these days without see layoffs announced at another tech company. This article explains how part of the U.S. tax law changed and why that's led to massive layoffs in the tech industry.

🎬 Arrays, objects, ...now 'composites'? by Matt Pocock
Not too long ago there was a JavaScript proposal for records and tuples. That proposal has been withdrawn in favor of a new composite proposal. This video explains how we ended up here.

📖 Momentum by Mamie Kanfer Stewart and Tai Tsao
If you're ready to geek out about optimizing meetings, then this book is for you. The authors go into detail about what makes meetings work and the mistakes that make other meetings horrible.

📝 Kind of Rebeccapurple by Ondřej Konečný
The story behind the design of the new CSS logo, from concept to each iteration to deciding on the final color scheme. This is a beautiful story about how a community came together on this project.

🎧 The Telepathy Tapes by Ky Dickens
This podcast explores the seemingly telepathic abilities of non-verbal autistic kids. Along the way, it delves into the nature of consciousness and reality itself. If you have an open mind, or just a bit of curiosity, this podcast has the potential to change how you view the world.

🎬 Windsurf AI tutorial for beginners by Volo Builds
Windsurf is, so far, my favorite AI editor. This tutorial is for anyone who hasn't yet used Windsurf and walks through the features you need to know.

📝 Peeking Behind The Code — IRS Just Open-Sourced Direct File by Andrew Leahey
In one of the more interesting open source stories in recent memory, the IRS open sourced the software behind its free filing system. Intuit continues to push to eliminate the free filing system and open sourcing the software ensures that the code won't be lost if that happens.

🎬 Don't waste your money: Which AI upgrade is actually worth it? by Enovair
I've been going back and forth on which AI to start paying for. GPT? Claude? This video gives a good overview of the available options and why you might choose one service over another.


What I'm Working On

🏠 Real Estate: It's summer and that means it's time for air conditioning units to fail. I've already had one fail and need to be fixed for $450. Half of my properties have new ACs so hopefully they'll be okay. I'll need to cross my fingers for the others. Follow my Instagram for real estate photos.

🎬 YouTube: I was on Visual Studio Code Live to discuss my strategies for AI-assisted programming. I had a bunch of technical issues but I think we still got some good content out of it.

📝 Blog: I wrote A person-based approach to AI-assisted software development, which I explain how I'm currently using AI tools to implement non-trivial changes.

💻 Open Source:

💻 ESLint:

  • I wrote up a blog post explaining how ESLint language plugins benefit DSLs.
  • I continued refactoring the ESLint core to create a path towards asynchronous operations in our core rewrite.
  • I did a lot of work to update types and better parsing of modern CSS (nested rules and math functions) to our fork of CSSTree.

Coaching for Tech Leads and Staff+ Engineers

If you're a tech lead or staff+ engineer, chances are your manager has no experience in your role. While they may be well-intentioned, they may not know how to help you grow in such a challenging position.

That's where working with me can help. As a former tech lead and principal engineer at multiple companies, I learned firsthand the ins and outs of these roles. I work with my clients one-on-one to develop their leadership, communication, organization, and problem-solving skills to succeed in the upper ranks of the individual contributor track.

Human Who Codes Newsletter

A once-per-month newsletter discussing topics important to senior-level software engineers, with a particular focus on frontend technology and leadership.

Read more from Human Who Codes Newsletter

Getting Buy-In You’re a tech lead with an idea for a large project, one that would make your life easier. But to make it happen, you'll need help. The project requires additional developers and possibly some cross-team collaboration. That means getting it on the roadmap and securing resources. Whether this is your first proposal or not, there’s a clear path you can follow to get your project approved. Start by clearly defining the problem. To build a strong case for your project, you need to...

Agents and MCP Last month, Visual Studio Code officially launched agent mode. While similar features existed in VS Code forks like Cursor and Windsurf, this release put agents into the hands of the wider developer community. The result? A surge of interest in agents, and in MCP, as developers began experimenting at scale. It may be the most important milestone since GitHub Copilot first arrived, marking a real leap forward in how we build software. So, what is an AI agent? It's a program...

Thoughts on Getting Stuff Done One of this newsletter's main themes is the importance of the non-coding side of software engineering. Sure, knowing how to program gets you through the door with an entry-level job, but that skill alone only takes you so far—maybe to senior software engineer. Beyond that, you need to grow in areas like leadership, communication, and negotiation. CTOs and chief architects don’t spend their days buried in code; they get there by proving they can do one thing...