JavaScript Dialogs and the Difference Between Software and the Web
The recent news that Chrome is moving toward deprecating alert(), confirm(), and prompt() has generated a fair amount of discussion. Some developers have voiced concerns about what it means for the stability of the platform when a single browser vendor can effectively switch off features that many sites still rely on.
Richard Harris made a particularly salient point in response to the news: normalizing the idea that collateral damage is an acceptable price for progress would be a dangerous path for the web to take. Even if you accept the premise that removing APIs like alert() constitutes progress—which he doesn't—the web is generally treated as a stable foundation where today's work will continue to function down the road. If websites become transient artifacts and the APIs we depend on can be discarded by tomorrow's spec writers, the web's core value is already undermined.
While the specifics of this particular deprecation aren't something I care deeply about, the situation highlights an important distinction between software and the web itself.
Consider a recent experience I had while rebuilding my personal site with Astro, a framework I genuinely enjoy using. In a fit of enthusiasm, I decided to update to the latest version, hoping for a faster build process and access to new features. Instead, everything broke. The update introduced breaking changes, deprecated APIs, and my build pipeline collapsed completely.
This isn't meant as criticism of Astro specifically. The point is that Astro, like React or any other framework, is not the web itself. Framework maintainers have the freedom to deprecate APIs, make substantial changes, or even start over from scratch. The same cannot be said for foundational web features. Things like alert(), familiar CSS properties, and HTML elements occupy a different category entirely. They can't be deprecated the same way software APIs can because the web needs to remain predictable. No single team or individual owns these features, so treating them like ordinary software would be a mistake.
At the heart of this is a simple observation: alert() and confirm() are not features of Chrome—they are features of the web. The danger is that many people may perceive them as browser-specific conveniences, when in reality they are part of a much larger, shared platform.
This is precisely why public standards development matters. Discussing new features openly allows bugs to be identified and questions to be answered before something ships to a platform where it cannot simply be removed if the implementation turns out to be flawed. The distinction between software, which can evolve aggressively, and the open web, which must remain stable, is one worth keeping in mind.



