"Certainly not every good program is object-oriented, and not every object-oriented program is good"
About this Quote
Stroustrup’s line cuts through a particular kind of tech evangelism: the habit of treating a paradigm as a moral badge. In the decades when “object-oriented” became a corporate shibboleth - a checkbox for résumés, procurement, and “enterprise” seriousness - OOP was often sold less as a tool than as a guarantee of quality. He refuses that bargain. The sentence is engineered like good C++: symmetrical, minimal, and allergic to hype. By pairing two negations, he pins down a quieter truth that’s easy to forget in ideology-driven engineering cultures: design quality is upstream of vocabulary.
The subtext is a rebuke to cargo-cult architecture. You can wrap everything in classes, baptize every noun into an object, and still ship an inflexible mess. OOP can become a ritual that multiplies abstractions without increasing clarity, creating systems that are “well-structured” only in the sense that they’re hard to change. Stroustrup also protects the other side of the equation: procedural, functional, data-oriented, even messy-looking code can be excellent if it matches the problem, the performance constraints, and the team’s ability to maintain it.
Context matters: Stroustrup built C++ as a language that supports object-oriented techniques without mandating them. His credibility comes from living inside the tradeoffs - high-level modeling versus low-level control, elegance versus cost. The intent isn’t to dismiss OOP; it’s to re-center judgment. Paradigms don’t confer virtue. Engineers do, by choosing the right constraints and being honest about what they’re buying.
The subtext is a rebuke to cargo-cult architecture. You can wrap everything in classes, baptize every noun into an object, and still ship an inflexible mess. OOP can become a ritual that multiplies abstractions without increasing clarity, creating systems that are “well-structured” only in the sense that they’re hard to change. Stroustrup also protects the other side of the equation: procedural, functional, data-oriented, even messy-looking code can be excellent if it matches the problem, the performance constraints, and the team’s ability to maintain it.
Context matters: Stroustrup built C++ as a language that supports object-oriented techniques without mandating them. His credibility comes from living inside the tradeoffs - high-level modeling versus low-level control, elegance versus cost. The intent isn’t to dismiss OOP; it’s to re-center judgment. Paradigms don’t confer virtue. Engineers do, by choosing the right constraints and being honest about what they’re buying.
Quote Details
| Topic | Coding & Programming |
|---|
More Quotes by Bjarne
Add to List



