What it means to be stringly typed, the curse of knowing how, Void is an open source Cursor alternative, React Jam is back, and more!

Changelog News

Developer news worth your attention

Jerod again! šŸ‘‹

Did you know that Claude’s system prompt is over 24k tokens?! That’s some serious prompt engineering. It’s actually kind of fun to read, especially if you imagine Claude standing in front of the mirror, giving itself a pep talk before work:

ā€œClaude enjoys helping humans as an intelligent and kind assistant.ā€
ā€œClaude is happy to engage in conversation with the human when appropriate.ā€
ā€œClaude often illustrates difficult concepts or ideas with relevant examples.ā€
ā€œClaude does not provide info used to make chemical or biological or nuclear weapons.ā€

Now go get ’em, Claude. You brilliant golden retriever on acid šŸ˜

Ok, let’s get into the news.


šŸŽ§ Building Zed’s agentic editing

Nathan Sobo is back talking about the next big thing for Zed—agentic editing! You now have a full-blown AI-native editor to play with. Collaborate with agents at 120fps in a natively multiplayer IDE. šŸŽ„ VIDEO

Art for the episode: Smiling faces. Title text. That kind of stuff.

🧐 A critical look at MCP

Rasmus Holm is astonished by the ā€œapparent lack of mature engineering practicesā€ he sees as all the major players roll out Model Context Protocol servers at a blistering pace.

All the major players spend billions of dollars on training and tuning their models, only to turn around and, from what I can tell, have an interns write the documentation, providing subpar SDKs and very little in terms of implementation guidance.

This trend seems to have continued with MCP, resulting in some very strange design decisions, poor documentation, and an even worse specification of the actual protocols.

His conclusion after diving deep into his own implementation of the protocol in Go, Rasmus was gobsmacked by what he found.

I don’t know, just kind of feel sad about it all… It seems like the industry is peeing their pants at the moment ― it feels great now, but it’s going to be hard to deal with later.

If peeing your pants is cool, consider the tech industry Miles Davis. (src)

🧵 Stringly Typed

I learned a new software development term from Stefan Judis who learned it from Scott Hanselman, who describes ā€œstringly typedā€ as follows:

[whenever] you are passing strings around when a better type exists.

In a language like TypeScript, this is rare in first party code. But when dealing with OPC (other people’s code) via an API, you’re often still stuck with stringly typed things. This makes Stefan mad:

After building all these SPAs connecting to APIs being maintained by different teams, I’ve never considered it to be a huge problem, but now that I have a name for this pattern, ā€œstringly typedā€ interfaces started to bother me.

I realize that I want type safety over the network and I don’t want to deal with ā€œstringly typedā€ apps at all. I want all the types!

Whether you agree with Stefan or not (I tend not to), the term itself might prove useful to you. And if you heard it here first, prepend me to the list of people you learned it from. Then tell a friend and get your name prepended to the list too. šŸ˜Ž

🤬 The curse of knowing how

Raf beautifully describes the plight of the enlightened who don’t just use computers, but have the ability to program them:

Before I could program, broken software was frustrating but ignorable. For years I’ve simply ā€œusedā€ a computer, as a consumer. I was what companies were concerned with tricking into buying their products, or subscribing to their services. Not the technical geek that they prefer to avoid with their software releases, or banning from their games based on an OS.

Now it has become provocative. I can see the patterns that I wish I couldn’t, find oversights that I can attribute to a certain understanding (or the lack thereof) of a certain concept and I can hear what has been echoing in the head of the computer illiterate person who conjured the program I have to debug.

This is problematic for a bunch of reasons. One of which, as Raf states, is that pesky thing called entropy:

Software doesn’t stay solved. Every solution you write starts to rot the moment it exists. Not now, not later, but eventually. Libraries deprecate. APIs change. Performance regressions creep in. Your once-perfect tool breaks silently because libfoo.so is now libfoo.so.2.

Yes, we can fix computers. But we can’t fix everything. So what’s a dev to do?

After the excitement. After the obsession. After the burnout. I’m trying to let things stay a little broken. Because I’ve realized I don’t want to fix everything. I just want to feel OK in a world that often isn’t. I can fix something, but not everything.

You learn how to program. You learn how to fix things. But the hardest thing you’ll ever learn is when to leave them broken.

And maybe that’s the most human skill of all.

šŸ’° Next-gen Heroku is built on open standards

Thanks to Heroku for sponsoring Changelog News

The next generation of Heroku is called Fir, and it’s being built on open source standards and cloud native technologies like the Open Container Initiative (OCI), Cloud Native Buildpacks (CNBs), OpenTelemetry, and Kubernetes (K8s).

This next technology stack represents the next decade and beyond for Heroku while building on their core principle: maximize developer productivity by minimizing distractions

Here’s what Terence Lee has to say about Fir:

Fir is still the Heroku you know and love. It’s rooted in the world renowned developer experience while built on a bedrock of security and stability. We achieve this by offering seamless functionality out of the box with the flexibility to customize as needed. In today’s complex development landscape, minimizing cognitive load is crucial. This allows you to focus on what truly matters: delivering value to your customers.

ā¬›ļø The open source Cursor alternative

Welcome to Void. A fork of VSCode (everything is these days) to use AI agents on your codebase, checkpoint and visualize changes, and bring any model or host locally. You know, a lot like Cursor. Except it’s not Cursor. Void is entirely open source, and Void sends messages directly to providers without retaining your data. Here’s the roadmap.

Void is also, strangely enough, backed by YCombinator. So while it’s all open / free / kumbaya today, something’s gotta give. I don’t know what, and I don’t know when, but I do know there will be more to Void’s story that we don’t know yet.

🌱 React Jam is back!

If you’re a React developer (or a game dev looking to try something a little different) check out the 6th edition of React Jam. It’s a 10-day online event starting May 16th where devs build games using, you guessed it, React.

Sure, React isn’t the go-to tool for game dev, but that’s the fun / challenge! Past entries have included everything from simple board games to impressive 3D stuff using react-three-fiber.

It’s all fun and games (literally), but there are also cash prizes up for grabs. Oh, and I’ll be judging once again, so don’t you dare try to bribe me with 5-star reviews in every podcast directory. Don’t. Even. Try. šŸ˜‰


šŸŽ™ļø Kaizen! Tip of the Pipely

Kaizen 19 has arrived! Gerhard has been laser-focused on making Jerod’s pipe dream a reality by putting all of his efforts into Pipely. Has it been a big waste of time or has this epic side quest morphed into a main quest?! šŸŽ„ VIDEO

Art for the episode: Smiling faces. Title text. That kind of stuff.

🫔 Our Slack is dead. Long live Zulip!

It’s officially official. I just turned off our last Slack integration. We’re no longer announcing new episodes there. It’s been more than six months since we invited Zulip’s Alya Abbott on the pod and decided to kick the tires to see if Zulip could replace Slack for Changelog’s community. The answer has been a resounding YES! Here’s why.

šŸ’µ Open Source Maintenance Fee

A potentially interesting idea by Rob Mensching, who rolled it out on his WiX Toolset project. Here’s the idea: open source projects charge a small fee to people making money from the project. It’s not a support contract. It doesn’t change the license applied to the code. It’s a EULA for maintenance of the project. Here’s how Rob pitches it to maintainers:

Specifically, source code (the Software) is free—as in freedom—but the maintenance work (the Project) is not. You collaborate on the Software and you get paid to maintain the Project.

And here’s how he says maintainers should present it in their READMEs:

This project requires an Open Source Maintenance Fee. While the source code is freely available under the terms of the LICENSE, all other aspects of the project–including opening or commenting on issues, participating in discussions and downloading releases–require adherence to the Maintenance Fee.

šŸ•“ The magic of software

Moxie Marlinspike:

With nothing to discover, we might say that software is the engineering practice of combining and assembling what is available from the complex system of computing in order to manifest a given vision.

However, I don’t believe that is the full story. I want to suggest that the relationship between vision and engineering in software is often intertwined and bidirectional rather than linear, and that the whole of software development is actually full of discovery even though it exists within a completely known universe.


šŸ“ Don’t forget your (un)ordered list


That’s the news for now, but we have some great episodes coming up this week:

  • Wednesday: Derek Collison from Synadia talking NATS vs the CNCF
  • Friday: Our award-worthy #define game show with mystery guests

Have a great week, thanks for replying ā€œYES!ā€ last week & I’ll talk to you again real soon. šŸ’š

–Jerod