Episode

Bjarne Stroustrup: C++
listen on Spotify
1:47:19
Published: Thu Nov 07 2019
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)
listen on Spotify
C++
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
C++
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Programming Languages
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex Fridman Podcast
The utilization of JavaScript in browsers was a significant development in enabling web development.
21:45 - 25:46 (04:00)
listen on Spotify
Programming Languages
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
coding
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Programming
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
C++
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex Fridman Podcast
C++ allows developers to build custom types that behave exactly like built-in types.
52:53 - 1:04:58 (12:05)
listen on Spotify
C++
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Coding
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
C++ Templates
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Business strategies
Summary

The speaker suggests that businesses should ship more often to avoid delays and mishaps and that regular shipping durations will help optimize success.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Programming Languages
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Problem solving
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex 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)
listen on Spotify
Python
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.

Episode
Bjarne Stroustrup: C++
Podcast
Lex Fridman Podcast