1
00:00:09,469 --> 00:00:11,095
SOS 112, vad har inträffat?
2
00:00:11,679 --> 00:00:13,389
SOS 112, vad har inträffat?
3
00:00:13,473 --> 00:00:15,016
SOS 112, vad har inträffat?
4
00:00:15,099 --> 00:00:16,434
SOS 112, vad...
5
00:00:19,854 --> 00:00:24,400
Den 9:e april 2014
slutade SOS-numret plötsligt att fungera
6
00:00:24,484 --> 00:00:27,111
för miljontals människor i hela USA.
7
00:00:27,779 --> 00:00:30,031
Systemet låg nere i över sex timmar.
8
00:00:30,364 --> 00:00:33,367
Fler än 6 000 nödsamtal
kunde inte kopplas fram.
9
00:00:33,910 --> 00:00:35,953
Man spårade problemet till en dator
10
00:00:36,037 --> 00:00:38,956
i en omkopplingsanläggning
i Englewood i Colorado.
11
00:00:39,082 --> 00:00:41,209
Det var ett simpelt kodfel.
12
00:00:41,918 --> 00:00:43,961
De som programmerade datorn,
13
00:00:44,045 --> 00:00:47,882
valde att sätta en övre gräns
för antalet samtal som kunde loggas,
14
00:00:47,965 --> 00:00:51,135
en gräns programmerarna
aldrig trodde skulle nås.
15
00:00:51,427 --> 00:00:54,222
Men den kvällen 2014, nåddes den.
16
00:00:54,597 --> 00:00:56,849
Datorn följde instruktionerna perfekt.
17
00:00:56,933 --> 00:00:59,727
Den nådde gränsen
och slutade koppla samtal.
18
00:01:00,061 --> 00:01:03,940
Problemet var inte datorn,
och det var ingen bugg i koden.
19
00:01:04,482 --> 00:01:06,067
Det var programmeringen,
20
00:01:06,275 --> 00:01:10,488
beslutsprocessen med vilken
människan kommunicerar med datorn.
21
00:01:10,571 --> 00:01:14,659
Med denna makt följer stort etiskt ansvar.
22
00:01:14,742 --> 00:01:18,246
Det finns inget liknande.
Det finns ingen ersättning.
23
00:01:18,329 --> 00:01:23,751
På samma sätt som stadsbyggare
bestämmer hur du ska leva i staden,
24
00:01:23,835 --> 00:01:28,840
styr kod våra liv på nätet,
vilket i princip är hur vi lever.
25
00:01:29,507 --> 00:01:33,594
Inte bara på internet,
men när vi kontaktar SOS...
26
00:01:34,554 --> 00:01:36,097
...går till doktorn...
27
00:01:36,180 --> 00:01:37,598
...eller kliver in i en bil.
28
00:01:37,890 --> 00:01:40,643
Alla är nära kod, varje dag.
29
00:01:41,602 --> 00:01:47,024
Trots det, vet bara en tredjedels procent
av oss hur man skriver den.
30
00:01:47,525 --> 00:01:51,988
För den stora massan är det en svart låda.
Men det behöver inte vara så.
31
00:01:52,446 --> 00:01:55,199
Så hur funkar programmering egentligen?
32
00:01:55,658 --> 00:01:58,286
Och vilken ny värld bygger vi med den?
33
00:01:59,287 --> 00:02:01,122
EN ORIGINAL-DOKUMENTÄRSERIE FRÅN NETFLIX
34
00:02:01,205 --> 00:02:02,540
Datorn.
35
00:02:03,082 --> 00:02:05,835
En genialisk samling
av elektronisk hårdvara
36
00:02:05,918 --> 00:02:07,879
skapades av människan.
37
00:02:08,087 --> 00:02:11,007
Vi saknar inte maskiner
som löser våra problem,
38
00:02:11,090 --> 00:02:14,177
vi saknar beskrivningar
av hur problemen ska lösas.
39
00:02:14,260 --> 00:02:17,972
När någon säger programmering,
tror man att det är jättesvårt.
40
00:02:18,556 --> 00:02:22,685
Det är viktigt att komma ihåg
att allt man använder på datorn,
41
00:02:22,768 --> 00:02:25,271
skapades av en människa.
42
00:02:26,230 --> 00:02:27,648
PROGRAMMERING
43
00:02:31,944 --> 00:02:35,907
Låt säga att en utomjording frågar:
"Vad betyder programmering?
44
00:02:35,990 --> 00:02:41,412
Jag skulle säga: "Vi lever på den här
fysiska jorden, och för 50 år sedan
45
00:02:41,495 --> 00:02:44,582
började en grupp människor
bygga en annan planet.
46
00:02:44,665 --> 00:02:46,918
Inte en fysisk, utan en virtuell planet.
47
00:02:47,001 --> 00:02:52,548
Titta runtom dig, ser du alla som går
med huvudet nedböjt mot sina telefoner?
48
00:02:52,632 --> 00:02:54,300
De är i den andra världen.
49
00:02:54,383 --> 00:02:58,054
Det är kod.
Det är byggstenarna i den världen.
50
00:03:00,056 --> 00:03:04,393
Den här vävstolen är ursprunget
till varje dator och smartphone på jorden.
51
00:03:04,852 --> 00:03:09,232
Den uppfanns år 1804,
och den stora innovationen var dessa kort.
52
00:03:10,107 --> 00:03:13,194
Hålen i korten
släppte bara igenom vissa stift.
53
00:03:14,237 --> 00:03:16,405
Med tusentals hål i hundratals kort,
54
00:03:16,489 --> 00:03:19,700
kunde vävarna skapa
mer avancerade mönster än förut.
55
00:03:20,201 --> 00:03:22,787
Detaljerade sjalar blev populära i Europa.
56
00:03:22,995 --> 00:03:26,832
Vävda tyger kunde vara så invecklade
att de såg ut som teckningar,
57
00:03:26,916 --> 00:03:29,252
som denna, av vävstolens uppfinnare.
58
00:03:30,169 --> 00:03:34,715
Innan dessa vävstolar, valdes enskilda
trådar ut för hand av "dragpojkar."
59
00:03:34,966 --> 00:03:38,886
Man räknade matte för hand också,
av så kallade "beräknare."
60
00:03:39,095 --> 00:03:41,222
De första datorerna var människor.
61
00:03:41,681 --> 00:03:45,518
Och våra bästa maskiner
kunde bara lösa en typ av problem,
62
00:03:46,227 --> 00:03:48,729
som kulramen med addition och subtraktion.
63
00:03:49,313 --> 00:03:52,358
Den brittiske matematikern
Charles Babbage ville ha en maskin
64
00:03:52,441 --> 00:03:57,280
som löste alla matteproblem man ville,
eller snarare programmerade den till.
65
00:03:57,780 --> 00:04:01,075
Han föreslog något han kallade
"den analytiska maskinen."
66
00:04:01,242 --> 00:04:04,662
Babbages idé gav honom
en plats i historien.
67
00:04:05,037 --> 00:04:10,167
Datorn uppfanns först av Babbage,
68
00:04:10,710 --> 00:04:13,879
en mycket excentrisk brittisk uppfinnare.
69
00:04:14,046 --> 00:04:16,590
Babbage hade en idé
om hur den skulle funka.
70
00:04:16,966 --> 00:04:19,844
Han hade en kopia av
den här bilden i sitt hus.
71
00:04:20,219 --> 00:04:23,472
Babbages analytiska maskin
hade, likt Jacquards vävstol,
72
00:04:23,556 --> 00:04:25,516
fysiska delar: "hårdvara."
73
00:04:25,599 --> 00:04:27,101
Och likt vävstolen
74
00:04:27,184 --> 00:04:31,272
kunde man ge hårdvaran instruktioner
i form av kort med stansade hål.
75
00:04:31,689 --> 00:04:33,065
Hålen släpper in stift,
76
00:04:33,149 --> 00:04:36,193
och frånvaron av hål
pressar andra stift bakåt,
77
00:04:36,652 --> 00:04:39,196
vilket utlöser en serie
mekaniska beräkningar.
78
00:04:39,864 --> 00:04:42,825
Korten med olika hål, det är mjukvara.
79
00:04:43,701 --> 00:04:46,495
Babbage färdigställde inte
sin analytiska maskin,
80
00:04:46,579 --> 00:04:50,416
men en ung kvinna som arbetade
med honom, såg dess potential
81
00:04:50,666 --> 00:04:52,126
bortom matematiken.
82
00:04:52,668 --> 00:04:55,671
Ada Byron, grevinna av Lovelace, skrev:
83
00:04:56,005 --> 00:04:59,675
"Aritmetikens gränser överskreds
i det ögonblick tanken
84
00:04:59,759 --> 00:05:02,011
på att använda korten uppkom..."
85
00:05:02,261 --> 00:05:06,891
Hon såg det Jacquard såg:
Hålen kunde representera mer än siffror.
86
00:05:07,058 --> 00:05:09,310
De kunde vara mönster, musik...
87
00:05:10,644 --> 00:05:12,438
...eller hela meningar.
88
00:05:12,772 --> 00:05:15,149
Man kan se det ungefär som morsekod.
89
00:05:15,274 --> 00:05:19,987
Varje bokstav i Morse-alfabetet
uttrycks med bara två signaler:
90
00:05:20,071 --> 00:05:22,865
...eller...
Det är binärt.
91
00:05:23,324 --> 00:05:26,452
Med de pipen kan vi säga vad som helst,
92
00:05:26,952 --> 00:05:30,790
som detta nödanrop från Titanic år 1912.
93
00:05:31,457 --> 00:05:34,502
"SOS" betyder ingenting.
94
00:05:34,710 --> 00:05:37,880
Det är bara otroligt enkelt
att skicka i morsekod.
95
00:05:38,089 --> 00:05:42,885
Man kan också tänka att varje bokstav
kan uttryckas som en kombination
96
00:05:42,968 --> 00:05:44,512
av nollor och ettor.
97
00:05:44,637 --> 00:05:47,640
Ser det bekant ut? Det här är binär kod.
98
00:05:47,848 --> 00:05:51,769
Det är så vi minskar klyftan
mellan maskiners och människors språk.
99
00:05:51,894 --> 00:05:55,773
Varje nolla eller etta
är en binär siffra, eller "bit."
100
00:05:55,940 --> 00:05:58,359
De är atomerna i datorberäkningen.
101
00:05:58,484 --> 00:06:02,613
De har också ett annat namn:
åtta bit är en byte.
102
00:06:03,239 --> 00:06:07,743
Du vet den där bilden i din dator,
den som är 1,1 megabyte?
103
00:06:08,160 --> 00:06:11,956
Det är åtta miljoner åttahundra tusen
ettor och nollor.
104
00:06:12,373 --> 00:06:16,919
Morsekodens prickar och streck
är bara ett sätt att skriva ner...
105
00:06:17,002 --> 00:06:22,508
och binär kod är vårt sätt att skriva ner
vad som händer i en modern dator:
106
00:06:23,217 --> 00:06:25,010
ström eller ingen ström.
107
00:06:25,511 --> 00:06:30,599
Det här är en enkel elektrisk krets.
Tänk dig miljontals sådana som samarbetar.
108
00:06:31,016 --> 00:06:32,476
Det är en nutida dator.
109
00:06:32,977 --> 00:06:35,646
I en elektrisk krets är detta en bit.
110
00:06:35,813 --> 00:06:39,650
Är glödlampan släckt? Noll.
Tänd? Ett.
111
00:06:40,067 --> 00:06:42,194
Datorer förstår bara elektricitet,
112
00:06:42,278 --> 00:06:46,323
så det programmerarna gör
med datorer, är i slutändan
113
00:06:46,449 --> 00:06:49,368
bara en serie av-och-på.
114
00:06:49,702 --> 00:06:53,205
Det funkar,
för sammankopplat på rätt sätt
115
00:06:53,414 --> 00:06:56,041
kan strömmen representera logik.
116
00:06:56,625 --> 00:07:00,754
Logik är en förutsägbar serie
fakta eller händelser,
117
00:07:01,255 --> 00:07:03,340
som att sluta den här kretsen...
118
00:07:04,467 --> 00:07:07,052
...och den här för att ringa i klockan.
119
00:07:09,054 --> 00:07:12,516
Datorfolk kallar detta
en "logisk AND-krets."
120
00:07:13,476 --> 00:07:15,644
Eller en logisk "grind."
121
00:07:15,769 --> 00:07:18,439
Få se om det går
utan att bränna hål i bordet.
122
00:07:18,522 --> 00:07:22,818
I en AND-grind måste båda kretsarna slutas
för att lampan ska lysa.
123
00:07:23,235 --> 00:07:28,199
Det finns också OR-grindar,
där lampan tänds om en krets sluts.
124
00:07:28,365 --> 00:07:34,371
Man kan säga så här:
Om en av kretsarna sluts, tänd lampan.
125
00:07:34,497 --> 00:07:38,083
En sådan "if then"-sats, är en algoritm.
126
00:07:38,292 --> 00:07:42,505
I populärkulturen orsakar
ordet "algoritm" en del förvirring.
127
00:07:42,755 --> 00:07:45,925
Vi har sett det förut,
algoritmer som spårar ur!
128
00:07:46,008 --> 00:07:49,094
Algoritmer är ett mysterium för de flesta.
129
00:07:49,178 --> 00:07:51,847
Vad sjutton är en algoritm egentligen?
130
00:07:51,972 --> 00:07:54,892
Men en algoritm är bara instruktioner.
131
00:07:55,184 --> 00:07:59,522
Tänk dig att du går till affären.
Du kan gå vänster och sedan höger.
132
00:07:59,647 --> 00:08:02,525
Eller gå höger och sedan vänster.
133
00:08:02,900 --> 00:08:07,029
Eller gå vänster fyra gånger,
springa runt parken, gå över motorvägen
134
00:08:07,112 --> 00:08:09,240
och sedan gå höger fyra gånger igen.
135
00:08:09,365 --> 00:08:12,076
Som det finns olika vägar
för att nå en plats,
136
00:08:12,159 --> 00:08:16,247
kan det finnas olika algoritmer
för att lösa ett problem.
137
00:08:16,372 --> 00:08:20,042
Målet är att hitta
den mest effektiva och eleganta.
138
00:08:20,459 --> 00:08:22,795
Vacker kod upprepar sig inte.
139
00:08:22,920 --> 00:08:24,922
Den är elegant. Den är kratfull.
140
00:08:25,464 --> 00:08:29,093
Datorer som kör algoritmer
gjorde det vi sa till dem att göra,
141
00:08:29,176 --> 00:08:33,764
men väldigt mycket snabbare,
vilket gjorde människor mycket mäktigare.
142
00:08:34,223 --> 00:08:37,601
När forskarna
började utveckla fusionsbomben
143
00:08:38,018 --> 00:08:40,646
använde de främst mänskliga beräknare.
144
00:08:40,896 --> 00:08:43,107
Men sedan vände de sig till denna:
145
00:08:43,315 --> 00:08:47,152
ENIAC-datorn gjorde
termonukleära beräkningar i sex veckor.
146
00:08:47,903 --> 00:08:50,197
Dess resultat bidrog till detta:
147
00:08:51,323 --> 00:08:53,659
Det första lyckade testet år 1952
148
00:08:54,034 --> 00:08:57,580
av en bomb, hundratals gånger kraftigare
än de fissionsbomber
149
00:08:57,663 --> 00:09:01,083
som släpptes över Hiroshima
och Nagasaki under andra världskriget.
150
00:09:01,500 --> 00:09:04,920
Förmågan att programmera
ökade folks möjlighet att göra...
151
00:09:05,337 --> 00:09:06,880
...det de valde att göra.
152
00:09:07,590 --> 00:09:11,135
Men... på 1940-talet krävdes mycket jobb.
153
00:09:11,468 --> 00:09:16,056
Att skriva program
i ettor och nollor är inte skalbart.
154
00:09:16,223 --> 00:09:19,018
Folk ville ha mer av den makt
programmering gav.
155
00:09:19,184 --> 00:09:21,812
Men de ville ha ett lättare sätt
att programmera.
156
00:09:22,438 --> 00:09:27,776
Programmeringens historia sedan dess
har inneburit att göra koden allt mer lik
157
00:09:27,860 --> 00:09:32,990
mänskligt språk genom att uppfinna det
nästan alla programmerare idag använder:
158
00:09:33,115 --> 00:09:34,617
programmeringsspråk.
159
00:09:35,200 --> 00:09:39,121
Jämfört med ettor och nollor
är dessa språk ganska abstrakta.
160
00:09:39,580 --> 00:09:41,665
Abstraktion är ett svårt ord.
161
00:09:42,249 --> 00:09:45,669
Mer abstrakta språk
har i grunden samma ettor och nollor,
162
00:09:45,794 --> 00:09:48,505
vi har bara hittat bättre sätt
att organisera dem.
163
00:09:48,881 --> 00:09:51,175
Man kan tänka på det som biologi.
164
00:09:51,550 --> 00:09:53,135
Människor är oerhört komplexa,
165
00:09:53,218 --> 00:09:56,972
men 99 % av våra kroppar
består av bara sex grundämnen.
166
00:09:57,348 --> 00:10:00,184
Man kan komma upp i stora molekyler.
167
00:10:00,267 --> 00:10:04,605
Mellan det lagret av ordning,
och det som är det enklaste levande ting
168
00:10:04,688 --> 00:10:06,148
är det ett stort hopp.
169
00:10:06,273 --> 00:10:09,568
Och människan har en hjärna
som gör så avancerade saker
170
00:10:09,652 --> 00:10:12,780
att det är svårt att tro
att de består av samma ämnen.
171
00:10:12,946 --> 00:10:16,784
Datorer är lite likadana,
men mycket enklare.
172
00:10:17,951 --> 00:10:19,244
Det är det positiva.
173
00:10:19,578 --> 00:10:22,915
Programmering handlar om
att flytta upp den här rutan,
174
00:10:23,165 --> 00:10:25,250
bort från det binära, för att ge oss
175
00:10:25,334 --> 00:10:28,837
enklare, snabbare,
mer kraftfulla sätt att programmera,
176
00:10:29,088 --> 00:10:34,718
utan att behöva hantera eller förstå
de binära och logiska grindarna nedanför.
177
00:10:35,344 --> 00:10:38,931
Det ger programmerarna möjlighet
att skapa välbekanta produkter.
178
00:10:39,306 --> 00:10:41,308
Det första steget på vägen var...
179
00:10:41,850 --> 00:10:45,813
..."assemblerspråk,"
vilket är lättare att läsa och skriva,
180
00:10:46,188 --> 00:10:49,608
där man till exempel
istället för 0-1-0-0-0-1-1-1,
181
00:10:49,858 --> 00:10:51,402
kallar det för "add,"
182
00:10:51,694 --> 00:10:58,200
och sedan har man ett program,
assemblern, som översätter bokstäverna
183
00:10:58,283 --> 00:11:03,455
A-D-D till motsvarande ettor och nollor.
184
00:11:03,580 --> 00:11:07,292
På den nivån organiseras
binärkoden i bokstäver och siffror,
185
00:11:07,626 --> 00:11:10,504
precis som atomer organiseras i molekyler.
186
00:11:10,921 --> 00:11:15,217
Men programmering i assemblerspråk
var inte direkt enkelt,
187
00:11:15,843 --> 00:11:19,513
för alla dessa datorer
använde olika assemblerspråk.
188
00:11:20,097 --> 00:11:24,810
Skrev man ett program för en dator
så funkade det inte på de andra.
189
00:11:25,102 --> 00:11:29,440
Väldigt snart började folk tänka
att det vi egentligen vill ge datorn
190
00:11:29,523 --> 00:11:32,818
är termer som vi använder i vardagen.
191
00:11:33,193 --> 00:11:39,825
Det finns programmeringsspråk
som vi byggde utifrån assemblerspråk,
192
00:11:39,950 --> 00:11:42,953
och utifrån de språken
byggde vi fler programmeringsspråk.
193
00:11:43,370 --> 00:11:44,955
Du har nog hört namnen.
194
00:11:45,038 --> 00:11:45,914
-LISP...
-BASIC...
195
00:11:45,998 --> 00:11:47,207
-Java...
-C++...
196
00:11:47,291 --> 00:11:49,042
-Python 3...
-HTML 5...
197
00:11:49,126 --> 00:11:51,044
PEARL, PHP, lite C...
198
00:11:51,128 --> 00:11:56,717
Talat språk är olika sätt
att uttrycka samma tanke till andra,
199
00:11:57,050 --> 00:12:00,012
och programmeringsspråk
är olika sätt att uttrycka
200
00:12:00,137 --> 00:12:01,972
samma tanke till datorer.
201
00:12:02,347 --> 00:12:04,933
Det finns fler än ett högnivåspråk,
202
00:12:05,017 --> 00:12:10,105
för olika språk
tillfredsställer olika behov.
203
00:12:10,689 --> 00:12:12,024
Titta på dessa två.
204
00:12:12,191 --> 00:12:15,944
Det här, COBOL, skapades på sent 1950-tal
205
00:12:16,028 --> 00:12:19,156
för att göra det lättare
för företag att använda kod.
206
00:12:19,239 --> 00:12:23,410
Det är väldigt likt engelska,
förutom att varje samtal
207
00:12:23,494 --> 00:12:25,579
avslutades med "STOP RUN."
208
00:12:26,497 --> 00:12:32,753
CPL utvecklades på 1960-talet och
innehöll mer vetenskapliga beräkningar.
209
00:12:33,212 --> 00:12:35,297
Det är som biologisk evolution.
210
00:12:35,547 --> 00:12:38,675
När organismer blir mer komplexa,
utvecklar de särdrag
211
00:12:38,759 --> 00:12:41,887
som gör dem mer anpassade
till sin specifika miljö.
212
00:12:42,012 --> 00:12:45,933
Ärligt talat är det en fråga om smak.
213
00:12:46,558 --> 00:12:50,521
Folk gillar olika verktyg
för att uttrycka sig.
214
00:12:50,604 --> 00:12:53,774
Språket C++ till exempel...
215
00:12:53,857 --> 00:12:56,235
Elon Musk är inte förtjust i det.
216
00:12:56,360 --> 00:12:57,778
Du kan hitta på ett.
217
00:12:58,028 --> 00:13:02,533
Det här är ett högnivåspråk
skapat helt av ordet "moo."
218
00:13:02,950 --> 00:13:04,910
Seriöst. Det heter COW.
219
00:13:05,285 --> 00:13:08,956
Det här är skapat utifrån
filmcitat av Arnold Schwarzenegger.
220
00:13:09,164 --> 00:13:13,252
Varje gång jag tänker:
"Nu måste vi vara färdiga,"
221
00:13:13,335 --> 00:13:20,050
kommer nån på ett nytt språk
som får nya anhängare.
222
00:13:20,175 --> 00:13:24,888
Så jag ser ingen ände
på uppkomsten av nya språk.
223
00:13:25,472 --> 00:13:29,017
Och alla dessa språk
baseras fortfarande på logik.
224
00:13:29,393 --> 00:13:32,312
En programmerare på Netflix
kan till exempel säga:
225
00:13:32,396 --> 00:13:35,899
"Om du har tittat längre än två timmar...
226
00:13:36,024 --> 00:13:37,359
...visa detta."
227
00:13:37,609 --> 00:13:42,531
Men för att kod ska påverka de flesta,
måste de flesta använda datorer.
228
00:13:42,698 --> 00:13:46,076
Det innebar att datorer behövde bli
enklare, vänligare
229
00:13:46,159 --> 00:13:48,370
och det krävde ett till stort steg.
230
00:13:48,912 --> 00:13:54,334
Det började här, i en demonstration
av Doug Engelbart år 1968.
231
00:13:54,459 --> 00:13:56,587
Alldeles strax ser vi hans skärm,
232
00:13:56,712 --> 00:14:01,425
och hur punkten rör sig
i enlighet med musens rörelser.
233
00:14:02,050 --> 00:14:06,346
Nuförtiden programmerar man
inte genom att skriva satser
234
00:14:06,430 --> 00:14:11,476
på ett papper och ge dem till någon
som matar in dem.
235
00:14:11,560 --> 00:14:15,105
Man sitter vid en skärm,
man har ett grafiskt gränssnitt.
236
00:14:15,355 --> 00:14:17,566
Idag kallas det GUI.
237
00:14:18,025 --> 00:14:21,320
Med GUI kan man programmera
utan att skriva något alls.
238
00:14:22,487 --> 00:14:24,907
Eller använda kod på ett enklare sätt.
239
00:14:25,240 --> 00:14:29,661
Man arbetar oftast
i en programmeringsmiljö
240
00:14:30,287 --> 00:14:36,501
av den typ Alan och hans kollegor
så vackert skapade
241
00:14:36,585 --> 00:14:40,464
på Xerox Palo Alto Research Center
på 1970-talet.
242
00:14:40,714 --> 00:14:42,633
"Alan." Den här Alan.
243
00:14:42,883 --> 00:14:46,053
Jag ser honom som persondatorernas fader,
244
00:14:46,136 --> 00:14:50,265
för han var den första
att uttala den visionen.
245
00:14:50,515 --> 00:14:54,353
Och jag måste erkänna att jag
tyckte att det var science fiction.
246
00:14:54,436 --> 00:14:56,605
När stora saker sker,
247
00:14:58,023 --> 00:14:59,733
finns det oftast en stor grupp.
248
00:14:59,816 --> 00:15:04,404
PARC var fantastiskt på det viset.
Det var magiskt.
249
00:15:04,780 --> 00:15:08,450
Det grafiska gränssnittet
gjorde det möjligt för miljoner
250
00:15:08,533 --> 00:15:12,871
att använda datorer
på ett sätt som känns naturligt för dem.
251
00:15:13,580 --> 00:15:16,750
När Xerox marknadsförde GUI år 1979,
252
00:15:16,833 --> 00:15:20,170
visade de hur kod
kunde förändra vardagslivet.
253
00:15:20,379 --> 00:15:22,923
Man kommer till kontoret
och en Xerox-maskin
254
00:15:23,006 --> 00:15:25,008
visar morgonens post på en skärm.
255
00:15:25,092 --> 00:15:27,344
Inom kort kommer Xerox-system som detta
256
00:15:27,427 --> 00:15:31,431
att hjälpa dig hantera
din mest värdefulla resurs: information.
257
00:15:31,848 --> 00:15:34,893
Det fanns många som jag,
och många människor
258
00:15:34,977 --> 00:15:38,105
inom forskningsområdet
som ville göra världen bättre.
259
00:15:38,188 --> 00:15:43,026
De hade en idé som var djupt anknuten
till mänsklig förstärkning.
260
00:15:43,610 --> 00:15:47,990
Något som skulle interagera
med oss, allmänheten,
261
00:15:48,198 --> 00:15:53,245
den vanliga människan och ge oss förmåga
att göra mer än vi kunde förut.
262
00:15:53,662 --> 00:15:56,039
Det gav oss förmågan att göra mer.
263
00:15:56,331 --> 00:15:58,875
GUI var ett stort kliv upp på skalan.
264
00:15:59,501 --> 00:16:03,630
Och sedan kom nästa
världsförändrande uppfinning.
265
00:16:05,382 --> 00:16:09,177
Ett nytt sätt att dela ut allt
som vi kunde skapa med kod.
266
00:16:09,970 --> 00:16:14,474
På tv började folk förutspå vad plötslig
tillgång till all kod skulle betyda.
267
00:16:14,808 --> 00:16:17,519
Tänk dig att du sitter med morgonkaffet,
268
00:16:17,602 --> 00:16:20,439
slår igång din hemdator
för att läsa tidningen.
269
00:16:20,522 --> 00:16:24,985
Tänk dig en värld där alla ord
som skrivits, alla bilder av en målning,
270
00:16:25,068 --> 00:16:28,697
alla filmer nånsin inspelade,
kan ses i ditt hem.
271
00:16:28,780 --> 00:16:33,744
Jag tror att vi är på gränsen
till något inspirerande och skrämmande.
272
00:16:33,827 --> 00:16:36,204
-Men det är bara ett verktyg?
-Nej.
273
00:16:36,288 --> 00:16:40,667
Nutidens mest tongivande program
använder alla dessa innovationer.
274
00:16:40,751 --> 00:16:44,671
En collegestudent använde
högnivåspråket PHP
275
00:16:44,755 --> 00:16:49,760
för att skapa något att dela på internet
för användning på datorer med GUI.
276
00:16:50,093 --> 00:16:53,680
Han beskrev det in sin första
tv-intervju år 2004.
277
00:16:53,889 --> 00:16:56,433
Det är en online-katalog
som kopplar ihop folk
278
00:16:56,516 --> 00:16:59,478
från universitet och college
genom sociala nätverk.
279
00:16:59,561 --> 00:17:02,731
Nu är vi 100 000 personer,
vem vet vad det blir.
280
00:17:02,814 --> 00:17:08,361
Det blev fler än två miljarder personer
på Facebook varje månad.
281
00:17:08,695 --> 00:17:11,823
Idag formar programmerare
miljardtals människors liv.
282
00:17:11,907 --> 00:17:15,869
Hur de jobbar, handlar, äter,
dejtar och chillar.
283
00:17:16,203 --> 00:17:21,208
Vad gör du nu?
Du tittar på mig i en Netflix-webbläsare.
284
00:17:23,376 --> 00:17:28,215
Netflix är kod, och den körs
i en webbläsare som är kod,
285
00:17:28,507 --> 00:17:33,804
som körs på en dator
som utformades med hjälp av kod.
286
00:17:34,054 --> 00:17:36,098
Det är sköldpaddor hela vägen ner.
287
00:17:37,599 --> 00:17:40,519
Bra kod är som att vara arkitekt
till ett museum
288
00:17:41,311 --> 00:17:45,857
som miljontals människor tänker på,
går runt i och använder varje dag.
289
00:17:46,191 --> 00:17:49,569
Inget är som att skriva kod,
det känns som äkta skapande.
290
00:17:49,653 --> 00:17:52,030
Man har en tanke om hur något ska funka
291
00:17:52,364 --> 00:17:58,078
och sedan sitter man vid en dator
och försöker förverkliga det.
292
00:17:58,161 --> 00:18:01,039
Den rollen medför stort ansvar.
293
00:18:01,164 --> 00:18:05,669
Det finns en fartgräns.
Inte fortare än 90 km/h.
294
00:18:06,545 --> 00:18:07,420
Okej.
295
00:18:07,712 --> 00:18:11,299
Men tänk om du hade en bil,
och datorn sa:
296
00:18:12,092 --> 00:18:15,053
"Den här bilen kommer inte
att köra fortare än 90"?
297
00:18:15,720 --> 00:18:17,973
Det är ett sätt att styra beteenden.
298
00:18:18,056 --> 00:18:23,395
Genom att styra våra val,
har koden i våra liv
299
00:18:23,478 --> 00:18:27,941
en nästan mer djupgående
reglerande effekt än lagen kan önska.
300
00:18:28,525 --> 00:18:30,819
Och det kan vara bra.
301
00:18:30,944 --> 00:18:35,198
Det sker ungefär sex miljoner
bilolyckor i USA varje år,
302
00:18:35,282 --> 00:18:39,494
och en analys visade
att 94 % av dem orsakas av föraren.
303
00:18:40,370 --> 00:18:43,456
Framsteg inom programmering
kan rädda miljontals liv.
304
00:18:43,665 --> 00:18:47,169
Men de kan också
försätta liv i fara på nya sätt.
305
00:18:47,460 --> 00:18:50,922
Jag har hypertrofisk kardiomyopati,
306
00:18:51,006 --> 00:18:56,219
vilket är den medicinska termen
för att jag har ett stort hjärta.
307
00:18:56,511 --> 00:19:00,932
Bokstavligt talat. Det är tre gånger
större än ett normalt hjärta.
308
00:19:01,016 --> 00:19:05,937
Jag fick veta det när jag var 30,
så risken för att plötsligt dö vid 40,
309
00:19:06,021 --> 00:19:07,272
var väldigt hög.
310
00:19:07,439 --> 00:19:12,485
Elektrofysiologen sa: "Det är ingen fara,
du kan få en pacemaker med hjärtstartare."
311
00:19:13,028 --> 00:19:15,030
Apparaten går på kod.
312
00:19:15,697 --> 00:19:20,243
När jag var gravid för ett par år sedan,
fick jag hjärtklappning.
313
00:19:20,744 --> 00:19:24,748
En fjärdedel av alla kvinnor
har hjärtklappning, det är normalt.
314
00:19:25,207 --> 00:19:29,586
Men apparaten trodde att jag hade
en farlig hjärtrytm, och gav mig en stöt.
315
00:19:29,669 --> 00:19:34,132
Tillverkarna har inget intresse
av att ge elstötar till gravida kvinnor.
316
00:19:34,216 --> 00:19:39,262
Det är det sista de vill.
De har bara inte tänkt på det.
317
00:19:39,346 --> 00:19:42,474
Det finns en enorm mängd beslut
318
00:19:43,141 --> 00:19:47,395
och personerna som programmerar
kommer att fatta dem.
319
00:19:48,188 --> 00:19:50,690
Och oundvikligen
320
00:19:51,066 --> 00:19:56,154
kommer det att finnas kombinationer
av omständigheter som de inte förutsett.
321
00:19:56,238 --> 00:20:01,910
Så det vi försöker lära ut när vi
undervisar i hantverket programmering,
322
00:20:02,244 --> 00:20:07,540
är hur man ska tänka på
alla olika förhållanden.
323
00:20:07,832 --> 00:20:10,168
Hur man ska vara grundlig
324
00:20:10,293 --> 00:20:16,091
utan att bli förlamad av mängden saker
som man måste ta hänsyn till.
325
00:20:16,174 --> 00:20:20,011
Och det blir allt mer sant
eftersom vi har börjat programmera
326
00:20:20,136 --> 00:20:21,721
på ett helt nytt sätt.
327
00:20:22,305 --> 00:20:25,934
I traditionell programmering
ger man instruktioner till en dator.
328
00:20:26,059 --> 00:20:30,230
Men nu kan vi ge datorn
en mängd indata och en mängd utdata
329
00:20:30,313 --> 00:20:33,525
och få den att skriva
sina egna instruktioner.
330
00:20:33,942 --> 00:20:39,739
Det man gör är att ge datorn
många exempel,
331
00:20:40,073 --> 00:20:43,660
och säga: "Det här är en fest."
332
00:20:43,785 --> 00:20:47,163
Och så andra saker.
En tandläkarmottagning: inte fest.
333
00:20:47,330 --> 00:20:49,124
Ett klassrum: inte fest.
334
00:20:49,374 --> 00:20:55,005
Sedan tittar datorn på dessa och
försöker bygga ett klassificeringssystem.
335
00:20:55,255 --> 00:20:57,173
Det är maskininlärning.
336
00:20:57,257 --> 00:21:01,469
Nu för tiden, om någon säger
artificiell intelligens så menar de detta.
337
00:21:01,636 --> 00:21:06,641
Det är en annan sorts abstraktion
och ett sätt att göra saker,
338
00:21:06,725 --> 00:21:11,438
för det passar inte riktigt in
i vårt sätt att stapla saker.
339
00:21:11,646 --> 00:21:15,442
Vi kallar dem maskininlärningsalgoritmer
eftersom datorn skapar
340
00:21:15,525 --> 00:21:17,736
sina egna instruktioner.
341
00:21:18,069 --> 00:21:24,451
Men i slutändan översätts de förstås
till små instruktioner.
342
00:21:25,201 --> 00:21:28,288
Google Translate innehöll
mer än en miljon rader kod.
343
00:21:28,538 --> 00:21:32,751
Det är folk som skrivit
en miljon små instruktioner.
344
00:21:32,876 --> 00:21:38,256
Just nu innehåller Google Translate
ungefär femhundra rader kod
345
00:21:38,465 --> 00:21:40,008
som anropar maskininlärning.
346
00:21:40,091 --> 00:21:44,429
Tänk dig att på grund av ett misstag
så har ingen av festbilderna du la in
347
00:21:44,554 --> 00:21:46,806
med icke-vita eller latinamerikaner.
348
00:21:47,140 --> 00:21:52,562
Datorn kan besluta att en festregel är
är att bara vita och asiater är inbjudna.
349
00:21:52,812 --> 00:21:55,982
Det är många vita och asiater
som programmerar.
350
00:21:56,733 --> 00:22:02,447
Vi borde absolut utvidga vilka som
är vid ritbordet, av miljoner orsaker.
351
00:22:02,530 --> 00:22:05,325
Mer livserfarenhet ger bättre frågor.
352
00:22:05,408 --> 00:22:09,037
Men i slutändan, om man ger
maskininlärningssystemet data,
353
00:22:09,120 --> 00:22:13,208
låt säga ett rättsväsende med
inbyggd strukturell rasism i datan,
354
00:22:13,291 --> 00:22:17,170
och låt säga att programmerarna
ser ut som en Benetton-annons...
355
00:22:17,253 --> 00:22:22,384
...olika etnicitet, olika ansikten,
olika social bakgrund...
356
00:22:22,634 --> 00:22:25,303
...så lär sig systemet ändå av datan.
357
00:22:25,387 --> 00:22:28,139
Utan folk som aktivt korrigerar detta,
358
00:22:28,223 --> 00:22:31,935
så kommer historiska data
få oss att repetera misstag från förr.
359
00:22:33,812 --> 00:22:38,358
Programmeringens historia är en
av mänsklig ambition och kreativitet.
360
00:22:38,566 --> 00:22:41,528
Falcon 9 har lyft.
361
00:22:41,611 --> 00:22:44,030
Vi har sett det vi trodde inte kunde ses.
362
00:22:44,697 --> 00:22:45,740
Ett svart hål.
363
00:22:46,366 --> 00:22:49,953
Vi bygger en ny värld
med allt mer intuitiva verktyg
364
00:22:50,286 --> 00:22:55,750
som många fler människor kan använda
för att hjälpa oss förbättra den världen.
365
00:22:56,126 --> 00:22:59,546
Vi har gjort en resa
för att göra datorer mer tillgängliga
366
00:22:59,629 --> 00:23:02,382
för människor, och för fler människor.
367
00:23:02,507 --> 00:23:07,053
Vi har sett revolutionen utspela sig
framför våra ögon de senaste 50 åren.
368
00:23:07,262 --> 00:23:09,931
Det är därför det är
så spännande att leva nu.
369
00:23:10,014 --> 00:23:13,935
Det är viktigt att komma ihåg
att allt du använder på din dator,
370
00:23:14,227 --> 00:23:16,146
skapades av en människa.
371
00:23:17,063 --> 00:23:21,234
Du kan vara en av dem,
och det är viktigt att du blir en av dem.
372
00:23:21,317 --> 00:23:24,154
Du kan förändra världen
på ett fundamentalt vis.
373
00:23:24,571 --> 00:23:28,616
Det finns en värld som kommer att styras
med maskininlärning,
374
00:23:28,741 --> 00:23:32,162
data och traditionell programmering
på allt fler sätt.
375
00:23:32,579 --> 00:23:37,584
Som samhälle måste vi säga:
"Okej! Vi har en kraftfull ny teknik
376
00:23:38,251 --> 00:23:43,089
som på sätt och vis kan vara jättebra,
men den blir inte bra av sig själv."