Products
Features
YouTube Video Summarizer
Summarize YouTube videos
Web & PDF Highlighter
Highlight web pages & PDFs
Chat with PDF
Ask any PDF questions with AI
Ask AI Clone
Chat with your highlights & memories
Audio Transcriber
Transcribe audio files to text
Glasp Reader
Read and highlight articles
Kindle Highlight Export
Export your Kindle highlights
Idea Hatch
Hatch ideas from your highlights
Integrations
Obsidian Plugin
Notion Integration
Pocket Integration
Instapaper Integration
Medium Integration
Readwise Integration
Snipd Integration
Hypothesis Integration
Apps & Extensions
Chrome Extension
Safari Extension
Edge Add-ons
Firefox Add-ons
iOS App
Android App
Discover
Discover
Ideas
Discover new ideas and insights
Articles
Curated articles and insights
Books
Book recommendations by great minds
Posts
Essays and notes from readers
Quotes
Inspiring quotes collection
Videos
Curated videos and summaries
Explore Glasp
Glasp Newsletter
Weekly insights and updates
Glasp Talk
Interview series with great minds
Glasp Blog
Latest news and articles
Glasp Use Cases
Learn how others use Glasp
Build & Support
Glasp API
Access Glasp's API for developers
MCP Connector
Connect Glasp to Claude & ChatGPT
Community
Glasp Reddit Community
Students
Student discount and benefits
FAQs
Frequently Asked Questions
AboutPricing
DashboardLog inSign up

Bjarne Stroustrup: Learn More than One Programming Language

134.9K views
•
November 10, 2019
by
Lex Fridman
YouTube video player
Bjarne Stroustrup: Learn More than One Programming Language

TL;DR

Knowing multiple programming languages helps improve programming skills and design, and allows for better expression of ideas and optimization.

Transcript

you've you've said that it's good for any professional programmer to know at least five languages speaking about a variety of languages that you've taken inspiration from and you've listed the yours as being at least at the time C++ obviously Java Python Ruby and JavaScript can you first of all update that list modify it you don't have to be constr... Read More

Key Insights

  • 🌐 Learning multiple programming languages is beneficial for professional programmers as it enhances their skills and thinking abilities, similar to learning different natural languages and cultures.
  • 💡 To become a better programmer and designer, it is important to have knowledge of low-level programming languages such as machine code and C++. Understanding machine architecture and optimizing code can greatly improve performance.
  • 🚀 Optimizing code through abstraction mechanisms and using modern C++ features can lead to compact and high-performance code, as demonstrated in a keynote by Jason Turner, where he programmed Pong and showcased the evolution of code and abstractions.
  • 🔍 Functional languages like Haskell and Clojure offer valuable lessons in expressing mathematical concepts clearly and having strict type systems. Learning from functional languages enhances problem-solving abilities.
  • 💻 Having a language for rapid prototyping can be beneficial. Options like JavaScript, Python, and Ruby allow for quick iteration and development.
  • 🌍 Learning different programming languages helps in understanding different paradigms and commonalities, enabling programmers to become more versatile and adaptable.
  • 🧠 Knowledge of diverse languages improves critical thinking skills and fosters creativity, as each language brings its own unique perspective and approaches to problem-solving.
  • ️ Programming languages have evolved over time, with modern languages like C++ providing advanced features and optimizing compilers that generate cleaner and faster code compared to low-level languages.
  • 📊 Visualization tools like Compiler Explorer enable developers to see the impact of code changes and how abstractions affect the resulting assembly code, highlighting the importance of abstraction and optimization in programming.

Install to Summarize YouTube Videos and Get Transcripts

Explore YouTube Video Summarizer or Get YouTube Transcript Extractor

Questions & Answers

Q: Why is it important for programmers to know multiple languages?

It is important for programmers to know multiple languages because it helps in improving programming skills and design. By learning different languages, programmers gain insights into different paradigms and commonalities, allowing them to become better programmers and designers.

Q: Which low-level language is recommended to learn for optimization purposes?

It is recommended to learn machine code and C++ for optimization purposes. Understanding machine code and machine architecture helps in optimizing code for performance. Additionally, using abstraction mechanisms in C++ allows for writing compact high-performance code.

Q: What are the benefits of learning functional languages?

Learning functional languages like Haskell and ML provides benefits such as expressing mathematical notions clearly and having strict type systems. These languages allow programmers to write code that is concise and expressive, making it easier to work with mathematical concepts.

Q: Why is it important to have a language for quickly churning out code?

Having a language for quickly churning out code is important because it allows programmers to prototype and iterate ideas rapidly. Languages like JavaScript, Python, and Ruby are often used for this purpose, as they offer flexibility and ease of use for quick development.

Q: Can you give an example of the benefits of abstraction and optimization in C++?

Yes, there was a keynote by Jason Turner where he programmed pong on a microcontroller using C++. He started with low-level code and gradually improved his abstractions, resulting in cleaner and more maintainable code. The compiler-generated assembly code was significantly better than hand-written assembly, showcasing the power of abstractions in C++.

Summary

In this video, the speaker discusses the importance of learning multiple programming languages and the inspirations they provide. They mention that knowing at least five languages is beneficial for professional programmers. The speaker then talks about their own list, which originally included C++, Java, Python, Ruby, and JavaScript. However, they state that the number itself is not as important as the idea of learning different paradigms and the commonalities among languages. They also highlight the significance of understanding low-level languages like machine code and the role they play in optimizing performance. Additionally, the speaker emphasizes the value of functional languages for expressing mathematical concepts clearly and the importance of having a language for quickly prototyping solutions.

Questions & Answers

Q: How many languages does the speaker recommend knowing as a professional programmer?

According to the speaker, it is good to know at least five languages, although the exact number is not as important as the idea of learning different paradigms and commonalities among languages.

Q: Which languages did the speaker include in their original list of inspirations?

The speaker's original list of languages included C++, Java, Python, Ruby, and JavaScript.

Q: Why does the speaker recommend knowing low-level languages like machine code?

The speaker believes that understanding machine code and machine architecture is important for appreciating and optimizing the performance of higher-level languages like C++. It allows programmers to have a deeper understanding of the underlying hardware and optimize code for better performance.

Q: What did the speaker mean by "going low-level is not actually what gives you the performance"?

The speaker suggests that while low-level languages like C can offer performance benefits, the key to achieving high-performance code lies in expressing ideas cleanly and allowing the optimizer to understand the code. They believe that using abstraction mechanisms provided by languages like C++ can lead to compact and high-performance code.

Q: Can you provide an example or demonstration of writing high-performance code using C++?

The speaker mentions a keynote by Jason Turner at the CPP Khan conference, where Turner programmed the game Pong using C++ on a Motorola 6800 microcontroller. He showcased the process of starting with low-level code and gradually improving abstractions, all visible in real-time through the use of the Compiler Explorer tool. The code became cleaner, easier to maintain, and shrunk in size, thanks to the abstractions provided by C++.

Q: Which languages does the speaker suggest for learning mathematical concepts and strict typing?

The speaker recommends functional languages like Haskell, ML, or any other functional language. They emphasize that such languages allow for expressing mathematical notions clearly and have a strict and powerful type system.

Q: What language does the speaker recommend for quickly prototyping solutions?

The speaker suggests using JavaScript, Python, or Ruby for quickly churning out prototypes or solutions due to their ease of use and rapid development capabilities.

Takeaways

In summary, the speaker advocates for professional programmers to have knowledge of multiple programming languages. They emphasize the importance of learning different paradigms and commonalities among languages. Understanding low-level languages like machine code can aid in optimizing performance in higher-level languages. Functional languages provide clarity for expressing mathematical concepts and strict typing, while languages like JavaScript, Python, or Ruby are suited for rapid prototyping. Overall, the speaker encourages programmers to continually expand their language knowledge to enhance their skills and understanding.

Summary & Key Takeaways

  • Knowing multiple programming languages, such as C++, Java, Python, Ruby, and JavaScript, can improve programming skills and design.

  • Understanding low-level languages like machine code and C++ allows for better optimization and performance.

  • Learning functional languages like Haskell and ML helps in expressing mathematical notions clearly and strict type systems.


Read in Other Languages (beta)

English

Share This Summary 📚

Summarize YouTube Videos and Get Video Transcripts with 1-Click

Download browser extensions on:

Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator

Explore More Summaries from Lex Fridman 📚

RZA and Lex Fridman play chess thumbnail
RZA and Lex Fridman play chess
Lex Fridman
Botez Sisters: Chess, Streaming, and Fame | Lex Fridman Podcast #319 thumbnail
Botez Sisters: Chess, Streaming, and Fame | Lex Fridman Podcast #319
Lex Fridman Podcast
Jonathan Haidt: The Case Against Social Media | Lex Fridman Podcast #291 thumbnail
Jonathan Haidt: The Case Against Social Media | Lex Fridman Podcast #291
Lex Fridman
Saifedean Ammous: Bitcoin, Anarchy, and Austrian Economics | Lex Fridman Podcast #284 thumbnail
Saifedean Ammous: Bitcoin, Anarchy, and Austrian Economics | Lex Fridman Podcast #284
Lex Fridman Podcast
Marc Andreessen: Future of the Internet, Technology, and AI | Lex Fridman Podcast #386 thumbnail
Marc Andreessen: Future of the Internet, Technology, and AI | Lex Fridman Podcast #386
Lex Fridman Podcast
Eating One Meal a Day (Jack Dorsey) | AI Podcast Clips thumbnail
Eating One Meal a Day (Jack Dorsey) | AI Podcast Clips
Lex Fridman

Summarize YouTube Videos and Get Video Transcripts with 1-Click

Download browser extensions on:

Try YouTube Summary with ChatGPT & Claude or YouTube Transcript Generator

Apps & Extensions

  • Chrome Extension
  • Safari Extension
  • Edge Add-ons
  • Firefox Add-ons
  • iOS App
  • Android App

Key Features

  • YouTube Video Summarizer
  • Web & PDF Summarizer
  • Web & PDF Highlighter
  • Chat with PDF
  • Ask AI Clone
  • Audio Transcriber
  • Glasp Reader
  • Kindle Highlight Export
  • Idea Hatch

Integrations

  • Obsidian Plugin
  • Notion Integration
  • Pocket Integration
  • Instapaper Integration
  • Medium Integration
  • Readwise Integration
  • Snipd Integration
  • Hypothesis Integration

More Features

  • APIs
  • MCP Connector
  • Blog & Post
  • Embed Links
  • Image Highlight
  • Personality Test
  • Quote Shots

Company

  • About us
  • Blog
  • Community
  • FAQs
  • Job Board
  • Newsletter
  • Pricing
Terms

•

Privacy

•

Guidelines

© 2026 Glasp Inc. All rights reserved.