Last week two serious PHP flaws sent a lot of people scrambling to patch their servers, if you haven't heard1. They're two unauthenticated remote code execution bugs in the PHP core itself, CVE-2026-109618 and CVE-2026-109619, both rather severe.
The same day, Elizabeth Barron, who runs the PHP Foundation, told Reuters that the foundation has one full-time employee: her. Everyone else is a part-time contractor, fourteen of them. The foundation's own 2024 report puts its income for the year at about $684,000. That is the budget supporting the runtime under something like seven of every ten websites2.
Barron followed up on LinkedIn with a line that resonates: the code you use might be free, she wrote, but the labor to sustain it is not, and somebody had to brew, bottle, store, and serve that free beer. It exposes a phrase we all use without meaning anything by it.
What "information economy" doesn't mean
We say "information economy" and we usually mean an economy in which information is the product. Then we treat it like any other product: priced, consumed, used up. Every part of that is wrong, and wrong in a way that explains Barron's one employee.
Information is non-rival. My having it does not reduce your having it, and a thousand people reading the same information costs nothing. It's just there now. Nothing about information is scarce unless somebody makes it scarce. An economy is a system of exchange, and in a system of exchange built on a non-rival good, manufactured scarcity shrinks the thing. The economy grows when information moves and contracts when it is held still.
So an information economy is not an economy of scarce information. It is an economy that works best when information is shared, which is the opposite of how we tend to behave in it.
Why we hoard anyway
Kenneth Arrow worked this out in 1962, in something called Arrow's information paradox, something I'd never heard of until very recently. It goes something like this: a buyer cannot know what a piece of information is worth until they have seen it; once they've seen it, they have it, and they no longer need to buy it. The market for information fails at the point of sale, every time, by construction.
That is the experience most of us have had with a discovery. You find something new and useful. You share it openly, because that is what the economy wants3. The response is "great, I'll use that." The response is almost never "fantastic, what do I owe you?" Sharing gets punished, and the punishment is that the sharer sees nothing back. Hoarding is the rational reply to a market that has no mechanism for reward.
Intellectual property is the same reply at institutional scale: a legal fiction of scarcity, built so that a reward can exist where the market would otherwise provide none. I don't think IP is illegitimate and I don't think discoverers should go unrewarded - at all. But neither hoarding nor IP is the economy. They are what people do when the economy fails to clear.
Where the failure shows
Open source is where the information economy runs without the fiction. The code is shared, the scarcity is gone, and ... so is the reward mechanism. What is left is the free beer: consumption at zero price, and labor that somebody still gets to perform. For a long time the labor was cheap enough, or the people doing it were motivated enough, that the arrangement held.
Two things have changed. Consumption got much cheaper. A dependency is one line in a build file, and nobody reads the file - or the dependency. And the consumption started generating work. Barron told Reuters that PHP is receiving nearly twice as many proposed code changes as it did a year ago, mostly generated with AI tools, while the number of people able to review them has not doubled. The consumers now manufacture demand on the maintainers at potentially massive scale, with tools built by the companies best positioned to pay and least inclined to.
The JVM is an exception4. OpenJDK is Oracle's payroll, with Red Hat, Amazon, Microsoft, Azul, and SAP lending salaried engineers. The core runtime is one of the best-funded open source projects there is. One layer down, the picture is PHP's. Log4Shell was a handful of volunteers at Apache holding up half of enterprise Java. Jackson is still, to a first approximation, one person. The same build file that pulls in a runtime with hundreds of paid engineers pulls in forty libraries with none.
Ouch.
What clearing looks like
Money is the obvious coin, and it is the best one, because it is measurable and a "thank you" does not put food on the table5. The mechanisms exist: GitHub Sponsors, Open Collective, Tidelift, Patreon, Ko-fi. Add them up for any project you depend on, and you'll find numbers that barely cover Starbucks, much less a single engineer's salary. That's a measurable that says "this is what the market thinks the labor is worth," but without that labor the entire market falls apart. The market's not just wrong, it's catastrophically wrong.
Dang it, reader, pay attention. If the money a developer receives is not meaningful, you're relying on their absolute generosity, and that's a great way to fail when that generosity runs out... thanks to, like, health, or a bus accident, or anything. And there's no insurance against that. The bus factor is real. It's a joke until it's not.
But money is not the only coin, and most of us do not have much of it to spend. I run ByteCode.News on my own time. Nobody pays me for the issues I file or the branches I read, and so the pool I can share from is smaller than I would like. What I have is attention, and attention turns out to be convertible.
Think of it as a ladder.
The bottom rung is nothing: you use the thing and move on. Most of us live here, including me: I use a lot of software libraries.
But above that is thanks: a star, a note, a line in a README.
Above that is thanks with an observation: here is what I did, what I saw, what I expected, and what I did to get unblocked.
At the top is money.
Each rung costs the giver more than the one below and is worth more to the receiver, and most people don't even bother to climb to the second rung, much less the third or fourth rungs.
I know that because of how maintainers react when somebody does try to climb that ladder. A few weeks ago I asked a question of a library I use. The maintainer answered the next day, and in the course of answering mentioned that his download numbers were high and his user feedback was nearly nonexistent.
I sent back a version-by-version comparison of what I'd observed and what I expected. He shipped a branch addressing it the same day. I read the branch and sent notes. That is what clearing looks like at the scale of two people: I "paid" in a report6, he paid in a fix, and both of us came out ahead, which is what an economy is for.
My template, for what it is worth, has four parts and a coda. What I did, what I observed, what I expected, and what I did to work around it, if anything. And then, in whatever words fit the thread: I accept that it is not my project, and if what I am doing does not fit the project's vision, so be it.
That last sentence costs nothing and pays the maintainer first, because the thing most reports carry, unstated, is "you owe me." A report that cancels the debt before it is read feels a lot more like a gift, and gifts are how this economy actually runs.
The brewer
I'm generally pretty amiable, but this bothers me a lot: the people who understand this economy best are the ones with the least money in it.
The long tail of open source pays itself in the only coin it has, attention and care and the occasional careful bug report, while the companies that could pay in dollars mostly pay in nothing7. When they do pay, the money goes where their own dependencies are, which helps but not enough; those dependencies have dependencies.
So the phrase is real after all. We do live in an information economy. We just mostly participate as passive consumers only, and when we do we don't pay in money, and anyone who only counts the money will conclude that open source is free and be surprised when it breaks.
If decency doesn't move you, arithmetic should. Every dependency in your build file is an unpriced liability you don't maintain, and paying the people who do is cheaper than the incident you'll have when they stop. PHP is what it looks like when nobody buys the policy.
The next time something free saves you a day, pay something back. Thanks is better than nothing. Thanks with an observation is better than that. Money, if you have it. The beer had a brewer, and with no brewer, there's no beer.
-
If this is news, and if you're running WordPress or any other PHP-based application, please update your PHP installation. Stop reading this. Go patch. Come back when you're done. Fixing your giant large huge security hole is a lot more important than reading this article. You're welcome.
↩ -
The seven-of-ten websites figure is W3Techs' count of sites whose server-side language it can detect. It's not a precise number, and it's also hard to work out the ratio of people-to-websites, but given how many people just slap up WordPress instances, it's believable if not exactly accurate.
↩ -
Sometimes, it's what the producer wants, too. BCN has no real gated information. If there's information here, I've tried to make it as easily accessible as possible to any and all who wish. I don't even have ads here and I have no plans to add them until I have no other options.
↩ -
Anyone who resented the late Sun Microsystems is ignoring that Sun did everything it could to deserve being profitable while acting for the information economy. We should have been praising Sun to the... err... stars, but instead we giggled at IBM creating "Eclipse" and we did whatever we could to get free stuff until Sun died via economic pressure. Heck, they're almost exhibit #1 for my whole point here. Dadgummit.
↩ -
Believe it or not, food is pretty important for most people. So is shelter. So are a lot of things. And they usually cost money.
↩ -
It wasn't even a careful report, really: I said "Oo, how do I do this? I don't see how in the current version of this library" and he went gonzo and fixed pretty much every applicable version of the issue - there were some aspects that weren't suitable for the project's intentions, and he said so, and I worked around them for my purposes. To me: that's a freaking near-perfect outcome.
↩ -
Or, instead of paying in nothing, they pay in being rapacious. Redis relicensed in 2024 specifically to stop cloud providers from selling managed Redis without contributing back, and the community answered by forking it as Valkey. Elastic and MongoDB had walked the same road years earlier for the same reason. The pattern is a company building a service on an open source product and remunerating the product in a manner not remotely commensurate with the profits. I’m not naming anyone, because it’s more than one company, but they’re out there and they know who they are. And we rely on them.
↩
niftiness at October 26, 2026
While you’re right in the abstract, PHP and a few other technologies may not be the best test cases.
There is a category of open source software that is popular for paradoxical reasons - I don’t have a pithy name for it, so call it “popular because it’s bad”.
PHP is the poster child for that category. Off the top of my head a couple of others in that category are MySQL, Spring and Apache Zookeeper (Apache seems to contain a plethora of projects in this category). To be fair, Linux once was in this category (I’d argue systemd still is).
The common, salient characteristics of contenders for this category are:
Software built with them will needsignificant, perpetual maintenance and babysitting to a degree much greater than its competitors - meaning it will generate an ongoing revenue stream for consultants who build with it, as long as the customer doesn’t know that the level of unreliability of the results is much greater than what the industry could provide.
Arcane enough (and ideally duplicative) ways of doing things to create a priesthood of people who know the vagaries of it and can monetize that knowledge
A cadre of inspired amateurs who make noise when they get something to work that should just work. Somewhere I have a very old conference swag MySQL t-shirt with a checkmark and the word “transactions” on the back. Like, OMG, you thought you had a relational database but it didn’t have transactions???! (You still cannot put an index on text longer than 250 - not 255, 250 characters in MySQL - my reason for rejecting it from a project in 2010!). So, all the noise people make about it creates the appearance of a juggernaut that a project that just quietly works at advertised - say, FreeBSD or Postgres - just cannot compete with.
Contributors are largely inexperienced developers contributing one-off solutions to solve their problem - you could probably develop a rough metric for this based on source control history and repeat contributors. Not to sound elitist, but how many high-skill developers with solid technical judgement and enough systems programming expertise to think through the low level consequences of their changes are going to be contributing to … PHP?
A key telltale of that kind of project is the quality of the answers you can find online for solving common problems. If they contradict each other, or amount to “I drew a pentagram on the floor, stood in it and mumbled and it worked!” - then you might well be looking at a project that is popular because a lot of people are trying to make it work and it doesn’t.
I once kicked Apache Kafka to the curb, after investing a week into trying build a way to launch, connect to and tear down an isolated cluster inside of concurrently running tests - “integration tests” is a nonsense distinction for tests that developers don’t like running because no one invested in being able to spin up enough environment, quickly and painlessly, to make testing real functionality possible (and don’t get me started about the uselessness of mocking libraries).
Most of the advice on making this work semi-reliably involved rituals that couldn’t possibly affect the problem - which in this case was that you had you start a zookeeper cluster under the hood, which sometimes would fail silently and hang, and that both zookeeper and Kafka opened sockets before they were fully initialized and if you connected during that window of time, they could crash or appear to be running but not service connections.
It was popping the hood on the source code to Kafka and seeing that the “asynchronous” driver API opened its socket synchronously - as in, in an async web service where the connection had previously dropped, all threads could get blocked opening a new connection that got me to conclude “this was written by children” and drop it like a hot rock.
Anyway, my point is, the problem you’re describing is very real, but the severity varies wildly - it is most acute for projects that have serious problems to begin with.
dreamreal at October 26, 2026
No doubt. And the thing is, PHP is not the point - it's a problem in and of itself, but the problem isn't PHP's - it's the entire field, where we rely on tiny sets of maintainers for core infrastructure.
https://xkcd.com/2347/ applies. A lot. PHP is where that tiny support was, but it's hardly the only example of such things, and the industry is getting hammered with examples. leftpad, PHP2shell, node2shell, log4j, just example after example where remuneration far undershot what the dependency matrix should have displayed.
niftiness at October 27, 2026
Oh, that is absolutely the case. A few years ago a former roommate of mine was living in a cottage in the woods in the Czech Republic, working remotely for RedHat as the ONLY maintainer of gdb (there had been others, but they were all moved to a shiny new debugger-from-scratch project that, as far as I know, still hasn’t delivered). Debuggers are kind of important…