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."