Submind YouTube summaries
Thumbnail for Bjarne Stroustrup: Deep Learning, Software 2.0, and Fuzzy Programming

Bjarne Stroustrup: Deep Learning, Software 2.0, and Fuzzy Programming

Watch on YouTube

Video summary

In this discussion, Bjarne Stroustrup addresses the growing intersection of traditional software engineering and machine learning, specifically deep learning systems that function through training on data to produce outputs from inputs. He acknowledges a fundamental distinction between these approaches: while biological systems are inherently noisy and unreliable—much like children who make mistakes as they learn—and current machine learning models operate with similar "fuzzy" characteristics where success is often measured empirically rather than deterministically, C++ represents a paradigm of extreme reliability and precision. Stroustrup argues that programming in the traditional sense involves creating deterministic programs for specific tasks, whereas deep learning systems accept a degree of uncertainty that contrasts sharply with the rigorous testing and measurement possible in languages like C++. Stroustrup clarifies his stance on who should engage in coding versus using tools, emphasizing that high-stakes domains such as aircraft or car controls require specialized engineers trained to build precise systems rather than being accessible to everyone. He draws a parallel between this professional necessity and the design of C++ itself; just as one cannot expect someone counting on their fingers to calculate trajectories for moon travel without understanding mathematics, critical infrastructure demands tools designed for professionals aiming at precision. While he concedes that fuzzy programming with lower accuracy rates, such as eighty-four percent or even ninety-two-and-a-half percent after significant effort, may be acceptable for pre-screening tasks where humans perform the final review, he firmly rejects this approach for life-threatening situations like autonomous driving or nuclear reactor control. A primary source of concern for Stroustrup is the emerging architecture in machine learning systems that delegates complex problems to human operators when neural networks encounter difficulties they cannot resolve. He describes a terrifying scenario where an AI system fails and requires a human, who might be reading a book or sleeping, to intervene within mere seconds—three or thirty—to fix the issue correctly. This reliance on humans as fallback mechanisms for critical failures highlights a dangerous gap between machine capability and human reaction time in high-speed environments like self-driving cars. Stroustrup expresses that this hybrid model is extremely difficult to design effectively and suggests it would be far superior to engineer systems written in robust languages like C++ that never require such external human assistance, even if achieving perfect reliability remains an ongoing challenge. Ultimately, the conversation concludes by reinforcing the necessity of separating different application areas into distinct domains with their own guiding principles before they interact within major modern systems. Stroustrup notes that no significant system today is written entirely in a single language because there are valid reasons to utilize diverse approaches for different tasks; however, he warns against letting the allure of AI overshadow the need for reliability in safety-critical engineering. While he admits his knowledge of deep learning comes from reading papers rather than hands-on development, maintaining an expert eye on these developments is essential to understand how fuzzy probabilistic methods coexist with sharp deterministic tools like C++. The dialogue serves as a cautionary note about integrating unreliable biological or statistical models into systems where failure is not an option, advocating instead for the continued dominance of precise engineering in domains that protect human life.
Read the full video transcript
so a crazy question but I work a lot with machine learning with deep learning I'm not sure if you touch that world that much but you could think of programming is a thing that takes some input programming is the task of creating a program and a program takes some input and produces some output so machine learning systems train on data in order to be able to take an input and produce output but there are messy fuzzy things much like we as children grow up you know we take some input make some output but we're noisy we mess up a lot we're definitely not reliable biological system are a giant mess so there's a sense in which machine learning is a kind of way of programming but just fuzzy it's very very very different than C++ because C++ is a like it's just like you said it's extremely reliable it's efficient it's you know you can you can measure you can test in a bunch of different ways with biological systems or machine learning systems you can't say much except sort of empirically saying that ninety-nine point eight percent of the time it seems to work what do you think about this fuzzy kind of programming indeed even see it as programming is it solid and totally another kind of world i I think it's a different kind of world and it is fuzzy and in my domain I don't like fuzziness that is people say things like they want everybody to be able to program but I don't want everybody to program my my aeroplane controls or the car controls I want that to be done by engineers I want that to be done with people that are specifically educated and trained for doing building things and it is not for everybody similarly a language like C++ is not for everybody it is generated to be a sharp and effective tool for professionals basically and definitely for people who who aim at some kind of precision you don't have people doing calculations without understanding math right counting on your fingers not going to cut it if you want to fly to the moon and so there are areas where and eighty-four percent accuracy rate sixteen percent false positive rate it's perfectly acceptable and where people will probably get no more than 70 you said ninety-eight percent i what I've seen is more like eighty four and by by really a lot of blood sweat and tears you can get up to the 92 and a half right so this is fine if it is say pre-screening stuff before the human look at it it is not good enough for for life-threatening situations and so there's lots of areas where where the fuzziness is perfectly acceptable and good and better than humans cheaper land humans but it's not the kind of engineering stuff I'm mostly interested in I worry a bit about machine learning in the context of cars you know much more about this than I do I worry too but I'm I'm sort of a an amateur here I've read some of the papers but I've not ever done it and the the idea that scares me the most is the one I have heard and I don't know how common it is that you have this AI system machine learning all of these trained neural nets and when they're something is too complicated they asked a human for help but human is reading a book or sleep and he has 30 seconds or three seconds to figure out what the problem was that the AI system couldn't handle and do the right thing this is scary I mean how do you do the cutter walk between the Machine and the human it's very very difficult and for the designer or one of the most reliable efficient and powerful programming languages C++ I can understand why that world is actually unappealing it is for most engineers to me it's extremely appealing because we don't know how to get that interaction right but I think it's possible but it's very very hard it is and I was stating a problem notice that it's emotional I mean I would much rather never rely on a human if you're driving a nuclear reactor if you're or an autonomous vehicle it would it's much better to design systems written in C++ that never asked human for help let's just get one fact in yeah all of this AI stoves and choppers so so that's one reason I have to keep a weather eye out on what's going on in that field but I will never become an expert in that area but it's a good example of how you separate different areas of applications and you have to have different towards different principles and then they interact no major system today is written in one language and there are good reasons for that you