Foreword by Scott Meyers

By any measure, C++ has been a tremendous success, but even its most ardent proponents won’t deny that it’s a complicated beast. This complexity influenced the design of C++’s most widely used successors, Java and C#. Both strove to avoid C++’s complexity—to provide most of its functionality in an easier-to-use package.

Complexity reduction took two basic forms. One was elimination of “complicated” language features. C++’s need for manual memory management, for example, was obviated by garbage collection. Templates were deemed to fail the cost/benefit test, so the initial versions of these languages chose to exclude anything akin to C++’s support for generics.

The other form of complexity reduction involved replacing ...

Get The D Programming Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.