Bjarne Stroustrup: Learn More than One Programming Language

Lex Fridman · Beginner ·📰 AI News & Updates ·6y ago

Key Takeaways

Bjarne Stroustrup emphasizes the importance of learning multiple programming languages for a career in software development

Full 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 constrained to just five but can you describe what you picked up also from each of these languages how you see them as inspirations for even you're working with C++ this is a very hard question to answer so about languages you should know languages I I reckon I knew about 25 or thereabouts when I did C++ it was easy in those days because the languages were smaller and you didn't have to learn a whole programming environment and such to do it you you could learn the language quite easily and it's good to learn so many languages and I imagine just like with natural language for communication there's different paradigms that emerge in all of them yeah but there's commonalities and so on so I picked five out of ahead big five out of a hat obviously the important thing that the number is not one that's right it's like I don't like I mean if you're mono clot you are likely to think that your own cultures the only ones pair is everybody else's a good learning of a foreign language and a foreign culture is important it helps you think and be a better person with programming languages you become a better programmer better designer with the second language now once you've got to the weight of five is not that long it's the second one that's most important and then when I had to pick five I sort of thinking what kinds of languages are there well there's a really low level stuff it's good it's actually good to know machine code movie very still sorry even today even today the C++ optimizer is right there a machine code than I do yes but I don't think I could appreciate them if I actually didn't understand machine code and machine architecture at least in in my position I have to understand a bit of it because you mess up the cache and you're off in performance by a factor of 100 right shouldn't be that if you are interested in higher performance or the size of the computer you have to deploy so so I would go as a simpler I used to mention C but these days going low-level is not actually what gives you the performance it is to express your ideas so cleanly that you can think about it and the optimizer can understand what you're up to my favourite way of optimizing these days is to throw out the clever bits and see if it's dawn runs fast and sometimes it runs faster so I need the abstraction mechanisms or something like C++ to write compact high-performance code there was a beautiful keynote by Jason Turner at the CPP Khan a couple of years ago where he decided he was going to program pong on Motorola 6800 I think it was and he says well this is relevant because it looks like a microcontroller it has specialized hardware it has not very much memory and it's relatively slow and so he shows in real time how he writes pong starting with fairly straightforward low-level stuff improving his abstractions and what he's doing he's writing C++ and it translate into in 286 assembler which you can do with playing and you can see it in real-time it's the compiler Explorer which you can use on the web and then he wrote a little program that translated 86 assembler into Motorola has simpler and so he types and you can see this thing in real time while you can see it in real time and even if you can't read the assembly code you can just see it his code gets better the code the assembler gets Kamala he increases the abstraction level uses C++ 11 as it were better this code gets clean that get easier maintain the code shrinks and it keeps shrinking and I could not in any reasonable amount of time write that a simpler as good as the compiler generated from really quite nice modern C++ and I'll go as far as to say the the thing that looked like C was significantly uglier and smaller when it becames and and larger when it became machine code so what the the abstractions that can be optimized important I would love to see that kind of visualization larger code bases yeah there might be blood a few can't show a larger code base in a one-hour talk and to have it fit on the screen right so that C is if you are so my two languages would be machine code and C++ and then I think you can learn a lot from the functional languages so pig has pralaya male I don't care which I think actually you you'll you'll learn the same lessons of expressing especially mathematical notions really clearly and having the type system that's really strict and then you should probably have a language for sort of quickly churning out something you could pick JavaScript you could be Pig Python you could pick Ruby you

Original Description

This is a clip from a conversation with Bjarne Stroustrup from Nov 2019. New full episodes are released once or twice a week and 1-2 new clips or a new non-podcast video is released on all other days. You can watch the full conversation here: https://www.youtube.com/watch?v=uTxRF5ag27A (more links below) Podcast full episodes playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4 Podcasts clips playlist: https://www.youtube.com/playlist?list=PLrAXtmErZgOeciFP3CBCIEElOJeitOr41 Podcast website: https://lexfridman.com/ai Podcast on Apple Podcasts (iTunes): https://apple.co/2lwqZIr Podcast on Spotify: https://spoti.fi/2nEwCF8 Podcast RSS: https://lexfridman.com/category/ai/feed/ Note: I select clips with insights from these much longer conversation with the hope of helping make these ideas more accessible and discoverable. Ultimately, this podcast is a small side hobby for me with the goal of sharing and discussing ideas. I did a poll and 92% of people either liked or loved the posting of daily clips, 2% were indifferent, and 6% hated it, some suggesting that I post them on a separate YouTube channel. I hear the 6% and partially agree, so am torn about the whole thing. I tried creating a separate clips channel but the YouTube algorithm makes it very difficult for that channel to grow. So for a little while, I'll keep posting clips on this channel. I ask for your patience and to see these clips as supporting the dissemination of knowledge contained in nuanced discussion. If you enjoy it, consider subscribing, sharing, and commenting. Bjarne Stroustrup is the creator of C++, a programming language that after 34 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 G
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from Lex Fridman · Lex Fridman · 0 of 60

← Previous Next →
1 Ido Portal: Movement
Ido Portal: Movement
Lex Fridman
2 Ryan Hall: Moral Victory
Ryan Hall: Moral Victory
Lex Fridman
3 Jimmy Pedro: Judo | Take It Uneasy Podcast
Jimmy Pedro: Judo | Take It Uneasy Podcast
Lex Fridman
4 Foundations of Deep Learning (Hugo Larochelle, Twitter)
Foundations of Deep Learning (Hugo Larochelle, Twitter)
Lex Fridman
5 TensorFlow Tutorial (Sherry Moore, Google Brain)
TensorFlow Tutorial (Sherry Moore, Google Brain)
Lex Fridman
6 Nuts and Bolts of Applying Deep Learning (Andrew Ng)
Nuts and Bolts of Applying Deep Learning (Andrew Ng)
Lex Fridman
7 Sequence to Sequence Deep Learning (Quoc Le, Google)
Sequence to Sequence Deep Learning (Quoc Le, Google)
Lex Fridman
8 Torch Tutorial (Alex Wiltschko, Twitter)
Torch Tutorial (Alex Wiltschko, Twitter)
Lex Fridman
9 Theano Tutorial (Pascal Lamblin, MILA)
Theano Tutorial (Pascal Lamblin, MILA)
Lex Fridman
10 Deep Reinforcement Learning (John Schulman, OpenAI)
Deep Reinforcement Learning (John Schulman, OpenAI)
Lex Fridman
11 Deep Learning for Speech Recognition (Adam Coates, Baidu)
Deep Learning for Speech Recognition (Adam Coates, Baidu)
Lex Fridman
12 Deep Learning for Natural Language Processing (Richard Socher, Salesforce)
Deep Learning for Natural Language Processing (Richard Socher, Salesforce)
Lex Fridman
13 Foundations of Unsupervised Deep Learning (Ruslan Salakhutdinov, CMU)
Foundations of Unsupervised Deep Learning (Ruslan Salakhutdinov, CMU)
Lex Fridman
14 Deep Learning for Computer Vision (Andrej Karpathy, OpenAI)
Deep Learning for Computer Vision (Andrej Karpathy, OpenAI)
Lex Fridman
15 Foundations and Challenges of Deep Learning (Yoshua Bengio)
Foundations and Challenges of Deep Learning (Yoshua Bengio)
Lex Fridman
16 MIT 6.S094: Introduction to Deep Learning and Self-Driving Cars
MIT 6.S094: Introduction to Deep Learning and Self-Driving Cars
Lex Fridman
17 MIT 6.S094: Deep Reinforcement Learning for Motion Planning
MIT 6.S094: Deep Reinforcement Learning for Motion Planning
Lex Fridman
18 MIT 6.S094: Convolutional Neural Networks for End-to-End Learning of the Driving Task
MIT 6.S094: Convolutional Neural Networks for End-to-End Learning of the Driving Task
Lex Fridman
19 MIT 6.S094: Recurrent Neural Networks for Steering Through Time
MIT 6.S094: Recurrent Neural Networks for Steering Through Time
Lex Fridman
20 MIT 6.S094: Deep Learning for Human-Centered Semi-Autonomous Vehicles
MIT 6.S094: Deep Learning for Human-Centered Semi-Autonomous Vehicles
Lex Fridman
21 Chris Gerdes (Stanford) on Technology, Policy and Vehicle Safety - MIT Self-Driving Cars
Chris Gerdes (Stanford) on Technology, Policy and Vehicle Safety - MIT Self-Driving Cars
Lex Fridman
22 Sertac Karaman (MIT) on Motion Planning in a Complex World - MIT Self-Driving Cars
Sertac Karaman (MIT) on Motion Planning in a Complex World - MIT Self-Driving Cars
Lex Fridman
23 MIT Sloan: Intro to Machine Learning (in 360/VR)
MIT Sloan: Intro to Machine Learning (in 360/VR)
Lex Fridman
24 MIT 6.S094: Deep Learning
MIT 6.S094: Deep Learning
Lex Fridman
25 MIT Self-Driving Cars (2018)
MIT Self-Driving Cars (2018)
Lex Fridman
26 MIT 6.S094: Deep Reinforcement Learning
MIT 6.S094: Deep Reinforcement Learning
Lex Fridman
27 MIT 6.S094: Computer Vision
MIT 6.S094: Computer Vision
Lex Fridman
28 MIT 6.S094: Deep Learning for Human Sensing
MIT 6.S094: Deep Learning for Human Sensing
Lex Fridman
29 MIT AGI: Artificial General Intelligence
MIT AGI: Artificial General Intelligence
Lex Fridman
30 MIT AGI: Building machines that see, learn, and think like people (Josh Tenenbaum)
MIT AGI: Building machines that see, learn, and think like people (Josh Tenenbaum)
Lex Fridman
31 Ray Kurzweil: Future of Intelligence | MIT 6.S099: Artificial General Intelligence (AGI)
Ray Kurzweil: Future of Intelligence | MIT 6.S099: Artificial General Intelligence (AGI)
Lex Fridman
32 Sacha Arnoud, Director of Engineering, Waymo - MIT Self-Driving Cars
Sacha Arnoud, Director of Engineering, Waymo - MIT Self-Driving Cars
Lex Fridman
33 Lisa Feldman Barrett: How the Brain Creates Emotions |  MIT Artificial General Intelligence (AGI)
Lisa Feldman Barrett: How the Brain Creates Emotions | MIT Artificial General Intelligence (AGI)
Lex Fridman
34 Stephen Wolfram: Computational Universe | MIT 6.S099: Artificial General Intelligence (AGI)
Stephen Wolfram: Computational Universe | MIT 6.S099: Artificial General Intelligence (AGI)
Lex Fridman
35 Emilio Frazzoli, CTO, nuTonomy - MIT Self-Driving Cars
Emilio Frazzoli, CTO, nuTonomy - MIT Self-Driving Cars
Lex Fridman
36 Sterling Anderson, Co-Founder, Aurora - MIT Self-Driving Cars
Sterling Anderson, Co-Founder, Aurora - MIT Self-Driving Cars
Lex Fridman
37 MIT AGI: Cognitive Architecture (Nate Derbinsky)
MIT AGI: Cognitive Architecture (Nate Derbinsky)
Lex Fridman
38 MIT Advanced Vehicle Technology Study (MIT-AVT)
MIT Advanced Vehicle Technology Study (MIT-AVT)
Lex Fridman
39 MIT-AVT: Data Collection Device (for Large-Scale Semi-Autonomous Driving)
MIT-AVT: Data Collection Device (for Large-Scale Semi-Autonomous Driving)
Lex Fridman
40 Geoffrey Hinton: What are you excited about in deep learning?
Geoffrey Hinton: What are you excited about in deep learning?
Lex Fridman
41 Ilya Sutskever: OpenAI Meta-Learning and Self-Play | MIT Artificial General Intelligence (AGI)
Ilya Sutskever: OpenAI Meta-Learning and Self-Play | MIT Artificial General Intelligence (AGI)
Lex Fridman
42 Comfortably Numb Solo | Pink Floyd Cover by Lex Fridman
Comfortably Numb Solo | Pink Floyd Cover by Lex Fridman
Lex Fridman
43 Yoshua Bengio: Deep Learning | Lex Fridman Podcast #4
Yoshua Bengio: Deep Learning | Lex Fridman Podcast #4
Lex Fridman
44 Jeff Atwood: Stack Overflow and Coding Horror | Lex Fridman Podcast #7
Jeff Atwood: Stack Overflow and Coding Horror | Lex Fridman Podcast #7
Lex Fridman
45 Eric Schmidt: Google | Lex Fridman Podcast #8
Eric Schmidt: Google | Lex Fridman Podcast #8
Lex Fridman
46 Pieter Abbeel: Deep Reinforcement Learning | Lex Fridman Podcast #10
Pieter Abbeel: Deep Reinforcement Learning | Lex Fridman Podcast #10
Lex Fridman
47 Deep Learning Basics: Introduction and Overview
Deep Learning Basics: Introduction and Overview
Lex Fridman
48 Deep Learning State of the Art (2019)
Deep Learning State of the Art (2019)
Lex Fridman
49 MIT 6.S091: Introduction to Deep Reinforcement Learning (Deep RL)
MIT 6.S091: Introduction to Deep Reinforcement Learning (Deep RL)
Lex Fridman
50 Self-Driving Cars: State of the Art (2019)
Self-Driving Cars: State of the Art (2019)
Lex Fridman
51 Drago Anguelov (Waymo) - MIT Self-Driving Cars
Drago Anguelov (Waymo) - MIT Self-Driving Cars
Lex Fridman
52 Oliver Cameron (CEO, Voyage) - MIT Self-Driving Cars
Oliver Cameron (CEO, Voyage) - MIT Self-Driving Cars
Lex Fridman
53 Karl Iagnemma & Oscar Beijbom (Aptiv Autonomous Mobility) - MIT Self-Driving Cars
Karl Iagnemma & Oscar Beijbom (Aptiv Autonomous Mobility) - MIT Self-Driving Cars
Lex Fridman
54 Leslie Kaelbling: Reinforcement Learning, Planning, and Robotics | Lex Fridman Podcast #15
Leslie Kaelbling: Reinforcement Learning, Planning, and Robotics | Lex Fridman Podcast #15
Lex Fridman
55 Greg Brockman: OpenAI and AGI | Lex Fridman Podcast #17
Greg Brockman: OpenAI and AGI | Lex Fridman Podcast #17
Lex Fridman
56 Ian Goodfellow: Generative Adversarial Networks (GANs) | Lex Fridman Podcast #19
Ian Goodfellow: Generative Adversarial Networks (GANs) | Lex Fridman Podcast #19
Lex Fridman
57 MIT 6.S093: Introduction to Human-Centered Artificial Intelligence (AI)
MIT 6.S093: Introduction to Human-Centered Artificial Intelligence (AI)
Lex Fridman
58 Chris Lattner: Compilers, LLVM, Swift, TPU, and ML Accelerators | Lex Fridman Podcast #21
Chris Lattner: Compilers, LLVM, Swift, TPU, and ML Accelerators | Lex Fridman Podcast #21
Lex Fridman
59 Rajat Monga: TensorFlow | Lex Fridman Podcast #22
Rajat Monga: TensorFlow | Lex Fridman Podcast #22
Lex Fridman
60 Gavin Miller: Adobe Research | Lex Fridman Podcast #23
Gavin Miller: Adobe Research | Lex Fridman Podcast #23
Lex Fridman

Related Reads

Up next
Sparking new ideas with Gemini: The updates everyone's talking about
Google for Education
Watch →