Episode

#341 – Guido van Rossum: Python and the Future of Programming
Description
Guido van Rossum is the creator of Python programming language. Please support this podcast by checking out our sponsors: - GiveDirectly: https://givedirectly.org/lex to get gift matched up to $1000 - Eight Sleep: https://www.eightsleep.com/lex to get special savings - Fundrise: https://fundrise.com/lex - InsideTracker: https://insidetracker.com/lex to get 20% off - Athletic Greens: https://athleticgreens.com/lex to get 1 month of fish oil EPISODE LINKS: Guido's Twitter: https://twitter.com/gvanrossum Guido's Website: https://gvanrossum.github.io/ Python's Website: https://python.org PODCAST INFO: Podcast website: https://lexfridman.com/podcast Apple Podcasts: https://apple.co/2lwqZIr Spotify: https://spoti.fi/2nEwCF8 RSS: https://lexfridman.com/feed/podcast/ YouTube Full Episodes: https://youtube.com/lexfridman YouTube Clips: https://youtube.com/lexclips SUPPORT & CONNECT: - Check out the sponsors above, it's the best way to support this podcast - Support on Patreon: https://www.patreon.com/lexfridman - Twitter: https://twitter.com/lexfridman - Instagram: https://www.instagram.com/lexfridman - LinkedIn: https://www.linkedin.com/in/lexfridman - Facebook: https://www.facebook.com/lexfridman - Medium: https://medium.com/@lexfridman OUTLINE: Here's the timestamps for the episode. On some podcast players you should be able to click the timestamp to jump to that time. (00:00) - Introduction (07:26) - CPython (12:38) - Code readability (17:00) - Indentation (33:36) - Bugs (45:04) - Programming fads (1:00:15) - Speed of Python 3.11 (1:25:09) - Type hinting (1:30:27) - mypy (1:35:43) - TypeScript vs JavaScript (1:51:42) - Best IDE for Python (2:01:43) - Parallelism (2:19:36) - Global Interpreter Lock (GIL) (2:29:14) - Python 4.0 (2:41:31) - Machine learning (2:51:13) - Benevolent Dictator for Life (BDFL) (3:02:49) - Advice for beginners (3:09:21) - GitHub Copilot (3:12:47) - Future of Python
Chapters
By inputting raw signals such as DNA data, fitness tracker data, and blood data into machine learning algorithms, personalized recommendations for diet and lifestyle changes can be made, based on an individual's unique needs.
00:00 - 07:37 (07:37)
Summary
By inputting raw signals such as DNA data, fitness tracker data, and blood data into machine learning algorithms, personalized recommendations for diet and lifestyle changes can be made, based on an individual's unique needs.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
This transcript discusses what programming languages are and how they work, including Python and its implementation using another programming language called C. It also explores potential reasons for why some native Chinese speakers have difficulty distinguishing between the sounds 'L' and 'R'.
07:37 - 12:22 (04:45)
Summary
This transcript discusses what programming languages are and how they work, including Python and its implementation using another programming language called C. It also explores potential reasons for why some native Chinese speakers have difficulty distinguishing between the sounds 'L' and 'R'.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The podcast discusses why it's important to format programming code in a readable way for other programmers and introduces PEPP8, the style guide for Python code.
12:22 - 17:28 (05:06)
Summary
The podcast discusses why it's important to format programming code in a readable way for other programmers and introduces PEPP8, the style guide for Python code.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
In Python programming, every block of code that belongs to the same group needs to be indented the same way.
17:28 - 28:25 (10:56)
Summary
In Python programming, every block of code that belongs to the same group needs to be indented the same way. Typically, four spaces are used as a compromise due to ancient conventions and the typical width of a computer screen in the 80s.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The creators of scripting languages had to use a naming convention to make it clear to the script processor and the human author that certain words were not actual file names but arguments.
28:25 - 35:02 (06:37)
Summary
The creators of scripting languages had to use a naming convention to make it clear to the script processor and the human author that certain words were not actual file names but arguments. As scripts evolved, a convention emerged to signify the first word on a line as the name of the program and subsequent words as file names.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
While specific technologies may become obsolete, the overall concepts they introduced or made accessible often persist.
35:02 - 48:56 (13:53)
Summary
While specific technologies may become obsolete, the overall concepts they introduced or made accessible often persist. For example, reactive web pages with code snippets responding to user actions were first introduced with Java applets.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The choices you make early on in your career can have a significant impact on your career trajectory.
48:56 - 54:14 (05:17)
Summary
The choices you make early on in your career can have a significant impact on your career trajectory. It is important to consider the community and culture surrounding a particular technology or field, as certain choices may become obsolete faster than others.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
When choosing a programming language, it's not just about the syntax.
54:14 - 1:00:46 (06:32)
Summary
When choosing a programming language, it's not just about the syntax. Other factors, such as the community, predicted growth, and what large systems are programmed in that language, should also be considered.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The concept of prime numbers can be tricky, but there are mathematical algorithms to help determine them.
1:00:46 - 1:08:11 (07:24)
Summary
The concept of prime numbers can be tricky, but there are mathematical algorithms to help determine them. By knowing a little bit about the mathematics behind prime numbers, you can estimate their value and avoid unnecessary calculations.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The integer type is a collection of functions, including add, multiply, and 30 other operations.
1:08:11 - 1:16:58 (08:47)
Summary
The integer type is a collection of functions, including add, multiply, and 30 other operations. Historically, in the first computers, using the same bit pattern for a floating point number and an integer yielded very different values.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The add integer operation is more efficient because it interprets bit patterns as integers.
1:16:58 - 1:23:40 (06:41)
Summary
The add integer operation is more efficient because it interprets bit patterns as integers. The generic add operation may be used, but it will be less efficient as it must interpret the bit patterns as a multitude of types.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
This episode explores the importance of static type checking for interpreted programming languages, where the code is not compiled and executed line-by-line, and how it can help ensure that the code's annotations are actually mapping to reality.
1:23:40 - 1:30:51 (07:11)
Summary
This episode explores the importance of static type checking for interpreted programming languages, where the code is not compiled and executed line-by-line, and how it can help ensure that the code's annotations are actually mapping to reality.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
Python and JavaScript have different cultures due to the environments they are used in.
1:30:51 - 1:39:24 (08:33)
Summary
Python and JavaScript have different cultures due to the environments they are used in. While Python has a longer history of stable working software systems, JavaScript is the primary language for web application development, making for a unique community.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The podcast discusses the evolution of Python's type checking through PEP484, how Facebook utilized the technology of their HHVM compiler, and the differences between a linter and static type checker.
1:39:24 - 1:50:06 (10:41)
Summary
The podcast discusses the evolution of Python's type checking through PEP484, how Facebook utilized the technology of their HHVM compiler, and the differences between a linter and static type checker.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
Many developers using Python for production situations are incorporating static type checkers, with several popular options available, including MyPy and PyCharm.
1:50:06 - 2:02:45 (12:39)
Summary
Many developers using Python for production situations are incorporating static type checkers, with several popular options available, including MyPy and PyCharm. While MyPy is gaining popularity, PyCharm continues to dominate the market.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
Concurrency is an abstract concept where things seem to happen simultaneously, while parallelism is the use of multiple processors or CPUs to execute multiple tasks at the same time.
2:02:45 - 2:09:25 (06:39)
Summary
Concurrency is an abstract concept where things seem to happen simultaneously, while parallelism is the use of multiple processors or CPUs to execute multiple tasks at the same time. Using the fishing and programming analogy, concurrency is like one fisherman using multiple rods while parallelism is like having multiple fishermen fishing at the same time.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The use of signs with clear indicators or an electronic display can be helpful in coordinating the use of shared resources.
2:09:25 - 2:15:14 (05:49)
Summary
The use of signs with clear indicators or an electronic display can be helpful in coordinating the use of shared resources. Asynchronous and non-blocking IO can also allow for more efficient and parallel use of resources like network connections or web servers.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The speaker discusses the use of stacks in programming and the debate over their efficiency and error-proneness, particularly when supporting multiple threads.
2:15:14 - 2:26:33 (11:18)
Summary
The speaker discusses the use of stacks in programming and the debate over their efficiency and error-proneness, particularly when supporting multiple threads. They argue that for a single CPU computer, stacks and threads can be used interchangeably but with the rise of multi-core processing, the efficiency of stacks may decline.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The possibility of a future without the global interpreter lock (GIL) in CPython, thanks to an optimized fork created by a Facebook engineer, has been discussed.
2:26:33 - 2:33:08 (06:35)
Summary
The possibility of a future without the global interpreter lock (GIL) in CPython, thanks to an optimized fork created by a Facebook engineer, has been discussed. However, the painful transition to Python 3 has made the community and core development team wary of planning for a future Python 4.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The episode discusses the evolution and advantages of third party packages compared to standard libraries in Python, highlighting how the former evolves much faster than the latter.
2:33:08 - 2:42:19 (09:10)
Summary
The episode discusses the evolution and advantages of third party packages compared to standard libraries in Python, highlighting how the former evolves much faster than the latter. It also discusses the absence of new syntactical features, modules and built-in functions from recent versions of standard libraries, with a focus on the occasional 'spring cleans' which remove modules that have remained unchanged for a significant amount of time.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
This podcast episode explores the history and importance of TensorFlow and other packages like PyTorch, NumPy, and Matplotlib in the data science community.
2:42:19 - 2:50:53 (08:34)
Summary
This podcast episode explores the history and importance of TensorFlow and other packages like PyTorch, NumPy, and Matplotlib in the data science community. The speaker highlights how these libraries help data scientists to manipulate data more efficiently and provide useful visualizations.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The annual engineering reorg at Dropbox was an unpleasant tradition where directors were reshuffled every year.
2:50:53 - 3:00:03 (09:10)
Summary
The annual engineering reorg at Dropbox was an unpleasant tradition where directors were reshuffled every year. Meanwhile, the Python programming language has a clear direction and principles despite evolving over time.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
This podcast episode delves into different career paths available to engineers, from becoming a manager to founding a startup or moving to a different company.
3:00:03 - 3:13:46 (13:42)
Summary
This podcast episode delves into different career paths available to engineers, from becoming a manager to founding a startup or moving to a different company. It also encourages aspiring engineers to take on coding challenges or automation projects as a way to learn and improve their skills.
Episode#341 – Guido van Rossum: Python and the Future of Programming
PodcastLex Fridman Podcast
The mechanisms of replication and abstraction are similar in both natural and programming languages, and carry across different levels of organisms and civilizations, from single-celled organisms to intelligent civilizations.
3:13:46 - 3:22:48 (09:02)
Summary
The mechanisms of replication and abstraction are similar in both natural and programming languages, and carry across different levels of organisms and civilizations, from single-celled organisms to intelligent civilizations.