Published Sep 3, 2019

Episode 91: Kevlin Henney on C++

Kevlin Henney delves into the evolution, cultural impact, and complex features of C++, highlighting its historical significance and ongoing relevance in modern software development, while offering insights into template metaprogramming, idioms, and design patterns that define the language's power and complexity.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Origins

    C++ has its roots as an extension of C, designed to offer more sophisticated systems programming capabilities. explains that C++ was created to provide a systems language with advanced features beyond those available in C, allowing for greater abstraction and flexibility in data structures 1. This evolution was driven by the need for a language that could handle complex systems programming tasks while maintaining control over low-level operations. Henney notes, "A systems language is a language in which you can build pretty much anything and you can control the parameters that you care about" 2.

       

    Language Ages

    The evolution of C++ can be divided into distinct ages, each marked by significant advancements and standardizations. Henney describes the early stages of C++ as characterized by its object-oriented features, such as single inheritance and virtual functions, which were influenced by languages like Simula and Algol 65 3. The upcoming "fourth age" promises further enhancements, particularly in templates and type systems, reflecting the language's adaptability and growth 4. He humorously remarks on the complexity of templates, saying, "The length of the error messages. Okay, that's the cynical response" 4.

       

    Modern Relevance

    Despite perceptions of obsolescence, C++ remains vital in certain domains, particularly in systems and embedded programming. Henney argues that while C++ may not be as prominent in media as languages like Java, it continues to be essential for tasks requiring direct hardware interaction and performance optimization 5. He compares C++ to "jeans and t-shirts," emphasizing its practicality over trendiness 6. Henney states, "It's not necessarily sexy and fashionable, but as with fashion, if we look at the world of fashion, for instance, inspiration, because it is somewhat like software development" 6.

Related Episodes