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. If you enjoy it, subscribe, comment, and share. You can watch the full conversation here: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-uTxRF5ag27A.html (more links below) Podcast full episodes playlist: ru-vid.com/group/PLrAXtmErZgOdP_8GztsuKi9nrraNbKKp4 Podcasts clips playlist: ru-vid.com/group/PLrAXtmErZgOeciFP3CBCIEElOJeitOr41 Podcast website: lexfridman.com/ai Podcast on Apple Podcasts (iTunes): apple.co/2lwqZIr Podcast on Spotify: spoti.fi/2nEwCF8 Podcast RSS: lexfridman.com/category/ai/feed/
Many people in the comments seem to misunderstand what is being said. C++ is complicated to allow you to write simple code. While the C language is simpler, this simplicity offloads the complexity onto the actual code being written. What Bjarne talks about is giving the programmer the /ability/ to write simpler code. And that ability is dependent on complicated language features.
Just because it's being said doesn't mean it's true. When you have to look up every other std:: feature when reading code and check and second guess everything you do because there may already be a solution in std:: then this is everything but simple.
Bjarne is remarkable and anyone who wants to be better should start listening to his ideas. I don't agree with everything but his experience backs up lots of basic concepts such as simplicitly.
great saying from the author of one of the most complicated programming languages ever made, and one of the languages that least features has to avoid any system from crashing. This is another man responsible for trillions of dollars of money lost. Any program in Erlang is far more stable than its equivalent in C++ and I talk about Erlang because Erlang actually gives you tools for fault tolerance and those tools are enough redundancy to achieve the 9 nines.
Brake pedals on regular passenger cars are actually mechanically connected to the hydraulic braking system, so he's just wrong to say the only connection is to the car's ECU. It's correct to say of the accelerator pedal on modern cars, but not the brake pedal. For braking, the ECU plays a major role in ABS modulation and nowadays even the newer electronic parking brakes. But not the simple hydraulic pressure transferred from the brake pedals to the calipers on disc brakes or the wheel cylinders on drum brakes.
@@mavhunter8753 Not sarcasm, relative to other high profile cutting edge games, I find the code to be clean, simple and consistent in general (relative to the high complexity of problems it solves).
Lex please ask all these guys who created these super fast low/mid level languages what they think about python and its advantages and disadvantages! I actually think Bjarne would be a fan of it in many uses for its reliance on systems that are already cheap, secure, stable.
as a tools and data sciences language sure it's great for that, I just don't want it running where runtime environment is not guaranteed over time. oddly enough for webservices I trust javascript more than python nowadays, just due to larger and more active community in that sector
@Fine Wine i'd say python to learn the general programming concepts without worrying about syntax too much. After that, java/c/c++ are good to learn, since they are a bit more difficult and don't abstract stuff away like python does.
that's not true, it's certainly not the only way, linux and the wine project are extremely complex and are soley written in C (wine is C89 standard might i add) but OOP is probably the most preferable way on large scale projects.
I mean... OOP makes systems a lot more complex than what they could really be. Any system is but a directed graph of tasks transforming data that is piped from input devices to output devices. Looking at systems this way can make it easy to picture the whole thing as a set of left to right pipelines of information. OOP transforms this natural flow of information into a mess of entities that talk to each other with no clear uniform direction. And that without even talking about state management and more dangerously, mutability. Inheritance makes the whole thing worse by hiding functionality up the inheritance chain and making inherited and overridden behaviour intermingled and difficult to make sense of. Composition almost always improve clarity and reduces complexity over inheritance.
@@philippefutureboy7348 i think you're mistaking the ability for bad design via over complexity with object oriented programming Also i disagree, hierarchy and inheritance is quite good on a large scale, not only for the sake of abstraction and streamlining, but also computational efficiency, this is not true on a small scale, (and C beats C++ on small projects for this reason) but OOP languages do not force you to make everything a hierarchy, OOP just allows another vector of badly designed code, but it doesn't mean it is bad in of itself because of that.
@@purplep3466 I never said simple means easy. Bjarne admits himself that C++ is complex: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-JBjjnqG0BP8.html. He says "C++'s problem is the complexity part we haven't been able to clean it up."
@@Turissss C++ is so huge, and bloated the C++ steering committee say themselves that you should just learn a subset of C++ instead of the whole thing; unlike C.
@@mavhunter8753 It's because of the backwards compatibility, most important code is written in c++ and no one is gonna re-write it every fucking time a new version comes out, "python 3 is here, lets re-write everything that was ever written in python again"