C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole... — Bjarne Stroustrup

C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg.

Author: Bjarne Stroustrup

Insight: Most of us know the feeling of picking a tool that seems simple at first, then realizing too late that its simplicity comes with hidden costs. This quote about programming languages captures something universal about how we trade complexity for safety, often without realizing what we're actually gambling with. The insight cuts both ways. Yes, C is forgiving in a way that lets you make quick, careless mistakes—but you notice them fast. C++ adds guardrails and sophisticated features meant to prevent those mistakes, but when something does go wrong despite all that protection, the failure tends to be catastrophic and harder to diagnose. It's the difference between a surface cut you can see and treat versus internal bleeding you didn't know was happening. This applies beyond code. We see it in financial systems built for sophistication rather than simplicity, in relationships where unspoken assumptions pile up beneath surface agreement, or in complex diets that work brilliantly until they suddenly don't. The lesson isn't that simplicity is always better—it's that we should be honest about the real cost of the tools we choose, whether they're programming languages, systems, or habits. The fancier the tool, the more completely you need to understand it before disaster strikes.

Source: The C++ Programming Language (3rd Edition), p. 7, 1997

C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg.

Bjarne StroustrupThe C++ Programming Language (3rd Edition), p. 7, 1997

Sophistication hides bigger failures

Most of us know the feeling of picking a tool that seems simple at first, then realizing too late that its simplicity comes with hidden costs. This quote about programming languages captures something universal about how we trade complexity for safety, often without realizing what we're actually gambling with.

The insight cuts both ways. Yes, C is forgiving in a way that lets you make quick, careless mistakes—but you notice them fast. C++ adds guardrails and sophisticated features meant to prevent those mistakes, but when something does go wrong despite all that protection, the failure tends to be catastrophic and harder to diagnose. It's the difference between a surface cut you can see and treat versus internal bleeding you didn't know was happening.

This applies beyond code. We see it in financial systems built for sophistication rather than simplicity, in relationships where unspoken assumptions pile up beneath surface agreement, or in complex diets that work brilliantly until they suddenly don't. The lesson isn't that simplicity is always better—it's that we should be honest about the real cost of the tools we choose, whether they're programming languages, systems, or habits. The fancier the tool, the more completely you need to understand it before disaster strikes.

Comments

Sign in to leave a comment or reply to one.

Sign in

Bjarne Stroustrup

Bjarne Stroustrup is a Danish-born computer scientist known for creating the C++ programming language. He worked at Bell Labs, AT&T, and Texas A&M University, and is recognized for his significant contributions to the field of computer science through the development of C++, which has become one of the most widely used programming languages in the world.

Graph

Related