1
00:00:07,008 --> 00:00:08,134
[telephone rings]
2
00:00:09,469 --> 00:00:11,637
-[woman] 9-1-1, emergency?
-[telephone rings]
3
00:00:11,721 --> 00:00:13,389
[second woman]
911. What's your emergency?
4
00:00:13,473 --> 00:00:16,559
-[man] 9-1-1. What's your emergency?
-[second woman] 9-1-1.
5
00:00:19,854 --> 00:00:24,525
[Karlie Kloss] On April 9, 2014,
9-1-1 service suddenly stopped
6
00:00:24,609 --> 00:00:27,153
for millions of people
across the United States.
7
00:00:27,779 --> 00:00:30,239
It was down for over six hours.
8
00:00:30,323 --> 00:00:33,367
More than 6,000 emergency calls
couldn't get through.
9
00:00:33,951 --> 00:00:37,246
The government traced the problem
to a computer in a call-routing facility
10
00:00:37,330 --> 00:00:38,998
in Englewood, Colorado.
11
00:00:39,082 --> 00:00:41,834
It was a simple coding mistake.
12
00:00:41,918 --> 00:00:43,878
The people in charge
of coding that computer
13
00:00:43,961 --> 00:00:47,882
chose to do it with an upper limit
for the number of calls it could log,
14
00:00:47,965 --> 00:00:51,344
a limit the coders thought
the computer would never hit.
15
00:00:51,427 --> 00:00:54,514
But that night in 2014, it did.
16
00:00:54,597 --> 00:00:56,933
The computer
followed its instructions perfectly.
17
00:00:57,016 --> 00:00:59,852
It hit the limit
and stopped routing calls.
18
00:00:59,936 --> 00:01:04,315
The problem wasn't the computer,
and it wasn't a bug in the code.
19
00:01:04,398 --> 00:01:07,568
It was the coding,
the decision-making process
20
00:01:07,652 --> 00:01:10,488
by which people communicate
with the computer.
21
00:01:10,571 --> 00:01:14,659
This kind of power
comes with great ethical responsibility.
22
00:01:14,742 --> 00:01:18,246
There's nothing like doing it.
There's nothing that substitutes for it.
23
00:01:18,329 --> 00:01:21,332
You know, much the same ways
that builders of a city
24
00:01:21,415 --> 00:01:23,459
determine how your life
is lived in the city,
25
00:01:23,543 --> 00:01:26,838
I-I think code
controls how we live online,
26
00:01:26,921 --> 00:01:29,423
which basically is how we live.
27
00:01:29,507 --> 00:01:33,678
Not just when we go on the Internet,
but when we contact emergency services...
28
00:01:34,554 --> 00:01:37,807
or go to the doctor or get in a car.
29
00:01:37,890 --> 00:01:41,519
We're all so close to code every day.
30
00:01:41,602 --> 00:01:45,690
Yet only around
a third of one percent of us
31
00:01:45,773 --> 00:01:47,358
know how to write it.
32
00:01:47,441 --> 00:01:50,611
To the overwhelming majority,
it's a black box.
33
00:01:50,695 --> 00:01:55,199
But it doesn't have to be.
So, how does coding really work?
34
00:01:55,283 --> 00:01:58,369
And what new world
are we building with it?
35
00:02:00,705 --> 00:02:01,831
[man] The computer.
36
00:02:03,082 --> 00:02:06,085
An ingenious collection
of electronic hardware
37
00:02:06,169 --> 00:02:08,004
was created by man.
38
00:02:08,087 --> 00:02:11,382
[second man] It is not that we do not have
adequate machines to solve our problems,
39
00:02:11,465 --> 00:02:14,177
but rather we lack adequate descriptions
of how to solve our problems.
40
00:02:14,260 --> 00:02:18,472
[woman] When someone says coding,
you think it's really, really hard.
41
00:02:18,556 --> 00:02:20,683
[man] It's very important
to really remember
42
00:02:20,766 --> 00:02:25,271
everything you use on your computer
was created by some human being.
43
00:02:31,903 --> 00:02:34,906
Let's say an alien came, and you're like,
"Okay, what's the importance of code?
44
00:02:34,989 --> 00:02:39,577
What is it?" I'd say, "Well, you know,
we live on this sort of physical earth,
45
00:02:39,660 --> 00:02:41,287
and about 50 years ago,
46
00:02:41,370 --> 00:02:44,582
a small group of people
started building another planet.
47
00:02:44,665 --> 00:02:46,918
But it wasn't physical, virtual planet.
48
00:02:47,001 --> 00:02:50,087
Look around the street. You see
all the people walking down the street
49
00:02:50,171 --> 00:02:52,548
with their head bent down
and staring at their phone?
50
00:02:52,632 --> 00:02:56,093
They're actually in that other world.
So, that's what code is.
51
00:02:56,177 --> 00:02:58,638
It's the building blocks
of that other world."
52
00:03:00,056 --> 00:03:04,727
This loom is the ancestor of every
computer and smartphone on Earth.
53
00:03:04,810 --> 00:03:09,357
It was invented in 1804,
and the big innovation was these cards.
54
00:03:10,107 --> 00:03:13,319
The holes in each card
allowed only certain pins to pass through.
55
00:03:14,237 --> 00:03:16,405
With thousands of holes
on hundreds of cards,
56
00:03:16,489 --> 00:03:19,742
weavers could do more complex patterns
than they could before.
57
00:03:19,825 --> 00:03:23,037
Elaborate shawls
became all the rage in Europe.
58
00:03:23,120 --> 00:03:26,832
And woven designs could be so intricate,
they looked like drawings,
59
00:03:26,916 --> 00:03:29,210
like this one of the loom's inventor.
60
00:03:30,169 --> 00:03:33,464
Before these looms, individual strings
had to be selected by hand
61
00:03:33,547 --> 00:03:34,882
by "draw boys."
62
00:03:34,966 --> 00:03:39,011
Math back then was done by hand, too,
by so-called "computers."
63
00:03:39,095 --> 00:03:40,972
The first computers were people.
64
00:03:41,681 --> 00:03:46,143
And the best machines we had to help us
could only do one type of math problem,
65
00:03:46,227 --> 00:03:48,980
like the abacus
for adding and subtracting.
66
00:03:49,063 --> 00:03:51,065
British mathematician Charles Babbage
67
00:03:51,148 --> 00:03:54,735
wanted a machine that could do
any math problem you chose for it to do
68
00:03:54,819 --> 00:03:57,113
or rather "programmed" it to do.
69
00:03:57,780 --> 00:04:01,200
He proposed a machine
he called "The Analytical Engine."
70
00:04:01,284 --> 00:04:04,954
Babbage's idea
would earn him a place in history.
71
00:04:05,037 --> 00:04:10,543
Computers were invented first by Babbage,
72
00:04:10,626 --> 00:04:13,963
a very eccentric British inventor.
73
00:04:14,046 --> 00:04:16,590
Babbage had inspiration
for how it would work.
74
00:04:16,674 --> 00:04:20,136
He kept a copy of this picture
hanging in his house.
75
00:04:20,219 --> 00:04:23,264
Babbage's Analytical Engine,
like Jacquard's loom,
76
00:04:23,347 --> 00:04:25,558
had physical parts--hardware.
77
00:04:25,641 --> 00:04:27,101
And also like the loom,
78
00:04:27,184 --> 00:04:31,564
you could give the hardware instructions
in the form of cards punched with holes.
79
00:04:31,647 --> 00:04:33,024
The holes let pins in,
80
00:04:33,107 --> 00:04:36,068
and the absence of holes
forced other pins backwards,
81
00:04:36,152 --> 00:04:39,196
setting off a chain
of mechanical calculations.
82
00:04:39,780 --> 00:04:42,575
The cards with their different holes,
that's software.
83
00:04:43,701 --> 00:04:45,995
Babbage never finished
his Analytical Engine,
84
00:04:46,078 --> 00:04:48,080
but a young woman working with him
85
00:04:48,164 --> 00:04:52,585
saw its world-changing potential
way beyond just math.
86
00:04:52,668 --> 00:04:55,880
Ada Byron, Countess of Lovelace, wrote,
87
00:04:55,963 --> 00:04:58,090
"The bounds of arithmetic were outstepped
88
00:04:58,174 --> 00:05:02,178
the moment the idea
of applying the cards had occurred."
89
00:05:02,261 --> 00:05:04,263
She saw what Jacquard saw--
90
00:05:04,347 --> 00:05:06,974
the holes could represent
more than just numbers.
91
00:05:07,058 --> 00:05:09,310
They could be patterns, music...
92
00:05:10,603 --> 00:05:12,688
or entire sentences.
93
00:05:12,772 --> 00:05:15,191
You can think of it
kind of as Morse code.
94
00:05:15,274 --> 00:05:17,401
Each letter in the Morse-code alphabet
95
00:05:17,485 --> 00:05:19,987
is expressed as a set
of only two signals--
96
00:05:20,071 --> 00:05:23,157
[short beep] or [long beep].
It's binary.
97
00:05:23,240 --> 00:05:26,827
And with just those beeps,
we can say anything,
98
00:05:26,911 --> 00:05:30,831
like this distress call
sent out by the Titanic in 1912.
99
00:05:31,665 --> 00:05:34,627
SOS doesn't stand for anything.
100
00:05:34,710 --> 00:05:37,922
It's just incredibly simple
to send in Morse code.
101
00:05:38,005 --> 00:05:40,841
[Andy] You can equally well think
of every letter
102
00:05:40,925 --> 00:05:44,678
could be expressed as a combination
of zeros and ones.
103
00:05:44,762 --> 00:05:47,807
[Kloss] Look familiar?
This is binary code.
104
00:05:47,890 --> 00:05:51,852
And it's how we bridge the gap
between machines and human language.
105
00:05:51,936 --> 00:05:55,856
Each one or zero
is a binary digit or "bit."
106
00:05:55,940 --> 00:05:58,442
These are the atoms of modern computing.
107
00:05:58,526 --> 00:06:02,696
You may know them by another name--
eight bits is a byte.
108
00:06:02,780 --> 00:06:08,077
So, you know that picture on your computer
that's 1.1 megabytes?
109
00:06:08,160 --> 00:06:12,289
That's 8,800,000 ones and zeros.
110
00:06:12,373 --> 00:06:15,334
Like Morse code's dots and dashes
are just a way to write down
111
00:06:15,418 --> 00:06:16,836
[long beep] and [short beep],
112
00:06:16,919 --> 00:06:20,214
binary code's ones and zeros
are just the way we write down
113
00:06:20,297 --> 00:06:23,134
what's really happening
in a modern computer--
114
00:06:23,217 --> 00:06:25,344
charge or no charge.
115
00:06:25,428 --> 00:06:27,680
This is a simple electrical circuit.
116
00:06:27,763 --> 00:06:30,850
Imagine millions of these
all working together.
117
00:06:30,933 --> 00:06:32,852
That's a computer today.
118
00:06:32,935 --> 00:06:35,521
On an electric circuit, this is a bit.
119
00:06:35,604 --> 00:06:38,023
Is the light bulb off? Zero.
120
00:06:38,107 --> 00:06:40,025
On? One.
121
00:06:40,109 --> 00:06:42,194
Computers only understand electricity,
122
00:06:42,278 --> 00:06:46,365
so everything coders do with computers
is, in the end,
123
00:06:46,449 --> 00:06:49,660
just a series of on-or-off charges.
124
00:06:49,743 --> 00:06:53,414
It all works because,
strung together in just the right way,
125
00:06:53,497 --> 00:06:56,542
those charges can represent logic.
126
00:06:56,625 --> 00:07:01,172
[man] Basically, logic is
a predictable series of facts or events,
127
00:07:01,255 --> 00:07:03,090
such as closing this switch...
128
00:07:04,717 --> 00:07:07,136
and this one to ring the bell.
129
00:07:07,219 --> 00:07:08,971
[bell rings]
130
00:07:09,054 --> 00:07:12,516
In fact, computer people call this
a logic AND circuit.
131
00:07:13,517 --> 00:07:15,686
[Kloss] Or a logic gate.
132
00:07:15,769 --> 00:07:18,439
Let's see if I can do this
without burning a hole through this table.
133
00:07:18,522 --> 00:07:23,152
In an AND gate, both circuits
need to be closed for the light to go on.
134
00:07:23,235 --> 00:07:24,695
And there are OR gates,
135
00:07:24,778 --> 00:07:28,365
where the light goes on
if just one of the circuits is closed.
136
00:07:28,449 --> 00:07:29,825
You can put this another way.
137
00:07:29,909 --> 00:07:34,413
If one of these circuits is closed,
then turn on the light.
138
00:07:34,497 --> 00:07:38,209
That kind of if/then statement,
that's an algorithm.
139
00:07:38,292 --> 00:07:40,794
In pop culture today, the word "algorithm"
140
00:07:40,878 --> 00:07:42,671
causes lots of confusion.
141
00:07:42,755 --> 00:07:45,925
We've seen this before,
uh, where the algorithms go haywire.
142
00:07:46,008 --> 00:07:49,094
The way algorithms work
is something of a mystery to most people.
143
00:07:49,178 --> 00:07:51,847
What the heck is an algorithm, anyway?
144
00:07:51,972 --> 00:07:55,059
[Kloss] But an algorithm
is really just a set of directions.
145
00:07:55,142 --> 00:07:56,727
Imagine walking to the store.
146
00:07:56,810 --> 00:07:59,647
You could take a left
and then take a right.
147
00:07:59,730 --> 00:08:02,983
Or you could just take a right,
then turn left.
148
00:08:03,067 --> 00:08:05,069
Or you could also take four lefts,
149
00:08:05,152 --> 00:08:07,029
run around the park, cross a highway,
150
00:08:07,112 --> 00:08:09,281
and then take four rights again.
151
00:08:09,365 --> 00:08:12,076
Just like there are different directions
to get to the same place,
152
00:08:12,159 --> 00:08:14,411
in coding, there can be
many different algorithms
153
00:08:14,495 --> 00:08:16,205
to solve the same problem.
154
00:08:16,288 --> 00:08:20,376
The goal is to find
the most elegant, efficient one.
155
00:08:20,459 --> 00:08:22,795
Beautiful code doesn't repeat itself.
156
00:08:22,878 --> 00:08:24,922
It's very elegant. It's powerful.
157
00:08:25,589 --> 00:08:29,051
Computers running algorithms
just did what we told them to do,
158
00:08:29,134 --> 00:08:34,139
but so much faster,
which made people so much more powerful.
159
00:08:34,223 --> 00:08:37,935
When scientists first began to develop
the fusion bomb,
160
00:08:38,018 --> 00:08:40,896
they primarily used human computers.
161
00:08:40,980 --> 00:08:43,148
But then they turned to this one--
162
00:08:43,232 --> 00:08:47,820
the ENIAC computer ran
thermonuclear calculations for six weeks.
163
00:08:47,903 --> 00:08:51,073
Its results contributed directly to this--
164
00:08:51,156 --> 00:08:53,993
the first successful test in 1952
165
00:08:54,076 --> 00:08:57,496
of a bomb hundreds of times more powerful
than the atomic fission bombs
166
00:08:57,580 --> 00:09:00,749
dropped on Hiroshima and Nagasaki
during World War II.
167
00:09:01,500 --> 00:09:05,296
The power to code
amplified people's ability to do
168
00:09:05,379 --> 00:09:06,672
what they chose to do.
169
00:09:07,590 --> 00:09:11,385
But in the 1940s,
it was still a lot of work.
170
00:09:11,468 --> 00:09:16,181
[Andy] Writing programs in zeros and ones
clearly doesn't scale.
171
00:09:16,265 --> 00:09:19,101
[Kloss] People wanted more
of the power coding gave,
172
00:09:19,184 --> 00:09:21,604
but they wanted an easier way to code.
173
00:09:22,521 --> 00:09:24,315
The story of coding since then
174
00:09:24,398 --> 00:09:29,361
has been the story of making code
closer and closer to human language
175
00:09:29,445 --> 00:09:35,117
by inventing what nearly all coders today
actually use--programming languages.
176
00:09:35,200 --> 00:09:39,496
Compared to ones and zeros,
these languages are pretty abstract.
177
00:09:39,580 --> 00:09:42,166
Abstraction's a word
that's tough for people.
178
00:09:42,249 --> 00:09:45,794
More abstract languages
boil down to the same ones and zeros.
179
00:09:45,878 --> 00:09:48,714
We've just found better ways
to organize them.
180
00:09:48,797 --> 00:09:51,300
You can think of it in terms of biology.
181
00:09:51,383 --> 00:09:53,135
Humans are incredibly complex,
182
00:09:53,218 --> 00:09:57,348
but 99% of our bodies
are made up of only six elements.
183
00:09:57,431 --> 00:10:00,184
[Alan] And you can
work your way up to large molecules.
184
00:10:00,267 --> 00:10:02,269
Between that layer of organization
185
00:10:02,353 --> 00:10:04,688
and the one that is
the simplest living thing
186
00:10:04,772 --> 00:10:06,231
is actually a bit of a jump.
187
00:10:06,315 --> 00:10:09,526
[Kloss] And humans have brains
which do things so advanced,
188
00:10:09,610 --> 00:10:12,821
it's hard to believe
they're still made of the same stuff.
189
00:10:12,905 --> 00:10:16,825
Computers actually are rather like that,
but are much simpler.
190
00:10:17,951 --> 00:10:19,203
So that is the good news.
191
00:10:19,286 --> 00:10:23,082
The story of coding
is the story of moving this box up,
192
00:10:23,165 --> 00:10:26,627
moving away from binary
to give ourselves easier, faster,
193
00:10:26,710 --> 00:10:29,004
more powerful ways to code
194
00:10:29,088 --> 00:10:32,341
without having to deal with
or really even understand
195
00:10:32,424 --> 00:10:34,760
the binary and logic gates beneath.
196
00:10:35,344 --> 00:10:39,223
That's what allows coders to make
the products we're all familiar with.
197
00:10:39,306 --> 00:10:41,392
The first step to get there was...
198
00:10:41,475 --> 00:10:46,146
[Andy] "Assembly language,"
which is much easier to read and write,
199
00:10:46,230 --> 00:10:49,817
where you say
instead of 0-1-0-0-0-1-1-1,
200
00:10:49,900 --> 00:10:51,610
let's call it "add,"
201
00:10:51,694 --> 00:10:55,406
and then have a program
called the assembler
202
00:10:55,489 --> 00:10:59,410
translate the letters A-D-D
203
00:10:59,493 --> 00:11:03,497
to the appropriate
equivalent zeros and ones.
204
00:11:03,580 --> 00:11:07,543
[Kloss] At this level, binary
is organized into letters and numbers,
205
00:11:07,626 --> 00:11:10,796
just like atoms
are organized into molecules.
206
00:11:10,879 --> 00:11:15,759
But coding in assembly language
still wasn't exactly easy,
207
00:11:15,843 --> 00:11:20,013
because all these computers
used different assembly languages.
208
00:11:20,097 --> 00:11:25,018
If you wrote a program for one computer,
it wouldn't work on any of the others.
209
00:11:25,102 --> 00:11:27,187
Very quickly,
people started thinking about,
210
00:11:27,271 --> 00:11:29,440
"Well, what we really
want to give the computer
211
00:11:29,523 --> 00:11:33,110
are things in terms
that we actually use every day."
212
00:11:33,193 --> 00:11:35,821
You have programming languages
213
00:11:35,904 --> 00:11:39,825
that we built using the assembly language,
214
00:11:39,908 --> 00:11:42,911
and then from those programming languages,
we build more programming languages.
215
00:11:42,995 --> 00:11:44,955
You've probably heard their names.
216
00:11:45,038 --> 00:11:45,914
-LISP.
-BASIC.
217
00:11:45,998 --> 00:11:47,207
-Java.
-C++.
218
00:11:47,291 --> 00:11:49,042
-[man] Python 3.
-HTML 5.
219
00:11:49,126 --> 00:11:51,044
PEARL. PHP. A little bit of C.
220
00:11:51,128 --> 00:11:53,672
Just like how spoken languages
are different ways
221
00:11:53,756 --> 00:11:57,217
of expressing the same idea
to other people,
222
00:11:57,301 --> 00:11:58,510
programming languages
223
00:11:58,594 --> 00:12:02,264
are just different ways of expressing
the same idea to computers.
224
00:12:02,347 --> 00:12:04,850
[Andy] We have more than one
high-level language,
225
00:12:04,933 --> 00:12:06,810
because, first of all,
226
00:12:06,894 --> 00:12:10,647
different languages
address different needs.
227
00:12:10,731 --> 00:12:12,191
[Kloss] Take a look at these two.
228
00:12:12,274 --> 00:12:15,903
This one, COBOL,
was created in the late 1950s
229
00:12:15,986 --> 00:12:19,156
to make it easier for businesses
to use code.
230
00:12:19,239 --> 00:12:21,158
It looks a lot like English,
231
00:12:21,241 --> 00:12:25,621
except if every conversation
ended with "STOP RUN."
232
00:12:26,497 --> 00:12:30,334
This one, CPL, was developed in the 1960s
233
00:12:30,417 --> 00:12:33,128
and included more scientific computing.
234
00:12:33,212 --> 00:12:35,547
It's like biological evolution.
235
00:12:35,631 --> 00:12:38,634
As organisms get more complex,
they develop features
236
00:12:38,717 --> 00:12:41,929
that make them better adapted
to their specific environments.
237
00:12:42,012 --> 00:12:46,433
And, frankly, it's also a matter of taste.
238
00:12:46,517 --> 00:12:50,521
People like different tools
for expressing themselves.
239
00:12:50,604 --> 00:12:53,774
For example, the language C++.
240
00:12:53,857 --> 00:12:56,276
Elon Musk... n-not a fan.
241
00:12:56,360 --> 00:12:57,903
You could make one up.
242
00:12:57,986 --> 00:13:02,866
This is a real high-level language
made entirely of the word "moo."
243
00:13:02,950 --> 00:13:05,202
Seriously. It's called COW.
244
00:13:05,285 --> 00:13:09,164
This one is made of
Arnold Schwarzenegger movie quotes.
245
00:13:09,248 --> 00:13:13,335
Every time I think,
"Okay, we must be done by now,"
246
00:13:13,418 --> 00:13:15,796
somebody else comes up with a new language
247
00:13:15,879 --> 00:13:20,008
and it develops a group of devotees.
248
00:13:20,092 --> 00:13:24,888
So I don't see any end in sight
to the invention of new languages.
249
00:13:25,472 --> 00:13:29,309
And all of these languages
are still based around logic.
250
00:13:29,393 --> 00:13:32,604
For example,
a coder at Netflix could say,
251
00:13:32,688 --> 00:13:35,357
"If you've been watching
longer than two hours,
252
00:13:35,440 --> 00:13:37,609
then display this."
253
00:13:37,693 --> 00:13:39,903
But for code
to impact most people's lives,
254
00:13:39,987 --> 00:13:42,739
most people had to be using computers,
255
00:13:42,823 --> 00:13:46,076
which meant computers
had to be easier, friendlier,
256
00:13:46,159 --> 00:13:50,664
and that required another big leap,
which started here,
257
00:13:50,747 --> 00:13:54,376
in a demo given by Doug Engelbart in 1968.
258
00:13:54,459 --> 00:13:56,795
[Doug] In a second,
we'll see the screen he's working
259
00:13:56,879 --> 00:13:58,380
and the way the tracking spot moves
260
00:13:58,463 --> 00:14:01,967
in conjunction with
movements of that mouse.
261
00:14:02,050 --> 00:14:04,219
People nowadays don't program
262
00:14:04,303 --> 00:14:07,723
by writing out statements
on a piece of paper
263
00:14:07,806 --> 00:14:11,476
and then handing them off to somebody
who types it in.
264
00:14:11,560 --> 00:14:15,272
You sit down at a screen.
You have a graphical user interface.
265
00:14:15,355 --> 00:14:17,941
Today, we call them GUIs.
266
00:14:18,025 --> 00:14:21,153
With GUIs, people can code
without typing at all.
267
00:14:22,571 --> 00:14:25,157
Or they can just use code more easily.
268
00:14:25,240 --> 00:14:30,203
You're typically operating in
a programming environment
269
00:14:30,287 --> 00:14:34,917
of the type that Alan and his companions
270
00:14:35,000 --> 00:14:36,418
created so beautifully
271
00:14:36,501 --> 00:14:40,631
at Xerox Palo Alto Research Center
in the early '70s.
272
00:14:40,714 --> 00:14:42,799
Alan. This Alan.
273
00:14:42,883 --> 00:14:45,928
I think of him
as the father of personal computing
274
00:14:46,011 --> 00:14:50,599
because he was the first
to really articulate that vision.
275
00:14:50,682 --> 00:14:54,353
And I have to confess, at the time,
I thought it was science fiction.
276
00:14:54,436 --> 00:14:56,605
When big things really get done...
277
00:14:58,106 --> 00:14:59,733
there's usually a whole community.
278
00:14:59,816 --> 00:15:04,696
And, boy, Park was fantastic at it.
It was just like magic.
279
00:15:04,780 --> 00:15:08,492
The graphical user interface
allowed millions more people
280
00:15:08,575 --> 00:15:13,080
to use computers in a way
that is natural to them.
281
00:15:13,163 --> 00:15:17,125
When Xerox
first advertised GUIs in 1979,
282
00:15:17,209 --> 00:15:20,253
they showed how code
could change daily life.
283
00:15:20,337 --> 00:15:21,630
[man] You come into your office,
284
00:15:21,713 --> 00:15:25,008
and a Xerox machine
presents your morning mail on a screen.
285
00:15:25,092 --> 00:15:27,344
Soon, Xerox systems like this
286
00:15:27,427 --> 00:15:30,389
will help you manage
your most precious resource--
287
00:15:30,472 --> 00:15:31,765
information.
288
00:15:31,848 --> 00:15:33,433
There were people like me,
289
00:15:33,517 --> 00:15:36,520
and a lot of the people
in this research community
290
00:15:36,603 --> 00:15:38,105
wanted to make the world better.
291
00:15:38,188 --> 00:15:43,527
They had an idea that was deeply related
to human augmentation.
292
00:15:43,610 --> 00:15:46,613
Something that would interact with us,
293
00:15:46,697 --> 00:15:49,366
you know, the-the public,
the-the normal person,
294
00:15:49,449 --> 00:15:53,620
and make us capable of
doing more than we were before.
295
00:15:53,704 --> 00:15:56,248
It did make us capable of doing more.
296
00:15:56,331 --> 00:15:58,875
GUIs were a big jump up this spectrum.
297
00:15:59,501 --> 00:16:03,922
And then came
the next world-changing innovation.
298
00:16:04,006 --> 00:16:05,298
[dial-up drone]
299
00:16:05,382 --> 00:16:09,094
A new way to distribute everything
that we could make with code.
300
00:16:10,095 --> 00:16:11,763
On TV, people started predicting
301
00:16:11,847 --> 00:16:14,725
what sudden access to all this code
would mean.
302
00:16:14,808 --> 00:16:17,394
Imagine, if you will,
sitting down to your morning coffee,
303
00:16:17,477 --> 00:16:20,439
turning on your home computer
to read the day's newspaper.
304
00:16:20,522 --> 00:16:23,358
Imagine a world
where every word ever written,
305
00:16:23,442 --> 00:16:24,901
every picture ever painted,
306
00:16:24,985 --> 00:16:28,697
every film ever shot
could be viewed instantly in your home.
307
00:16:28,780 --> 00:16:33,660
I think we're actually on the cusp of
something exhilarating and terrifying.
308
00:16:33,744 --> 00:16:36,204
-It's just a tool, though, isn't it?
-No, it's not.
309
00:16:36,288 --> 00:16:40,667
The most impactful software products today
make use of all these innovations.
310
00:16:40,751 --> 00:16:45,172
One college student used
a high-level programming language, PHP,
311
00:16:45,255 --> 00:16:47,424
to make something
shared over the Internet,
312
00:16:47,507 --> 00:16:49,926
to be used on computers with GUIs.
313
00:16:50,010 --> 00:16:53,889
He described it
in his first ever TV interview in 2004.
314
00:16:53,972 --> 00:16:56,349
It's an online directory
that connects people
315
00:16:56,433 --> 00:16:59,478
through universities and colleges
through their social networks there.
316
00:16:59,561 --> 00:17:03,106
Now we're at a hundred thousand people,
so who knows where we're going next?
317
00:17:03,190 --> 00:17:06,777
Where we went
was more than 2,000,000,000 people
318
00:17:06,860 --> 00:17:08,653
on Facebook monthly.
319
00:17:08,737 --> 00:17:11,823
Today, coders shape
literally billions of people's lives.
320
00:17:11,907 --> 00:17:16,119
How they work, shop, eat, date, and chill.
321
00:17:16,203 --> 00:17:17,537
What are you doing right now?
322
00:17:17,621 --> 00:17:21,333
You're watching me
in a Netflix web browser.
323
00:17:23,335 --> 00:17:25,337
So Netflix itself is code,
324
00:17:25,420 --> 00:17:28,340
and it's being run in a web browser
that is code,
325
00:17:28,423 --> 00:17:33,970
which is being run on a computer
that was designed using code.
326
00:17:34,054 --> 00:17:36,431
It's-It's turtles all the way down, right?
327
00:17:37,682 --> 00:17:41,269
Great code is like being
the architect of a museum
328
00:17:41,353 --> 00:17:43,396
that millions of people think of
329
00:17:43,480 --> 00:17:46,149
and go and walk around
and use every day.
330
00:17:46,233 --> 00:17:49,569
I think there's nothing like writing code,
because it feels like pure creation.
331
00:17:49,653 --> 00:17:52,239
You have an idea
for how something should work,
332
00:17:52,322 --> 00:17:56,159
and then you try to sit down
in front of a computer
333
00:17:56,243 --> 00:17:58,078
and make that a reality.
334
00:17:58,161 --> 00:18:01,081
I think there's a lot of responsibility
for that role.
335
00:18:01,164 --> 00:18:04,084
You know, you have a speed limit.
336
00:18:04,167 --> 00:18:05,752
No more than 60 miles an hour.
337
00:18:06,670 --> 00:18:11,466
Fine. But what if you had a car,
and the computer said...
338
00:18:12,175 --> 00:18:15,762
"Well, this car is not gonna go faster
than 60 miles an hour"?
339
00:18:15,846 --> 00:18:17,973
That's a different way
of controlling your behavior.
340
00:18:18,056 --> 00:18:20,225
Often by controlling our choices...
341
00:18:20,892 --> 00:18:26,064
code in our live exerts
an almost more profound regulatory effect,
342
00:18:26,148 --> 00:18:28,441
uh, than the law can ever hope to.
343
00:18:28,525 --> 00:18:30,861
And that might be a great thing.
344
00:18:30,944 --> 00:18:35,282
There are around 6,000,000 car crashes
in the U.S. every year,
345
00:18:35,365 --> 00:18:39,703
and one analysis
found 94% are caused by the driver.
346
00:18:40,370 --> 00:18:43,206
Advancements in coding
could save millions of lives.
347
00:18:43,707 --> 00:18:47,377
But they can also put lives in danger
in new ways.
348
00:18:47,460 --> 00:18:51,047
I have something called
hypertrophic cardiomyopathy,
349
00:18:51,131 --> 00:18:56,386
um, which is the medical term
for the fact that I have a big heart.
350
00:18:56,469 --> 00:18:58,180
My heart is literally a big heart.
351
00:18:58,263 --> 00:19:00,932
It is about three times the size of
a normal person's heart.
352
00:19:01,016 --> 00:19:03,143
I found out when I was about 30,
353
00:19:03,226 --> 00:19:07,355
and so my risk of suddenly dying by 40
was just very large.
354
00:19:07,439 --> 00:19:10,025
And the electrophysiologist said,
"Well, this is no problem at all
355
00:19:10,108 --> 00:19:12,903
because you can get
a pacemaker defibrillator."
356
00:19:12,986 --> 00:19:15,030
This device runs on code.
357
00:19:15,697 --> 00:19:18,033
A couple years ago, when I was pregnant,
358
00:19:18,116 --> 00:19:20,160
my heart was palpitating.
359
00:19:20,243 --> 00:19:23,622
About a quarter of all women
have palpitations.
360
00:19:23,705 --> 00:19:25,081
It's perfectly normal.
361
00:19:25,165 --> 00:19:29,586
But my device thought that I was in
a dangerous rhythm, and it shocked me.
362
00:19:29,669 --> 00:19:34,090
Device manufacturers have no interest
in pregnant ladies getting shocked.
363
00:19:34,174 --> 00:19:36,551
It is literally the last thing they want.
364
00:19:36,635 --> 00:19:39,262
They just... haven't considered it.
365
00:19:39,346 --> 00:19:42,974
There is this huge set of decisions...
366
00:19:43,058 --> 00:19:47,479
and the people who do the programming
will be making them.
367
00:19:48,188 --> 00:19:53,693
And inevitably, there will be
some combination of circumstances
368
00:19:53,777 --> 00:19:56,154
that they will not have anticipated.
369
00:19:56,238 --> 00:20:02,160
So, what we try to teach
when we teach the craft of programming
370
00:20:02,244 --> 00:20:07,749
is how you think about
all these different conditions.
371
00:20:07,832 --> 00:20:13,255
How you try to be exhaustive
without becoming paralyzed
372
00:20:13,338 --> 00:20:16,091
by the number of things
that you might have to consider.
373
00:20:16,174 --> 00:20:18,468
And that will only become more true,
374
00:20:18,551 --> 00:20:21,721
because we've started coding
in a completely new way.
375
00:20:22,430 --> 00:20:25,976
In traditional coding,
you write instructions for a computer.
376
00:20:26,059 --> 00:20:30,313
But we're now able to give a computer
a bunch of inputs and a bunch of outputs
377
00:20:30,397 --> 00:20:33,858
and get it to write its own instructions.
378
00:20:33,942 --> 00:20:37,404
What you do is you give the computer...
379
00:20:38,363 --> 00:20:39,990
a lot of examples,
380
00:20:40,073 --> 00:20:43,785
and you say, "This is a party,
this is a party, this is a party." Right?
381
00:20:43,868 --> 00:20:47,247
And then you have other things.
A dentist's office--not a party.
382
00:20:47,330 --> 00:20:49,249
A classroom--not a party.
383
00:20:49,332 --> 00:20:51,584
So then the computer looks at these
384
00:20:51,668 --> 00:20:55,171
and tries to build
a classification system.
385
00:20:55,255 --> 00:20:57,173
This is machine learning.
386
00:20:57,257 --> 00:21:00,385
These days, if somebody says
artificial intelligence,
387
00:21:00,468 --> 00:21:01,553
this is what they mean.
388
00:21:01,636 --> 00:21:05,265
That's a whole different
kind of abstraction
389
00:21:05,348 --> 00:21:06,641
and way of doing things,
390
00:21:06,725 --> 00:21:11,563
because it doesn't really fit into the way
we stack these things up.
391
00:21:11,646 --> 00:21:13,732
We call them machine-learning algorithms
392
00:21:13,815 --> 00:21:18,069
because the computer is creating
its own set of directions to follow.
393
00:21:18,153 --> 00:21:19,779
But, of course, in the end,
394
00:21:19,863 --> 00:21:24,534
they too get translated into
tiny little instructions.
395
00:21:25,201 --> 00:21:28,455
Google Translate used to be
more than a million lines of code.
396
00:21:28,538 --> 00:21:32,792
That's people writing
million little instructions.
397
00:21:32,876 --> 00:21:38,381
Currently, Google Translate
is about 500 lines of code
398
00:21:38,465 --> 00:21:42,218
-that just calls in the machine learning.
-Suppose, because of an oversight,
399
00:21:42,302 --> 00:21:46,973
none of the photos of parties you put in
included any black or Hispanic people.
400
00:21:47,057 --> 00:21:49,351
The computer could decide
that a rule of parties
401
00:21:49,434 --> 00:21:52,771
is only white and Asian people
are invited.
402
00:21:52,854 --> 00:21:56,149
There's a lot of white
and Asian guys who program.
403
00:21:56,232 --> 00:22:01,237
We should absolutely expand
who gets to be in that design room
404
00:22:01,321 --> 00:22:02,447
for a million reasons.
405
00:22:02,530 --> 00:22:05,325
They will ask better questions
if there is more life experience.
406
00:22:05,408 --> 00:22:08,995
But, in the end, if you're feeding
your machine-learning system data,
407
00:22:09,079 --> 00:22:13,208
say, criminal-justice system that has
structural racism built into that data,
408
00:22:13,291 --> 00:22:15,502
and let's say
your machine-learning programmers
409
00:22:15,585 --> 00:22:20,423
look like a Benetton ad,
different races, different sort of faces,
410
00:22:20,507 --> 00:22:22,592
different social backgrounds,
411
00:22:22,675 --> 00:22:25,303
that machine-learning system
is still gonna learn from the data.
412
00:22:25,387 --> 00:22:28,056
Without people
actively correcting for that,
413
00:22:28,139 --> 00:22:31,768
historical data will lead us
to repeat the mistakes of the past.
414
00:22:33,812 --> 00:22:38,483
The story of coding
is one of human ambition and creativity.
415
00:22:38,566 --> 00:22:41,528
[man] Liftoff of the Falcon 9 rocket.
416
00:22:41,611 --> 00:22:44,030
We have seen
what we thought was unseeable.
417
00:22:44,906 --> 00:22:46,282
A black hole.
418
00:22:46,366 --> 00:22:50,203
We're building a new world
with more and more intuitive tools
419
00:22:50,286 --> 00:22:56,042
that a greater number of people can use
to help make sure that world is better.
420
00:22:56,126 --> 00:22:57,544
We have been on a journey
421
00:22:57,627 --> 00:23:00,422
to make computers more accessible
to human beings
422
00:23:00,505 --> 00:23:02,424
and to a greater set of human beings.
423
00:23:02,507 --> 00:23:07,178
We're seeing this revolution play out
before our eyes in the past 50 years,
424
00:23:07,262 --> 00:23:09,806
and that's why it's so exciting
to be alive today.
425
00:23:09,889 --> 00:23:12,016
It's very important to really remember
426
00:23:12,142 --> 00:23:16,938
everything you use on your computer
was created by some human being.
427
00:23:17,021 --> 00:23:18,773
You can be one of those people, actually,
428
00:23:18,857 --> 00:23:21,234
and it's really important
you become one of those people.
429
00:23:21,317 --> 00:23:24,154
You can actually change the world
in a really fundamental way.
430
00:23:24,237 --> 00:23:26,614
There's a world that's gonna be run
431
00:23:26,698 --> 00:23:30,827
using machine learning
and data and traditional coding
432
00:23:30,910 --> 00:23:32,287
in more and more ways.
433
00:23:32,370 --> 00:23:35,123
And what we have to do
as a society is say,
434
00:23:35,206 --> 00:23:38,209
"Okay. We've got this
potent new technology,
435
00:23:38,293 --> 00:23:43,089
and in some ways, it could be great,
but it's not gonna be great by itself."
436
00:23:44,799 --> 00:23:46,801
[closing music playing]