Five technologies. Five funerals nobody actually held. That is the pattern I keep running into when I go looking for the exact moment something stopped being the default choice on the web: there’s rarely a single day. There’s a slow draining of new projects choosing it, until one year you notice almost nobody starts fresh with it anymore, and the old installs just sit there, still running, still serving traffic, technically alive.
That gap between “still running somewhere” and “still chosen for anything new” is the whole story here. Get it wrong and you write a eulogy for something that has 80% market share. Get it right and you see what actually happened: not a death, a demotion.
BASIC: the language that taught a generation, then got quietly retired
BASIC came out of Dartmouth College in the mid-1960s, built by John Kemeny and Thomas Kurtz specifically so undergraduates who weren’t math majors could write programs. It worked. By the late 1970s and through most of the 1980s it was the default language shipped inside home computers: Applesoft BASIC on the Apple II, Commodore BASIC across the PET-to-C128 line, GW-BASIC on IBM-compatible machines running MS-DOS. If you turned on a home computer in 1983, there was a decent chance BASIC greeted you before anything else did.
So when did it actually stop being the default? Death window: roughly 1985 to 1995. The cause wasn’t one event, it was two converging ones. First, C and Pascal offered structure and speed that BASIC’s line-numbered, GOTO-heavy dialects couldn’t match once programs grew past a few hundred lines. Second, and this one’s easy to miss, Microsoft’s own 2002 release of VB.NET broke the on-ramp that had kept Visual Basic relevant into the 1990s. VB.NET rewrote the language as object-oriented with no real migration path from classic VB, and depending which retrospective you trust, that single decision is either the thing that modernized Basic or the thing that killed its mainstream relevance for good. I’d lean toward the second reading. A language dies less from being outcompeted than from its own vendor deciding to stop protecting the thing that made it easy.
HTML without CSS: when every page was one long fight with tables
There was a real period when styling a page meant nested <table> tags, <font> elements, and spacer GIFs, because CSS existed on paper but not reliably in browsers. CSS1 became a W3C Recommendation in December 1996. CSS2 followed in May 1998. Neither mattered much in practice until browsers agreed to implement them the same way, and that took years of what the W3C’s own history page calls the browser wars: Internet Explorer and Netscape rendering the identical stylesheet two different ways, forcing developers to write it twice or skip it.
So what actually flipped it? Death window: 2000 to 2005. Internet Explorer 5 for Mac shipped a genuinely accurate CSS1 renderer in 2000, and IE6’s 2001 release pushed CSS1 plus most of CSS2’s positioning into the mainstream. By around 2005, writing production markup with zero CSS and pure table layout had gone from standard practice to something you’d only see on a page nobody had touched since the previous decade. Nobody sent out a memo. It just stopped being a defensible choice for a new build.
PHP as the default backend: still everywhere, chosen far less often
This is the one people get wrong most, so let’s be precise. W3Techs puts PHP at roughly 70% of websites where the server-side language is known, as of this writing. That number is real, and it is also almost entirely legacy weight: WordPress alone accounts for a huge share of it, plus older CMS platforms nobody has migrated off. It tells you almost nothing about what a developer starting a project this month would reach for.
The Stack Overflow Developer Survey tells the other half. PHP usage among respondents fell from roughly 30.7% in 2018 to around 18.2% by 2024, and only about 15% of new programmers pick it as a first language now. Node.js, Python’s Django and Flask, and Ruby on Rails absorbed most of that share through the 2010s, and Go has been chipping at the edges more recently. Is PHP dead? Obviously not, 70% of the web says otherwise. Is it the default answer to “what should I build the backend in” for a project starting today? Not even close, and that’s a different, more interesting question than the one most “is PHP dead” posts actually answer.
jQuery: the death that gets flattened into a lie either way
Here’s where I think most retrospectives on this exact topic get sloppy. W3Techs shows jQuery on 86.5% of sites where a JS library is detectable, which sounds like total dominance. It is total dominance, of pages that were already live before roughly 2016 or that run on WordPress themes still shipping it by default. Ask a different question, “what would a developer reach for today to manipulate the DOM on a brand-new project,” and the honest answer has been “not jQuery” since somewhere around 2015 to 2018, once querySelector, fetch, and a wave of framework defaults (React, Vue, Angular) made jQuery’s core value proposition, cross-browser DOM normalization, mostly irrelevant.
That’s the same shape of mistake as the PHP section above, and honestly it’s the one I find myself correcting people on the most. Teams that inherit a jQuery-heavy codebase aren’t behind the times; they’re paying the ordinary cost of software that outlived the reason it was chosen. If you’ve priced out what it actually costs to walk away from a dependency like that once a team is deep into it, the three-year dependency post covers the same mechanism from the other direction.
React class components: killed by the project’s own documentation
This is the cleanest death window of the five, because a single team made a single deliberate decision and dated it. React 16.8 shipped Hooks as stable on February 6, 2019, letting function components hold state and run side effects without ever writing a class. That alone wouldn’t have killed classes. What did was March 2023, when the rewritten react.dev went live and made Hooks-based function components the only thing the tutorial teaches, pushing class components into a section labeled, in the documentation’s own words, legacy.
Does that mean classes are gone? Not exactly. Death window: 2019 to 2023, with the second date doing most of the actual killing. Classes still work. React hasn’t removed them, and a handful of edge cases (error boundaries, mostly) still need them. But when the official docs stop teaching a pattern as the default, new codebases stop using it within a couple of years, and that’s exactly what happened. Out of all five entries here, this is the one closest to an actual comeback, in the narrow sense that nothing forces you off classes today. Nobody’s building new ones anyway.
Pulling these five side by side, the thing that surprised me was how differently they died. BASIC lost to better tools and a vendor’s own bad call. CSS won because browsers finally agreed on something. PHP and jQuery both suffer from the same measurement trap, huge legacy footprint mistaken for current relevance. Class components died because a style guide changed its mind in public, with a timestamp. Same word, “died,” five completely different mechanisms. That’s worth remembering the next time somebody tells you a technology is dead using a single statistic that doesn’t say which decade of the web it’s measuring.