The Empty Chair
The WG21 Governance Crisis
The Empty Chair
A conference room in a European city. Eighty delegates, three hundred papers, five days. The polls are taken. The hands are counted. The consensus is recorded. The features advance.
One chair is empty. Not dramatically pushed back. Not overturned in protest. Just empty. No one notices, because the committee does not count absences. It counts hands.
The Empty Chair is a name for a specific kind of institutional failure: when a domain expert stops attending because the committee chose a path that discarded their work. The expert was not fired. Was not voted out. Was not shouted down. The expert simply concluded that continued participation was futile, and stopped coming. The absence is quiet. It is also the loudest signal the institution will ever receive.
The empty chair is evidence. It is the evidence that no paper can provide and no poll can capture. It is a practitioner’s judgment, expressed not in words but in absence, that the committee’s direction is not worth their time.
This is the story of one empty chair.
The Man Who Built the Network
Christopher Kohlhoff started building Boost.Asio in 2003. It became the most widely deployed asynchronous I/O library in the C++ ecosystem - used in financial trading systems, gaming servers, mobile platforms, and embedded devices, running on Linux, Windows, macOS, iOS, Android, and a dozen other operating systems. He maintained it for over twenty years. He was the editor of the Networking Technical Specification, the document that was supposed to bring standard networking to C++.
Kohlhoff wrote fifty-four papers for the C++ standards committee. He proposed the completion token mechanism, the executor-as-policy model, coroutine integration for networking, and the IP address design that the Networking TS adopted. He attended meetings for two decades. His design philosophy was straightforward: field experience is a prerequisite for standardization. He did not theorize about networking. He shipped it. Millions of developers used what he built.
His library was the answer to a question the committee had been asking since 2005: how should C++ do networking? The answer was running in production at scale, across platforms, across domains, for years. The committee spent twenty-one years not standardizing it.
What Happened
In 2005, the first networking proposal appeared in the committee’s paper archive. What followed was a two-decade arc in which a working, deployed, field-proven library was coupled to an unfinished dependency, sidelined by a direction poll that lacked evidence for its central claim, excluded from a binary vote, and finally abandoned - while the expert who built it stopped attending.
The compressed timeline:
In 2018, the committee decided that the Networking TS could not be merged into the C++ standard until executors were standardized first. The executor proposal went through fourteen revisions. It was never deployed as a unified model. It was replaced entirely by a new framework called sender/receiver. Networking waited.
In 2021, Kohlhoff published P2430R0, identifying that the sender/receiver channel model could not represent partial-success results - operations that return both a status code and associated data - without losing data, bypassing the composition model, or converting routine outcomes into exceptions. This is a fundamental problem for networking, where partial reads and writes are not errors but normal operations. The framework’s authors acknowledged the problem in their next revision. They did not resolve it.
That same year, LEWG polled the statement that sender/receiver is “a good basis for most asynchronous use cases, including networking.” The poll reached consensus. But published voter comments from delegates who voted in favor included “can’t judge its suitability for networking.” At the time of the poll, no sender-based networking implementation existed - no prototype, no deployment, no production experience. The claim was accepted on plausibility. A detailed audit of this poll appears in P4097R1.
In 2023, a plenary direction poll presented two choices: the existing Networking TS design or the sender/receiver framework. A third approach - coroutine-native I/O, which had implementation experience and published papers - was not among the options. The framework won. The Networking TS was removed from consideration.
In 2026, the partial-success problem that Kohlhoff identified five years earlier remained unresolved. Within twenty-four hours of a study group poll on the issue, multiple committee members confirmed on the reflector that no standard facility existed for dispatching compound results onto the framework’s channels. One member posted four working implementations and confirmed that all four were equivalent to a single line of coroutine code.
Christopher Kohlhoff no longer attends WG21 meetings. C++ does not have standard networking. Python, Go, Rust, Java, and C# do.
The full twenty-one-year arc, synthesized from five retrospective papers, is documented in P4099R1. The cost of the original executor unification decision is traced in P4094R1. A survey of claims and evidence across the entire async domain shows the networking column empty: P4098R1.
How the Process Failed
Seven structural failure modes enabled this outcome. Not bad people. Bad incentives.
No burden of evidence for scope claims. The framework claimed applicability to networking. The claim was accepted on the basis of a small third-party library and the general expressiveness of the framework’s abstractions. No production-scale networking implementation using the framework’s channel model was required. No constructed comparison between the framework and the incumbent was demanded. The claim advanced on plausibility, not evidence.
Acknowledged-but-unresolved problems have no expiration. The partial-success problem was acknowledged in the framework’s revision history in 2021. Five years and multiple revisions later, it remained open. No mechanism required resolution before the feature advanced. Acknowledgment substituted for action.
The Binary Poll excludes emergent alternatives. The 2023 direction poll presented two options. A third approach - coroutine-native I/O - had implementation experience and published papers but was not among the choices. The committee voted between two known positions and excluded a third that had evidence but no political constituency.
Process Momentum replaces technical review. After years of design review, voting against the framework felt like wasting the committee’s investment. The feature had momentum. Momentum is not merit. But in a consensus process, they are difficult to distinguish.
Scope Creepage. Once a framework is in the standard for one domain, claiming the next domain becomes easier. “We are already in the standard” is a powerful argument regardless of whether the framework fits the new domain. The scope claim ratchets: it expands but never contracts.
Employer concentration distorts room composition. When a single employer’s engineers constitute a significant fraction of a study group’s attendance, the employer’s priorities can dominate direction polls and design reviews. This is not malicious. Engineers naturally advocate for designs their employer uses and funds. But the effect is that room composition reflects employer interest rather than domain expertise.
Review by Reputation. The framework specification spans hundreds of pages. The domain expertise required to evaluate its claims across networking, GPU dispatch, thread pool management, and coroutine integration exceeds what any single reviewer possesses. When a proposal is too large for independent verification, the committee substitutes trust in the authors’ standing for technical review. Trust is a social relationship. It is influenced by institutional standing, employer backing, and reputation. None of these correlate with correctness.
The Rules That Were Supposed to Prevent This
The Empty Chair is not just a human failure. It is a governance failure. The rules to prevent it already existed. They were replaced.
WG21 operates under two procedural systems. One is the ISO/IEC Directives - binding international rules designed over decades across hundreds of working groups in domains from electrical safety to medical devices. The other is SD-4, an internal procedural guide. The Directives are binding. SD-4 is what the committee follows. The gap between the two is where the Empty Chair lives.
Five ISO mechanisms would have changed the outcome.
Reconciliation vs. Bird-in-hand. The ISO/IEC Directives define consensus as “a process that involves seeking to take into account the views of all parties concerned and to reconcile any conflicting arguments” (Clause 2.5.6). SD-4 contains a different doctrine: “if a competing alternative does not have a paper, it does not exist and will not block progress of a proposal that we do have before us.” Under this rule, Kohlhoff’s twenty-year design - the most deployed networking library in C++ - was procedurally nonexistent because it lacked a numbered paper at the moment of the direction poll. ISO has no first-mover doctrine. The Directives contain no provision that establishes priority based on order of arrival, revision count, or accumulated procedural momentum.
“Every attempt shall be made” vs. “Erodes credibility.” ISO Clause 2.6.5 requires that “every attempt shall be made to resolve negative votes.” The obligation is on the project, not on the objector. SD-4 takes the opposite approach: repeated objection “erodes credibility.” One system protects the dissenter. The other penalizes persistence.
Protected objection vs. Credibility cost. The Directives provide a three-level appeal chain (Clause 5.1). National Bodies may appeal any action or inaction to the parent technical committee, the Technical Management Board, or the council board. SD-4 warns that escalation carries a reputational cost. A participant who reads only SD-4 would not learn that these appeal mechanisms exist.
Transparency vs. Sealed records. The Directives require that all decisions be formulated in writing (1.8.2e), posted within 48 hours (1.9.2c), and made available on an electronic platform for transparency and traceability (1.12.6). WG21 seals its meeting records from public quotation - an arrangement that is anomalous among ISO working groups. WG14, WG5, and WG9 publish their minutes. TC39 publishes verbatim transcripts. The IETF publishes recordings. Committee decisions in WG21 cannot be audited by anyone who was not in the room.
Forced feedback vs. No retrospective. The Directives mandate project review and cancellation procedures after five years (2.1.6). WG21 has no mechanism to ask whether a shipped feature achieved its claimed benefits. A search of the committee’s entire paper corpus returns zero papers proposing retrospectives. The loop was never closed because it was never opened.
As P4238R0 puts it: “One system asks the proposal author to reconcile conflicting arguments. The other asks the objector for a paper number.”
ISO did not design these rules for C++ specifically. It designed them across hundreds of working groups over decades because every committee, given enough time, optimizes for its own comfort over its users’ needs. The safeguards are general because the failure mode is general. WG21 replaced them with a page that optimizes for shipping. The result is a committee that counts hands but not absences.
The Psychological Cost
In The Room, Vinnie Falco’s forthcoming book on institutional dynamics, a chapter written in the voice of Carl Jung examines what happens to the individual inside the institution. The committee, Jung observes, has two personalities. The first publishes position papers about transparency and technical meritocracy. The second evaluates presenters, not papers - testing for social reliability, institutional compatibility, the willingness to concede under pressure. The gap between the two personalities is the committee’s shadow: the thing the institution cannot say about itself.
The Newcomer flies home on Saturday morning. She presented her paper to six people in a room designed for forty. One asked a question. There was no poll. That night, she dreams of a large room with stone walls and high windows through which no light enters. She opens door after door - behind each one, a full room, every seat taken, no one turning. She opens one more and finds six empty chairs and a man sweeping the floor. He looks up and says: “Your room is ready.” She sits down. She waits. No one comes.
The empty chair is the committee’s most honest symbol. It says what the published procedures cannot say: we have room for you, and the room is empty.
The institution does not destroy dissenters. It does not oppose them. It empties them. It provides the form of participation without the substance. The Newcomer was not rejected. She was accommodated - given a paper number, a time slot, a room, a chair, and nothing that mattered. Accommodation without substance is more damaging than rejection, because rejection at least acknowledges that the rejected thing existed.
The Delegate sits in plenary on Friday afternoon. He votes on twenty-seven polls, having read the papers for four. For the other twenty-three, he votes on the basis of what he heard in the room - the Chair’s summary, the first questioner’s frame, the confidence of the recognized names in the front row. He does not experience this as a failure of judgment. He experiences it as pragmatism. Jung calls this participation mystique - the condition in which the individual’s psyche is so merged with the collective that he cannot distinguish his own judgment from the group’s. The crowd decides. The crowd always decides. And the crowd, as Jung wrote, is always below the level of the individual.
Why It Matters Beyond C++
The Empty Chair is not a C++ problem. It is a governance problem.
Every institution that runs on consensus faces the same dynamics: scope claims that exceed evidence, momentum that substitutes for merit, trust networks that replace criteria lists, and the slow exit of the people whose domain expertise the institution most needs. The pattern repeats in every standards body, every professional association, every regulatory committee, every board of directors that mistakes the absence of objection for the presence of agreement.
The ISO Directives were designed to prevent this across hundreds of domains. Reconciliation obligations, negative-vote resolution, protected objection, transparency, forced feedback loops - these exist because the failure mode is general. The question is not whether your institution has this problem. It almost certainly does. The antibodies exist. They were designed by people who watched chairs empty in other rooms, in other decades. The question is whether your institution uses them.
The Empty Chair
Christopher Kohlhoff built the networking library that millions of C++ developers use every day. He maintained it for twenty years. He wrote fifty-four papers. He attended meetings for two decades. He is no longer in the room.
The committee will meet again in three months. The Chair will publish the agenda. The Delegate will vote on thirty polls, having read the papers for four. The Newcomer will not be there. Her seat will be empty. No one will notice the empty seat, because the committee does not count absences. It counts hands.
The empty chair is evidence. It is the evidence that no paper can provide and no poll can capture. It is a practitioner’s judgment, expressed not in words but in absence, that the committee’s direction is not worth their time. That judgment deserves investigation, not dismissal.
The rules to prevent this already existed. They were replaced. The chair is empty. And the committee that cannot see its most honest symbol is a committee that has lost contact with its own shadow - the shadow that tells it, in the language of absence, what it has lost.


