technology

Stroustrup fires back at the ‘easy language’ cult: complexity is the price of power

The man who wrote C++ just called the industry’s bluff. While product managers chase the next “zero-code” mirage, Bjarne Stroustrup shrugs: if you want real control, drop the comfort blanket.

The two tribes of code

Inside every server farm there are only two kinds of languages, he says—the ones everyone curses and the ones nobody uses. Python, Java, C++ live in the first bucket because they shoulder the actual load: terabyte databases, low-latency trading, spacecraft firmware. The second bucket is littered with academic toys that look clean on a slide deck and collapse once they meet production traffic.

The punchline stings. “Perfection is the enemy of utility,” Stroustrup wrote last week in a terse addition to his personal FAQ. Translation: if your syntax never draws complaints, it probably never solved a problem worth having.

Ai did not erase the ceiling

Ai did not erase the ceiling

Generative coding assistants promised to vaporize complexity. They instead smuggled it into opaque model files. Stroustrup’s refrain: garbage-collected comfort zones still can’t give you deterministic memory layout or microsecond predictability. A GitHub Copilot snippet won’t replace the 30-year-old aerospace plug-in that keeps a 737 from falling out of the sky.

Meanwhile, the footprint of “simple” languages keeps ballooning. Import a pair of Python packages and you’ve silently shipped 20 MB of dependencies, a hidden conda runtime, and three license conflicts. The developer feels lighter; the ops team inherits the ballast.

Complexity is not the enemy—leakage is

Complexity is not the enemy—leakage is

Stroustrup’s argument is surgical. Complexity must live somewhere; the question is who gets visibility and therefore control. In C++ that surface is overt: templates, undefined behavior, strict aliasing—sharp tools, visible handles. In supposedly easier stacks the same blades exist, but they’re taped under layers of syntactic foam. When they cut you, you don’t see blood until the quarterly outage.

He offers no apology for the steep curve. “We never aimed for learn-in-a-weekend,” he told students at Princeton earlier this year. “We aimed for write-code-that-outlives-you.” The standard is still growing—concepts, coroutines, contracts—because hardware keeps growing. Ignoring that truth produces the cargo cult of rewriting the back end every 18 months when the next “simple” language drops.

Market share is the complaint metric

Market share is the complaint metric

Look at the TIOBE index top ten: every entry carries a subreddit of rants. Stroustrup’s quip flips the metric: the louder the moaning, the heavier the lifting. Complaints are a lagging indicator of relevance; silence means irrelevance.

Corporate boards hate this calculus. They budget for hype cycles, not for the moment when the new stack meets the old edge cases. That collision always arrives; only the name of the language changes.

The takeaway nobody retweets

The takeaway nobody retweets

Stroustrup offers no silver bullet, only a mirror. If you want guarantees, learn where the complexity is hiding and grab the controls. If you want weekend syntax sugar, accept that tomorrow’s outage will come gift-wrapped in the dependencies you never audited.

Meanwhile C++—“bloated”, “dead”, “legacy”—just shipped the 26th revision of its standard and runs the inference engines that tag your photos, the routers that move your packets, the games that eat your night. People still complain. That’s how you know it’s working.