Fireside Chat, Interview
Bjarne Stroustrup: C++ Zero-Overhead Principle and Object-Oriented Programming
- Best efficiency is viewed as a result of optimal abstraction, with the expectation that dedicating a year to designing high-abstraction systems that remain efficient, manageable, and reliable is necessary.
- Complex problems are predicted to require combining object-oriented programming, data abstraction, functional programming, and traditional C-style code rather than relying on a single paradigm.
- Coherent system design is expected to rely on a set of guiding rules to determine feature inclusion or exclusion, avoiding additions based on aesthetics or individual requests.
- Static type systems are anticipated to ensure reliability on reasonable hardware volumes, supporting the language's adherence to the zero-overhead principle where abstractions incur no cost compared to equivalent lower-level code.
- Proper abstractions, such as those for matrix multiplication, are expected to eliminate temporaries and enable loop fusion, potentially delivering performance superior to hand-coded lower-level alternatives.
- It is predicted that hand-coded C will generally fail to outperform C++ abstractions using standard facilities, except in cases utilizing embedded assembler to exploit hardware details unknown to the compiler.
- Achieving the zero-overhead ideal is expected to depend on progress in programming techniques, language features, and implementation techniques, requiring significant experience and practice to balance correctly.
- Success in concurrent programming is anticipated to demand knowledge spanning algorithms, lock-free techniques, compiler internals, and specific domains like graphics or web-serving.
- While a single individual possessing all necessary skills across every field is considered ideal, it is not certain that any one person can achieve this.
- Small groups of two or three people are expected to be the effective unit for integrating the diverse skills required to approach complex C++ ideals.