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