Episode

Bjarne Stroustrup: C++
Description
Bjarne Stroustrup is the creator of C++, a programming language that after 40 years is still one of the most popular and powerful languages in the world. Its focus on fast, stable, robust code underlies many of the biggest systems in the world that we have come to rely on as a society. If you're watching this on YouTube, many of the critical back-end component of YouTube are written in C++. Same goes for Google, Facebook, Amazon, Twitter, most Microsoft applications, Adobe applications, most database systems, and most physical systems that operate in the real-world like cars, robots, rockets that launch us into space and one day will land us on Mars. This conversation is part of the Artificial Intelligence podcast. If you would like to get more information about this podcast go to https://lexfridman.com/ai or connect with @lexfridman on Twitter, LinkedIn, Facebook, Medium, or YouTube where you can watch the video versions of these conversations. If you enjoy the podcast, please rate it 5 stars on Apple Podcasts or support it on Patreon. Here's the outline with timestamps for this episode (on some players you can click on the timestamp to jump to that point in the episode): 00:00 - Introduction 01:40 - First program 02:18 - Journey to C++ 16:45 - Learning multiple languages 23:20 - Javascript 25:08 - Efficiency and reliability in C++ 31:53 - What does good code look like? 36:45 - Static checkers 41:16 - Zero-overhead principle in C++ 50:00 - Different implementation of C++ 54:46 - Key features of C++ 1:08:02 - C++ Concepts 1:18:06 - C++ Standards Process 1:28:05 - Constructors and destructors 1:31:52 - Unified theory of programming 1:44:20 - Proudest moment
Chapters
C++ is a crucial programming language for developing fast, stable, and robust code that underlies the biggest systems we rely on as a society.
00:00 - 01:39 (01:39)
Summary
C++ is a crucial programming language for developing fast, stable, and robust code that underlies the biggest systems we rely on as a society. The language has evolved leading up to the big update in a standard in 2011 and those that have followed, including the upcoming C++20 standard.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
Bjarne Stroustrup discusses the origins of C++, the concept of object-oriented programming, and the benefits of using C++ for writing programs with flexible and efficient types.
01:52 - 13:46 (11:54)
Summary
Bjarne Stroustrup discusses the origins of C++, the concept of object-oriented programming, and the benefits of using C++ for writing programs with flexible and efficient types.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The speaker believes that learning different programming languages helps in becoming a better programmer and designer with a better understanding of machine code and architecture.
13:48 - 21:45 (07:57)
Summary
The speaker believes that learning different programming languages helps in becoming a better programmer and designer with a better understanding of machine code and architecture. He demonstrates this by writing Pong in C++ and showing it translating into 86 assembler in real-time.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The utilization of JavaScript in browsers was a significant development in enabling web development.
21:45 - 25:46 (04:00)
Summary
The utilization of JavaScript in browsers was a significant development in enabling web development. While it could have been executed better, this practice allowed for expressing mathematical notions clearly and introduced a strict type system for programming languages.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The first step in achieving reliability, performance, and security in coding is to simplify the code to make it less likely to fail.
25:46 - 32:24 (06:37)
Summary
The first step in achieving reliability, performance, and security in coding is to simplify the code to make it less likely to fail. This is important because proving system safety at a human level is a difficult task.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The speaker emphasizes the importance of static analysis in catching mistakes and ensuring the reliability of code on reasonable amounts of hardware, while enabling the utilization of various programming techniques and styles.
32:24 - 47:25 (15:01)
Summary
The speaker emphasizes the importance of static analysis in catching mistakes and ensuring the reliability of code on reasonable amounts of hardware, while enabling the utilization of various programming techniques and styles.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The speaker explores the relationship between Clang and other C++ implementations as it pertains to the development of new and previous features, and discusses the role of design, guidelines, and implementations in achieving zero overhead in concurrent programming.
47:25 - 52:53 (05:27)
Summary
The speaker explores the relationship between Clang and other C++ implementations as it pertains to the development of new and previous features, and discusses the role of design, guidelines, and implementations in achieving zero overhead in concurrent programming.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
C++ allows developers to build custom types that behave exactly like built-in types.
52:53 - 1:04:58 (12:05)
Summary
C++ allows developers to build custom types that behave exactly like built-in types. This enables developers to create abstractions that offer flexibility in object-oriented programming while reducing overhead if not needed.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The challenge of creating optimal code through generic components, such as a sort function, is the need to combine simple debugging while dragging in information from different parts of the code.
1:04:58 - 1:12:06 (07:08)
Summary
The challenge of creating optimal code through generic components, such as a sort function, is the need to combine simple debugging while dragging in information from different parts of the code. This involves generating good code, in which the code generated matches the sorting criteria given for the component.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
Andrew Sutton discusses the history and evolution of C++ templates and the introduction of concepts, which allow for more efficient code and better compiler error messages.
1:12:06 - 1:19:15 (07:08)
Summary
Andrew Sutton discusses the history and evolution of C++ templates and the introduction of concepts, which allow for more efficient code and better compiler error messages.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
The speaker suggests that businesses should ship more often to avoid delays and mishaps and that regular shipping durations will help optimize success.
1:19:15 - 1:28:21 (09:06)
Summary
The speaker suggests that businesses should ship more often to avoid delays and mishaps and that regular shipping durations will help optimize success.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
Bjarne Stroustrup emphasizes the need to create a set of principles and rules for programming language design, rather than clobbering language features together based on somebody else's ideas.
1:28:21 - 1:35:37 (07:15)
Summary
Bjarne Stroustrup emphasizes the need to create a set of principles and rules for programming language design, rather than clobbering language features together based on somebody else's ideas.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
There can be sets of principles that apply to different problem areas in fields like C++'s case, biological systems, or machine learning systems, showing convergence between these areas.
1:35:37 - 1:44:34 (08:56)
Summary
There can be sets of principles that apply to different problem areas in fields like C++'s case, biological systems, or machine learning systems, showing convergence between these areas. Although machine learning seems a bit fuzzy, it still has the essence of programming.
EpisodeBjarne Stroustrup: C++
PodcastLex Fridman Podcast
An ode to Guido van Rossum, the creator of Python programming language, for his contribution to the tech community and making the world a better place.
1:44:34 - 1:47:14 (02:39)
Summary
An ode to Guido van Rossum, the creator of Python programming language, for his contribution to the tech community and making the world a better place.