Rethinking C++: Ignorance, Surface, and Deep Architecture

It’s a common refrain that C++ is an overwhelmingly complex language, but a recent post on the Embarcadero blog, “Rethinking C++,” argues that this perception is often based on a fundamental misunderstanding. The author, Volker Hillmann, suggests that we frequently confuse the complexity of a component’s implementation with the simplicity of its usage. The post introduces a clear distinction between “surface architecture” (the API you interact with) and “deep architecture” (the machinery under the hood) as a way to re-evaluate how we approach the language.

The core argument is that the goal of C++’s more advanced features should be to support a simple and intuitive surface, effectively hiding the complexity within the deep architecture. This leads to the post’s central, counter-intuitive point: when it comes to using a well-designed library, “ignorance is a virtue.” If you’re looking for a mental model that helps separate the concerns of a library user from a library implementer, this article provides a valuable framework. It offers a practical perspective on how to manage, and appreciate, C++’s power without being overwhelmed by it.

Leave a Comment

Scroll to Top