Episode

#131 – Chris Lattner: The Future of Computing and Programming Languages
listen on Spotify
2:47:38
Published: Mon Oct 19 2020
Description

Chris Lattner is a world-class software & hardware engineer, leading projects at Apple, Tesla, Google, and SiFive. Please support this podcast by checking out our sponsors: - Blinkist: https://blinkist.com/lex and use code LEX to get a free week of premium - Neuro: https://www.getneuro.com and use code LEX to get 15% off - MasterClass: https://masterclass.com/lex to get 15% off annual sub - Cash App: https://cash.app/ and use code LexPodcast to get $10 EPISODE LINKS: Chris's Twitter: https://twitter.com/clattner_llvm Chris's Website: http://nondot.org/sabre/ 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/LexFridmanPage - 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:12 - Working with Elon Musk, Steve Jobs, Jeff Dean 12:42 - Why do programming languages matter? 18:42 - Python vs Swift 29:35 - Design decisions 34:53 - Types 38:41 - Programming languages are a bicycle for the mind 41:13 - Picking what language to learn 47:12 - Most beautiful feature of a programming language 56:36 - Walrus operator 1:06:03 - LLVM 1:11:15 - MLIR compiler framework 1:15:21 - SiFive semiconductor design 1:27:56 - Moore's Law 1:31:09 - Parallelization 1:35:37 - Swift concurrency manifesto 1:46:26 - Running a neural network fast 1:52:03 - Is the universe a quantum computer? 1:57:44 - Effects of the pandemic on society 2:14:56 - GPT-3 2:19:15 - Software 2.0 2:32:41 - Advice for young people 2:37:24 - Meaning of life

Chapters
Chris Lattner, senior vice president of platform engineering at Sci-Fi, aims to make chip design faster, better, and cheaper.
00:00 - 01:53 (01:53)
listen on Spotify
Chip Design
Summary

Chris Lattner, senior vice president of platform engineering at Sci-Fi, aims to make chip design faster, better, and cheaper. He has worked as a software innovator and leader at Apple and Tesla, and now brings his expertise to revolutionize chip design.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
For $100 a year, subscribers can have an all access pass to watch courses from experts like Chris Hadfield, Neil deGrasse Tyson, Will Wright, Carlos Santana, and Gary Kasparov among others, covering various topics ranging from space exploration, scientific thinking and communication, music, chess, and poker.
01:53 - 08:25 (06:31)
listen on Spotify
Online Courses
Summary

For $100 a year, subscribers can have an all access pass to watch courses from experts like Chris Hadfield, Neil deGrasse Tyson, Will Wright, Carlos Santana, and Gary Kasparov among others, covering various topics ranging from space exploration, scientific thinking and communication, music, chess, and poker. The platform also aims to explore and feature more experts in the cryptocurrency space in the future.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
This episode discusses the different trade-offs in programming language design that affect our preferences in choosing and improving programming languages, emphasizing the goal of portability across different hardware.
08:25 - 17:48 (09:23)
listen on Spotify
Programming Languages.
Summary

This episode discusses the different trade-offs in programming language design that affect our preferences in choosing and improving programming languages, emphasizing the goal of portability across different hardware.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Python is good for building libraries, but when it comes to building a machine learning framework, performance becomes a concern.
17:48 - 22:51 (05:02)
listen on Spotify
Machine Learning
Summary

Python is good for building libraries, but when it comes to building a machine learning framework, performance becomes a concern. Swift has features like value semantics that provide mathematical object-like behavior.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Good design in programming is not just a matter of preference, it is something that can be felt by users.
22:51 - 32:26 (09:35)
listen on Spotify
Programming
Summary

Good design in programming is not just a matter of preference, it is something that can be felt by users. Including powerful tools like classes and data structures can lead to better productivity and performance.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Programming language design involves weighing trade-offs between different factors such as power, efficiency, and memory management, among others.
32:26 - 37:39 (05:13)
listen on Spotify
Programming Languages
Summary

Programming language design involves weighing trade-offs between different factors such as power, efficiency, and memory management, among others. Good design requires a core team of experienced individuals who can analyze the ramifications of each choice and make informed decisions.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Some programming languages may fit a person's particular lifestyle or thinking style better than others, allowing them to be more productive in development and debugging stages.
37:39 - 43:14 (05:34)
listen on Spotify
Programming Languages
Summary

Some programming languages may fit a person's particular lifestyle or thinking style better than others, allowing them to be more productive in development and debugging stages. The main purpose of a programming language is to make humans more productive.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Finding a project that the language is good for can help with learning a programming language, as well as utilizing asserts and focusing on types.
43:14 - 46:28 (03:13)
listen on Spotify
Programming
Summary

Finding a project that the language is good for can help with learning a programming language, as well as utilizing asserts and focusing on types.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The flexibility of programming languages allows for the creation of high quality libraries that feel native to the compiler without being built into it.
46:28 - 52:18 (05:50)
listen on Spotify
Programming Languages
Summary

The flexibility of programming languages allows for the creation of high quality libraries that feel native to the compiler without being built into it. This allows for full expressivity and enables truly beautiful libraries.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The design of programming languages involves various tradeoffs, such as optimizing for teachability and clarity versus optimizing for bugs and performance.
52:18 - 58:27 (06:08)
listen on Spotify
Programming Language Design
Summary

The design of programming languages involves various tradeoffs, such as optimizing for teachability and clarity versus optimizing for bugs and performance.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The complexity of defining types in Python does not affect syntactic sugar, but it can contribute to making the language more complicated.
58:27 - 1:03:22 (04:55)
listen on Spotify
Python
Summary

The complexity of defining types in Python does not affect syntactic sugar, but it can contribute to making the language more complicated. The negative feedback from even a small percentage of the Python community can have a significant impact.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Making tough decisions as a leader can be challenging, especially when dealing with passionate communities and established companies.
1:03:22 - 1:06:25 (03:02)
listen on Spotify
Leadership & Management
Summary

Making tough decisions as a leader can be challenging, especially when dealing with passionate communities and established companies. The burden is higher when stepping into a situation that has already been working for a long time.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Starting with strong principles helps to make wise decisions and communicate them effectively.
1:06:25 - 1:10:53 (04:27)
listen on Spotify
Decision Making
Summary

Starting with strong principles helps to make wise decisions and communicate them effectively. It acts as a defense mechanism for guiding future discussions and providing case law for decisions.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
In this episode, the hosts discuss the growing distrust of new technology due to its unfamiliarity and the potential for exponential growth in specialized infrastructure.
1:10:53 - 1:15:15 (04:21)
listen on Spotify
Technology
Summary

In this episode, the hosts discuss the growing distrust of new technology due to its unfamiliarity and the potential for exponential growth in specialized infrastructure. They also explore how MLIR is providing faster and more effective ways to build domain-specific compilers.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The process of designing and writing the code for computer chips and then handing off to fabs is a well-studied, old problem.
1:15:15 - 1:18:42 (03:27)
listen on Spotify
Computer Chips
Summary

The process of designing and writing the code for computer chips and then handing off to fabs is a well-studied, old problem. However, the implementations of different instruction sets such as x86 and ARM vary depending on the desired specifications of the chip.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The world of sci-fi may lead to more custom chip building, but in reality, different companies and historical reasons may lead to different instruction sets, particularly in the embedded microcontroller space.
1:18:42 - 1:27:41 (08:58)
listen on Spotify
Chip Building
Summary

The world of sci-fi may lead to more custom chip building, but in reality, different companies and historical reasons may lead to different instruction sets, particularly in the embedded microcontroller space.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The design of programming languages need to consider massive parallelization as a first principle to enable running machine learning on current and future hardware like TPUs and ASICs.
1:27:41 - 1:35:10 (07:28)
listen on Spotify
Programming Languages
Summary

The design of programming languages need to consider massive parallelization as a first principle to enable running machine learning on current and future hardware like TPUs and ASICs. New code formatting tools need to be invented to support this new paradigm.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Swift starts with a default asynchronous communication pattern to ensure memory safety, but once you move beyond this, it's important to consider the programmer model and the potential for sharing memory among communicating threads or computers.
1:35:10 - 1:42:09 (06:58)
listen on Spotify
Swift
Summary

Swift starts with a default asynchronous communication pattern to ensure memory safety, but once you move beyond this, it's important to consider the programmer model and the potential for sharing memory among communicating threads or computers.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Compiler people utilize tricks to make unmodified code run faster, often optimizing memory usage to achieve 10x speedup.
1:42:09 - 1:44:40 (02:31)
listen on Spotify
Compiler
Summary

Compiler people utilize tricks to make unmodified code run faster, often optimizing memory usage to achieve 10x speedup. However, these tricks can sometimes defeat the patterns and heuristics used by compilers, making it difficult to optimize code without understanding the inner workings of the compiler.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Machine learning serves as an outstanding abstraction layer that has revolutionized the working of the compiler people.
1:44:40 - 1:50:11 (05:31)
listen on Spotify
Machine Learning
Summary

Machine learning serves as an outstanding abstraction layer that has revolutionized the working of the compiler people. The programming model and operations composed by machine learning nerds have raised levels of abstraction high enough to enable auto-parallelizing compilers.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The importance of specific error messages and the mystery of the architecture of a simulated world are discussed, as well as the necessity for quantum computing to accurately implement quantum systems in the simulation.
1:50:12 - 1:54:15 (04:03)
listen on Spotify
Technology
Summary

The importance of specific error messages and the mystery of the architecture of a simulated world are discussed, as well as the necessity for quantum computing to accurately implement quantum systems in the simulation.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Is there a useful problem that can be solved with quantum computers that makes it worth the economic cost?
1:54:15 - 1:59:11 (04:55)
listen on Spotify
Quantum Computing
Summary

Is there a useful problem that can be solved with quantum computers that makes it worth the economic cost? We may be too early in the development cycle to know for sure, but the potential for solving problems that were unsolvable before and making the world better economically and otherwise, exists.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The pandemic has forced people to act and think differently, leading to more entrepreneurial projects and businesses.
1:59:11 - 2:03:52 (04:40)
listen on Spotify
Entrepreneurship
Summary

The pandemic has forced people to act and think differently, leading to more entrepreneurial projects and businesses. The global crisis and economic downturn have also caused many businesses to shut down, leading to new opportunities for entrepreneurs.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The emotional reactions on social media are not what's bothersome, but rather how to engage and educate those who react impulsively without thoughtful consideration.
2:03:52 - 2:13:55 (10:03)
listen on Spotify
Social Media
Summary

The emotional reactions on social media are not what's bothersome, but rather how to engage and educate those who react impulsively without thoughtful consideration.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The podcast discusses the challenges and opportunities of scaling deep learning models to run on systems with hundreds of trillions of parameters and run for thousands of years.
2:13:56 - 2:19:22 (05:25)
listen on Spotify
Deep Learning
Summary

The podcast discusses the challenges and opportunities of scaling deep learning models to run on systems with hundreds of trillions of parameters and run for thousands of years. They explore the idea of sparsely gated mixture of experts and algorithmic improvement.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
This episode explores the potential of deep learning and differentiable programming as well as the importance of combining different techniques to create new tools for solving problems.
2:19:22 - 2:26:18 (06:56)
listen on Spotify
Machine learning
Summary

This episode explores the potential of deep learning and differentiable programming as well as the importance of combining different techniques to create new tools for solving problems.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The idea of using GPT-3 to generate programming code that detects errors and replaces certain aspects of programming, such as program synthesis, is discussed.
2:26:18 - 2:29:44 (03:26)
listen on Spotify
GPT-3, programming, code generation, Swift, program synthesis
Summary

The idea of using GPT-3 to generate programming code that detects errors and replaces certain aspects of programming, such as program synthesis, is discussed. The potential of using GPT-3 API to generate Swift code is also considered.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
The transcript discusses the importance of improving pattern matching and higher level logic to achieve correctness in automated code generation, using the example of typing in specifications like "I want a red button with the text that says hello".
2:29:44 - 2:32:10 (02:25)
listen on Spotify
Code Generation
Summary

The transcript discusses the importance of improving pattern matching and higher level logic to achieve correctness in automated code generation, using the example of typing in specifications like "I want a red button with the text that says hello".

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
This podcast discusses the importance of embracing change and being willing to do the hard work required to make change happen, whether it's implementing a new programming language or advancing science and philosophy.
2:32:10 - 2:37:00 (04:50)
listen on Spotify
Change
Summary

This podcast discusses the importance of embracing change and being willing to do the hard work required to make change happen, whether it's implementing a new programming language or advancing science and philosophy.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
Focusing on personal challenges and contributions, like guiding kids, engaging in the community, and making meaningful contributions at work, can help engineer a positive future and prevent a rise in negative behaviors.
2:37:01 - 2:45:58 (08:57)
listen on Spotify
Personal contribution
Summary

Focusing on personal challenges and contributions, like guiding kids, engaging in the community, and making meaningful contributions at work, can help engineer a positive future and prevent a rise in negative behaviors.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast
On this podcast, Chris Latner discusses his past work at Apple and Tesla, and his current project at SiFive, a company building out a freelance marketplace for hardware developers.
2:45:58 - 2:47:18 (01:19)
listen on Spotify
Chris Latner
Summary

On this podcast, Chris Latner discusses his past work at Apple and Tesla, and his current project at SiFive, a company building out a freelance marketplace for hardware developers.

Episode
#131 – Chris Lattner: The Future of Computing and Programming Languages
Podcast
Lex Fridman Podcast