1 00:00:09,510 --> 00:00:10,762 911, primo soccorso? 2 00:00:11,679 --> 00:00:13,389 911, qual è la sua emergenza? 3 00:00:13,473 --> 00:00:14,932 911, qual è l'emergenza? 4 00:00:15,058 --> 00:00:16,392 911... 5 00:00:19,854 --> 00:00:24,400 Il 9 aprile 2014 il servizio di emergenza del 911 si fermò all'improvviso 6 00:00:24,484 --> 00:00:27,111 per milioni di persone negli Stati Uniti. 7 00:00:27,779 --> 00:00:30,031 Rimase fuori uso per più di sei ore. 8 00:00:30,364 --> 00:00:33,367 Più di seimila chiamate finirono nel vuoto. 9 00:00:33,910 --> 00:00:35,912 Il governo risalì al problema: un PC 10 00:00:35,995 --> 00:00:38,706 in un centralino di Englewood, in Colorado. 11 00:00:39,082 --> 00:00:41,250 Un semplice errore di programmazione. 12 00:00:41,918 --> 00:00:43,961 I responsabili di quel computer 13 00:00:44,045 --> 00:00:47,507 decisero di programmarlo con un limite massimo di chiamate, 14 00:00:47,840 --> 00:00:51,010 un limite che pensavano non sarebbe mai stato raggiunto. 15 00:00:51,427 --> 00:00:54,222 Ma quella notte del 2014 fu raggiunto. 16 00:00:54,680 --> 00:00:56,933 Il computer seguì le istruzioni. 17 00:00:57,016 --> 00:00:59,310 Raggiunto il limite smise di smistare le chiamate. 18 00:01:00,061 --> 00:01:01,979 Il problema non era il computer, 19 00:01:02,105 --> 00:01:03,940 o un bug nel programma. 20 00:01:04,482 --> 00:01:06,067 Era il programma stesso, 21 00:01:06,275 --> 00:01:09,362 il processo decisionale con cui l'uomo comunica 22 00:01:09,445 --> 00:01:10,488 con il computer. 23 00:01:10,571 --> 00:01:14,659 Questo tipo di potere comporta una grossa responsabilità etica. 24 00:01:14,742 --> 00:01:15,910 Non ha eguali. 25 00:01:15,993 --> 00:01:18,204 Non c'è niente che lo sostituisca. 26 00:01:18,329 --> 00:01:19,747 Proprio come 27 00:01:19,831 --> 00:01:21,290 chi costruisce una città 28 00:01:21,374 --> 00:01:23,751 influenza la vita di quella città, 29 00:01:23,835 --> 00:01:28,840 i programmi controllano la nostra vita online, quindi la nostra vita in generale. 30 00:01:29,507 --> 00:01:33,719 Non solo quando andiamo su internet, ma quando contattiamo i soccorsi... 31 00:01:34,554 --> 00:01:35,930 ...o andiamo dal dottore... 32 00:01:36,305 --> 00:01:37,765 ...o saliamo in macchina. 33 00:01:38,099 --> 00:01:40,643 Siamo circondati da codici, ogni giorno. 34 00:01:41,602 --> 00:01:45,690 Eppure solo 1/3 dell'1% di noi è in grado di scriverli. 35 00:01:45,773 --> 00:01:47,024 PROGRAMMATORI AL MONDO 36 00:01:47,233 --> 00:01:49,986 La stragrande maggioranza brancola nel buio. 37 00:01:50,695 --> 00:01:51,988 Ma si può rimediare. 38 00:01:52,446 --> 00:01:55,199 Come funziona davvero la programmazione? 39 00:01:55,658 --> 00:01:58,286 E che nuovo mondo stiamo costruendo? 40 00:01:59,287 --> 00:02:01,122 UNA DOCUSERIE ORIGINALE NETFLIX 41 00:02:01,205 --> 00:02:02,540 Il computer. 42 00:02:03,082 --> 00:02:05,835 Un'ingegnosa raccolta di componenti elettronici 43 00:02:05,918 --> 00:02:07,879 creata dall'uomo. 44 00:02:08,087 --> 00:02:11,382 Abbiamo i macchiari per risolvere i problemi 45 00:02:11,465 --> 00:02:14,177 ma mancano descrizioni adeguate su come risolverli. 46 00:02:14,260 --> 00:02:17,972 Quando si parla di programmazione, si pensa a qualcosa di complesso. 47 00:02:18,556 --> 00:02:22,685 Ricordiamoci che tutto ciò che è presente su un computer 48 00:02:22,768 --> 00:02:25,271 è stato creato da un essere umano. 49 00:02:26,230 --> 00:02:27,648 PROGRAMMARE 50 00:02:31,944 --> 00:02:35,907 Immaginiamo un alieno che chiede: "A che servono i codici? Cosa sono?" 51 00:02:35,990 --> 00:02:41,412 Gli direi: "Mettiamola così: Sulla Terra, circa 50 anni fa, 52 00:02:41,495 --> 00:02:44,582 un gruppetto di persone ha iniziato a costruire un altro pianeta. 53 00:02:44,665 --> 00:02:46,876 Non un pianeta fisico, ma uno virtuale. 54 00:02:47,001 --> 00:02:50,213 Se ti guardi intorno, per strada, vedrai gente camminare 55 00:02:50,296 --> 00:02:52,548 con la testa china sul cellulare. 56 00:02:52,632 --> 00:02:54,091 Immersi in quell'altro mondo. 57 00:02:54,383 --> 00:02:56,093 Ecco cos'è un codice. 58 00:02:56,219 --> 00:02:58,054 Le fondamenta dell'altro mondo. 59 00:03:00,056 --> 00:03:04,393 Questo telaio è l'antenato di ogni computer e smartphone sulla Terra. 60 00:03:04,852 --> 00:03:06,854 Fu inventato nel 1804, 61 00:03:06,938 --> 00:03:09,232 e la novità furono queste carte. 62 00:03:10,107 --> 00:03:13,194 I buchi di ogni carta lasciavano passare solo alcuni spilli. 63 00:03:14,237 --> 00:03:16,405 Con migliaia di buchi su centinaia di carte, 64 00:03:16,489 --> 00:03:19,492 i tessitori potevano riprodurre molte più fantasie di prima. 65 00:03:20,243 --> 00:03:22,912 Gli scialli elaborati divennero di moda in Europa. 66 00:03:23,037 --> 00:03:26,666 I ricami potevano essere così complessi da sembrare dipinti, 67 00:03:26,916 --> 00:03:29,168 come questo, dell'inventore del telaio. 68 00:03:30,169 --> 00:03:33,422 Prima di questi telai, i fili andavano selezionati a mano 69 00:03:33,547 --> 00:03:34,882 da garzoni specializzati. 70 00:03:34,966 --> 00:03:38,886 Anche i calcoli erano manuali, fatti con i cosiddetti "calcolatori". 71 00:03:39,095 --> 00:03:41,013 I primi computer erano persone. 72 00:03:41,681 --> 00:03:45,810 Le migliori macchine a disposizione potevano risolvere un solo problema, 73 00:03:46,227 --> 00:03:48,479 come l'abaco per l'addizione e la sottrazione. 74 00:03:49,313 --> 00:03:51,857 Il matematico inglese Charles Babbage voleva una macchina 75 00:03:51,941 --> 00:03:54,694 in grado di risolvere qualsiasi problema matematico, 76 00:03:54,777 --> 00:03:57,029 essendo "programmato" per questo. 77 00:03:57,780 --> 00:04:00,908 Propose una macchina chiamata "Motore Analitico". 78 00:04:01,242 --> 00:04:04,662 L'idea di Babbage lo fece passare alla storia. 79 00:04:05,037 --> 00:04:10,167 I computer sono stati inventati prima da Babbage, 80 00:04:10,710 --> 00:04:13,879 un eccentrico inventore inglese. 81 00:04:14,046 --> 00:04:16,382 Babbage ebbe l'ispirazione per il suo funzionamento. 82 00:04:16,966 --> 00:04:19,593 Teneva una copia di questa foto appesa a casa sua. 83 00:04:20,219 --> 00:04:23,347 Il motore analitico di Babbage, come il telaio di Jacquard, 84 00:04:23,431 --> 00:04:25,391 aveva parti fisiche: gli hardware. 85 00:04:25,599 --> 00:04:27,101 E, come il telaio, 86 00:04:27,184 --> 00:04:31,272 gli si poteva dare istruzioni attraverso carte forate. 87 00:04:31,689 --> 00:04:33,774 I fori lasciavano passare degli spilli 88 00:04:33,858 --> 00:04:36,360 e la loro assenza rimandava indietro gli altri 89 00:04:36,652 --> 00:04:39,113 creando una catena di calcoli meccanici. 90 00:04:39,864 --> 00:04:41,324 Le carte forate 91 00:04:41,615 --> 00:04:42,825 sono i software. 92 00:04:43,701 --> 00:04:46,203 Babbage non portò mai a termine il suo Motore Analitico, 93 00:04:46,579 --> 00:04:50,624 ma una giovane donna che lavorava con lui vide che il suo potenziale rivoluzionario 94 00:04:50,750 --> 00:04:52,376 andava oltre la matematica. 95 00:04:52,668 --> 00:04:55,671 Ada Byron, contessa di Lovelace, scrisse: 96 00:04:56,005 --> 00:05:02,011 "I limiti dell'aritmetica furono superati quando si ricorse alle carte forate..." 97 00:05:02,261 --> 00:05:04,221 Vide ciò che aveva visto Jacquard: 98 00:05:04,347 --> 00:05:06,974 i fori potevano essere molto più che semplici numeri. 99 00:05:07,058 --> 00:05:08,267 Potevano essere disegni, 100 00:05:08,392 --> 00:05:09,310 musica... 101 00:05:10,644 --> 00:05:12,271 ...o intere frasi. 102 00:05:12,772 --> 00:05:15,066 Lo si può considerare una sorta di codice Morse. 103 00:05:15,274 --> 00:05:19,987 Ogni lettera dell'alfabeto Morse è un insieme di due segni: 104 00:05:20,071 --> 00:05:21,739 ...oppure... 105 00:05:21,906 --> 00:05:22,865 È binario. 106 00:05:23,324 --> 00:05:26,452 E quei semplici bip permettono di dire qualsiasi cosa, 107 00:05:26,535 --> 00:05:29,330 come questa chiamata d'emergenza inviata dal Titanic nel 1912. 108 00:05:29,413 --> 00:05:31,374 ABBIAMO COLPITO UN ICEBERG. AFFONDIAMO... 109 00:05:31,457 --> 00:05:34,502 "SOS" non significa niente. 110 00:05:34,710 --> 00:05:37,880 È solo molto semplice da inviare con il codice Morse. 111 00:05:38,089 --> 00:05:42,885 Si può pensare ogni lettera come una combinazione 112 00:05:42,968 --> 00:05:44,512 di 0 e di 1. 113 00:05:44,804 --> 00:05:45,930 Lo riconoscete? 114 00:05:46,138 --> 00:05:47,640 Questo è un codice binario. 115 00:05:47,848 --> 00:05:51,769 Ed è così che colmiamo il divario tra le macchine e il linguaggio umano. 116 00:05:51,894 --> 00:05:55,773 Ogni 1 o 0 è una cifra binaria, o "bit". 117 00:05:55,940 --> 00:05:58,359 Sono gli atomi dell'informatica moderna. 118 00:05:58,484 --> 00:06:00,569 Forse li conoscete con un altro nome: 119 00:06:00,653 --> 00:06:02,613 otto bit fanno un byte. 120 00:06:03,239 --> 00:06:07,576 Avete presente la foto sul vostro PC da 1.1 megabyte? 121 00:06:08,160 --> 00:06:11,956 Sono otto milioni e ottocentomila zeri e uno. 122 00:06:12,373 --> 00:06:16,919 Così come i punti e le linee Morse servono a scrivere... 123 00:06:17,002 --> 00:06:20,297 le serie di 0 e 1 del codice binario sono un modo per scrivere 124 00:06:20,423 --> 00:06:22,508 ciò che accade in un computer: 125 00:06:23,217 --> 00:06:24,802 Carica, sì o no. 126 00:06:25,511 --> 00:06:27,555 Questo è un semplice circuito elettrico. 127 00:06:27,763 --> 00:06:30,599 Immaginate milioni di questi che lavorano insieme. 128 00:06:31,016 --> 00:06:32,476 Il computer moderno. 129 00:06:33,018 --> 00:06:35,271 Su un circuito elettrico, questo è un bit. 130 00:06:35,604 --> 00:06:37,857 La lampadina è spenta? Zero. 131 00:06:38,107 --> 00:06:39,567 Accesa? Uno. 132 00:06:40,067 --> 00:06:42,194 I computer rispondono solo a stimoli elettrici 133 00:06:42,278 --> 00:06:44,947 quindi ciò che i programmatori fanno, 134 00:06:45,489 --> 00:06:46,323 alla fin fine, 135 00:06:46,449 --> 00:06:49,368 è solo una serie di on e off. 136 00:06:49,702 --> 00:06:53,205 Funziona perché, se disposti nella giusta sequenza, 137 00:06:53,414 --> 00:06:56,041 possono rappresentare una sequenza logica. 138 00:06:56,625 --> 00:07:00,754 In pratica, la logica è una serie prevedibile di fatti o eventi, 139 00:07:01,255 --> 00:07:03,048 come chiudere quest'interruttore... 140 00:07:04,467 --> 00:07:07,136 ...e quest'altro per far suonare la campanella. 141 00:07:09,054 --> 00:07:12,516 Infatti, gli informatici lo chiamano "Circuito logico AND". 142 00:07:13,476 --> 00:07:15,644 O "porta" logica. 143 00:07:15,769 --> 00:07:18,439 Vediamo se ci riesco senza bruciare il tavolo. 144 00:07:18,522 --> 00:07:21,567 In una porta AND, entrambi i circuiti devono essere chiusi 145 00:07:21,650 --> 00:07:22,902 perché si accenda la luce. 146 00:07:23,235 --> 00:07:24,695 Ci sono porte OR, 147 00:07:24,778 --> 00:07:28,282 in cui la luce si accende se solo uno dei circuiti è chiuso. 148 00:07:28,365 --> 00:07:29,700 Mettiamola in un altro modo. 149 00:07:29,909 --> 00:07:34,371 Se uno di questi circuiti è chiuso, allora accendi la luce. 150 00:07:34,497 --> 00:07:36,916 Questa sequenza "se allora" 151 00:07:36,999 --> 00:07:38,083 è un algoritmo. 152 00:07:38,292 --> 00:07:42,505 Oggi la parola "algoritmo" crea un bel po' di confusione. 153 00:07:42,755 --> 00:07:45,925 Gli algoritmi impazziti non sono una novità! 154 00:07:46,008 --> 00:07:49,094 Il funzionamento degli algoritmi è un mistero per molti. 155 00:07:49,178 --> 00:07:51,847 Che cavolo è un algoritmo? 156 00:07:51,972 --> 00:07:54,892 Un algoritmo è solo un insieme di istruzioni. 157 00:07:55,184 --> 00:07:56,810 Immaginate di andare in un negozio. 158 00:07:56,894 --> 00:07:59,522 Si può girare a sinistra e poi a destra. 159 00:07:59,647 --> 00:08:02,525 Oppure prima a destra e poi a sinistra. 160 00:08:02,900 --> 00:08:06,111 O anche girare quattro volte a sinistra, fare un giro al parco, 161 00:08:06,195 --> 00:08:09,281 attraversare la strada, e poi girare quattro volte a destra. 162 00:08:09,365 --> 00:08:12,076 Proprio come ci sono modi diversi per raggiungere un posto, 163 00:08:12,159 --> 00:08:14,578 nella programmazione ci sono diversi algoritmi 164 00:08:14,662 --> 00:08:16,288 per risolvere lo stesso problema. 165 00:08:16,372 --> 00:08:20,042 L'obiettivo è trovare quello più elegante ed efficiente. 166 00:08:20,459 --> 00:08:22,795 Un bel codice non si ripete. 167 00:08:22,920 --> 00:08:24,922 È molto elegante. È efficace. 168 00:08:25,631 --> 00:08:29,051 I computer che eseguivano gli algoritmi facevano quello che gli dicevamo, 169 00:08:29,134 --> 00:08:30,844 ma molto più velocemente, 170 00:08:31,136 --> 00:08:33,764 il che aumentava le potenzialità per gli esseri umani. 171 00:08:34,223 --> 00:08:37,601 Quando gli scienziati iniziarono a sviluppare la bomba a fusione, 172 00:08:38,018 --> 00:08:40,437 all'inizio usarono calcolatori umani. 173 00:08:40,896 --> 00:08:42,815 Ma poi passarono a questo: 174 00:08:43,315 --> 00:08:47,152 l'ENIAC fece calcoli termonucleari per sei settimane. 175 00:08:47,903 --> 00:08:50,197 I risultati contribuirono a questo: 176 00:08:51,323 --> 00:08:53,701 il primo test andato a buon fine nel 1952 177 00:08:54,076 --> 00:08:57,580 di una bomba centinaia di volte più potente di quella a fissione 178 00:08:57,663 --> 00:09:00,833 lanciata su Hiroshima e Nagasaki nella Seconda Guerra Mondiale. 179 00:09:01,500 --> 00:09:04,920 La possibilità di programmare permise agli esseri umani di realizzare 180 00:09:05,212 --> 00:09:06,463 ciò che volevano. 181 00:09:06,547 --> 00:09:07,506 STRATOSFERA 160 KM 182 00:09:07,590 --> 00:09:11,135 Ma negli anni '40 era tutto ancora macchinoso. 183 00:09:11,468 --> 00:09:16,056 La programmazione binaria non era adattabile. 184 00:09:16,223 --> 00:09:19,226 Le persone volevano ottenere di più dai codici. 185 00:09:19,310 --> 00:09:21,520 Ma volevano un modo più semplice di scriverli. 186 00:09:22,438 --> 00:09:27,776 La storia della programmazione da allora consiste nel renderla più simile possibile 187 00:09:27,860 --> 00:09:29,028 al linguaggio umano 188 00:09:29,403 --> 00:09:32,990 inventando ciò che quasi tutti i programmatori usano oggi: 189 00:09:33,115 --> 00:09:34,908 i linguaggi di programmazione. 190 00:09:35,200 --> 00:09:39,288 Rispetto al codice binario, si tratta di linguaggi piuttosto astratti. 191 00:09:39,580 --> 00:09:41,707 Astrazione è una parola difficile. 192 00:09:42,249 --> 00:09:45,669 I linguaggi più astratti si riducono agli stessi uno e zeri, 193 00:09:45,794 --> 00:09:48,213 semplicemente organizzati in modo migliore. 194 00:09:48,714 --> 00:09:50,966 Pensiamolo in termini biologici. 195 00:09:51,550 --> 00:09:53,135 Gli essere umani sono complessi, 196 00:09:53,218 --> 00:09:56,972 ma il 99% del corpo umano è fatto di soli sei elementi. 197 00:09:57,348 --> 00:10:00,184 Da questi si arriva a molecole più grandi. 198 00:10:00,267 --> 00:10:04,730 Da questo primo livello al più semplice fra gli esseri viventi, 199 00:10:04,813 --> 00:10:06,273 il salto non è indifferente. 200 00:10:06,357 --> 00:10:07,608 Il cervello umano 201 00:10:07,691 --> 00:10:09,693 fa cose così avanzate 202 00:10:09,777 --> 00:10:12,529 che è difficile credere sia composto dagli stessi elementi. 203 00:10:12,946 --> 00:10:16,784 È lo stesso nel caso dei computer, solo che sono molto più semplici. 204 00:10:17,951 --> 00:10:19,203 Questa è la buona notizia. 205 00:10:19,578 --> 00:10:23,040 La storia della programmazione consiste nel muovere questa casella, 206 00:10:23,165 --> 00:10:25,250 allontanandola dal codice binario per trovare 207 00:10:25,334 --> 00:10:28,837 modi più facili e veloci di programmare 208 00:10:29,088 --> 00:10:32,049 senza dover fare i conti, o addirittura comprendere, 209 00:10:32,466 --> 00:10:34,802 le porte logiche e binarie alla base. 210 00:10:35,344 --> 00:10:38,931 Questo permette ai programmatori di creare i prodotti che conosciamo. 211 00:10:39,306 --> 00:10:41,308 Il primo passo per arrivarci fu... 212 00:10:41,850 --> 00:10:45,813 Il linguaggio assembly, molto più facile da leggere e scrivere. 213 00:10:46,188 --> 00:10:49,608 Al posto di 0-1-0-0-0-1-1-1, 214 00:10:49,858 --> 00:10:51,318 usiamo "add", 215 00:10:51,694 --> 00:10:58,200 e un programma chiamato assembler traduce le lettere 216 00:10:58,283 --> 00:11:03,455 A-D-D nei suoi equivalenti in codice binario. 217 00:11:03,580 --> 00:11:07,459 A questo livello, il codice binario è organizzato in lettere e numeri, 218 00:11:07,626 --> 00:11:10,379 come gli atomi alla base delle molecole. 219 00:11:10,921 --> 00:11:15,217 Eppure, programmare in questo modo restava difficile, 220 00:11:15,843 --> 00:11:19,513 perché computer diversi usavano diversi linguaggi assembly. 221 00:11:20,097 --> 00:11:24,810 Il programma scritto per un computer non funzionava per gli altri. 222 00:11:25,102 --> 00:11:27,187 Presto si iniziò a pensare 223 00:11:27,271 --> 00:11:32,818 di voler dare istruzioni al computer con le parole che si usano tutti i giorni. 224 00:11:33,193 --> 00:11:35,863 Ci sono linguaggi di programmazione 225 00:11:35,946 --> 00:11:39,825 costruiti usando il linguaggio assembly 226 00:11:39,950 --> 00:11:42,911 e poi, da quei linguaggi, ne abbiamo costruiti altri. 227 00:11:43,370 --> 00:11:44,955 Li avrete sentiti nominare. 228 00:11:45,038 --> 00:11:45,914 - LISP. - BASIC. 229 00:11:45,998 --> 00:11:47,207 - JAVA. - C++. 230 00:11:47,291 --> 00:11:49,042 - Python 3. - HTML 5. 231 00:11:49,126 --> 00:11:51,044 PEARL, PHP, un po' di C... 232 00:11:51,128 --> 00:11:53,756 Proprio come le lingue parlate sono modi diversi 233 00:11:53,839 --> 00:11:56,717 di esprimere lo stesso concetto ad altre persone, 234 00:11:57,050 --> 00:12:00,012 i linguaggi di programmazione sono modi diversi di esprimere 235 00:12:00,137 --> 00:12:01,972 lo stesso concetto ai computer. 236 00:12:02,347 --> 00:12:05,058 Abbiamo più di un linguaggio di alto livello 237 00:12:05,142 --> 00:12:07,936 perché, prima di tutto, linguaggi diversi 238 00:12:08,020 --> 00:12:10,105 rispondono a bisogni diversi. 239 00:12:10,731 --> 00:12:12,024 Prendiamo questi due. 240 00:12:12,191 --> 00:12:15,944 Questo, COBOL, fu creato alla fine degli anni '50 241 00:12:16,028 --> 00:12:18,906 per facilitare l'uso del codice da parte delle aziende. 242 00:12:19,239 --> 00:12:23,410 Assomiglia molto all'inglese, se non che ogni conversazione 243 00:12:23,494 --> 00:12:25,579 finisce con "STOP RUN". 244 00:12:26,497 --> 00:12:32,753 Questo, CPL, fu sviluppato negli anni '60 e includeva più calcoli scientifici. 245 00:12:33,212 --> 00:12:35,297 È come l'evoluzione biologica. 246 00:12:35,631 --> 00:12:38,425 Gli organismi più complessi sviluppano caratteristiche 247 00:12:38,509 --> 00:12:41,637 che li rendono più adatti al loro ambiente. 248 00:12:42,012 --> 00:12:45,933 Francamente, è anche una questione di gusti. 249 00:12:46,558 --> 00:12:50,521 Alla gente piace esprimersi in modo diverso. 250 00:12:50,604 --> 00:12:52,397 Ad esempio, il linguaggio C++... 251 00:12:52,481 --> 00:12:54,024 IL C++ FA DAVVERO COSÌ SCHIFO? 252 00:12:54,107 --> 00:12:56,068 Per Elon Musk sì. 253 00:12:56,360 --> 00:12:57,611 Potete inventarne uno voi. 254 00:12:58,028 --> 00:13:02,533 Questo è un linguaggio di alto livello costituito solo dalla parola "moo". 255 00:13:02,950 --> 00:13:05,160 Dico sul serio. Si chiama COW, mucca. 256 00:13:05,285 --> 00:13:08,956 Questo è composto di citazioni di film con Arnold Schwarzenegger. 257 00:13:09,164 --> 00:13:13,252 Ogni volta che penso "Beh, adesso avremo finito", 258 00:13:13,335 --> 00:13:20,050 qualcuno inventa un nuovo linguaggio, e si crea il suo gruppo di seguaci. 259 00:13:20,175 --> 00:13:24,888 Non vedo un limite all'invenzione di nuovi linguaggi. 260 00:13:25,472 --> 00:13:29,017 E tutti questi linguaggi sono basati sulla logica. 261 00:13:29,393 --> 00:13:32,312 Per esempio, un programmatore di Netflix potrebbe dire 262 00:13:32,396 --> 00:13:35,899 "Se si sta guardando qualcosa da più di due ore, mostra questo." 263 00:13:36,024 --> 00:13:37,526 CONTINUA A GUARDARE - ESCI 264 00:13:37,609 --> 00:13:40,195 Ma affinché i codici avessero un impatto sul quotidiano, 265 00:13:40,279 --> 00:13:42,531 la gente doveva usare i computer. 266 00:13:42,739 --> 00:13:46,076 Quindi i computer dovevano essere più facili, intuitivi, 267 00:13:46,159 --> 00:13:48,370 e questo necessitava di un altro grande salto. 268 00:13:48,912 --> 00:13:50,497 Che ebbe inizio qui, 269 00:13:50,747 --> 00:13:54,334 in una dimostrazione tenuta da Doug Englebart nel 1968. 270 00:13:54,459 --> 00:13:56,587 Fra un attimo vedremo lo schermo 271 00:13:56,712 --> 00:14:01,425 e il modo in cui si muove il localizzatore insieme ai movimenti del mouse. 272 00:14:02,050 --> 00:14:06,346 Oggigiorno le persone non programmano scrivendo frasi 273 00:14:06,430 --> 00:14:10,309 su un foglio per poi darle a qualcuno 274 00:14:10,392 --> 00:14:11,476 che le inserisca. 275 00:14:11,560 --> 00:14:15,105 Ci si siede davanti allo schermo con un'interfaccia grafica. 276 00:14:15,564 --> 00:14:17,774 Le cosiddette GUI, 277 00:14:18,025 --> 00:14:21,236 che permettono di programmare senza dover digitare nulla, 278 00:14:22,487 --> 00:14:24,907 o di impiegare i codici più facilmente. 279 00:14:25,240 --> 00:14:29,661 Generalmente si lavora in un centro di programmazione 280 00:14:30,287 --> 00:14:36,501 come quello creato così bene da Alan e i suoi compagni, 281 00:14:36,585 --> 00:14:40,464 al Centro di Ricerca Palo Alto della Xerox nei primi anni '70. 282 00:14:40,714 --> 00:14:41,548 "Alan." 283 00:14:41,715 --> 00:14:42,633 Eccolo Alan. 284 00:14:42,883 --> 00:14:46,053 Lo considero il padre del personal computer 285 00:14:46,136 --> 00:14:50,265 perché è stato il primo a concepirlo in quel modo. 286 00:14:50,515 --> 00:14:54,353 E devo dire che, all'epoca, pensavo fosse fantascienza. 287 00:14:54,603 --> 00:14:56,772 Quando si fanno grandi cose, 288 00:14:58,106 --> 00:14:59,691 di solito si è più di uno. 289 00:14:59,816 --> 00:15:02,110 E, cavolo, Park è stato fantastico. 290 00:15:02,653 --> 00:15:04,196 È stato magico. 291 00:15:04,780 --> 00:15:08,450 L'interfaccia grafica ha permesso a milioni di persone 292 00:15:08,533 --> 00:15:12,871 di usare i computer in modo naturale. 293 00:15:13,538 --> 00:15:16,667 Quando la Xerox pubblicizzò le GUI nel 1979, 294 00:15:17,209 --> 00:15:20,379 mostrò come la programmazione poteva cambiare la vita quotidiana. 295 00:15:20,462 --> 00:15:22,923 Vai nel tuo ufficio, e un apparecchio Xerox 296 00:15:23,006 --> 00:15:25,008 ti fornirà la tua posta su uno schermo. 297 00:15:25,092 --> 00:15:27,344 Presto, sistemi Xerox come questo 298 00:15:27,427 --> 00:15:29,721 aiuteranno a gestire la risorsa più preziosa: 299 00:15:30,472 --> 00:15:31,431 le informazioni. 300 00:15:31,848 --> 00:15:34,893 C'erano persone come me e molte persone 301 00:15:34,977 --> 00:15:38,105 in questo gruppo di ricerca che volevano migliorare il mondo. 302 00:15:38,438 --> 00:15:41,733 Avevano un'idea strettamente connessa 303 00:15:41,858 --> 00:15:43,068 all'estensione dell'uomo. 304 00:15:43,610 --> 00:15:46,196 Qualcosa che interagisse con noi, 305 00:15:46,697 --> 00:15:47,864 il pubblico, 306 00:15:48,198 --> 00:15:50,784 la gente comune, rendendoci in grado 307 00:15:50,867 --> 00:15:53,245 di fare più cose di prima. 308 00:15:53,662 --> 00:15:56,039 Ci ha resi in grado di fare di più. 309 00:15:56,331 --> 00:15:59,084 Le GUI furono un grande salto in questo schema. 310 00:15:59,501 --> 00:16:03,630 E poi arrivò l'innovazione rivoluzionaria. 311 00:16:05,382 --> 00:16:09,177 Un nuovo modo di distribuire ciò che potevamo fare con i codici. 312 00:16:10,137 --> 00:16:14,433 In televisione si iniziò a parlare delle conseguenze di un tale programma. 313 00:16:14,808 --> 00:16:17,519 Immaginate di essere seduti a bere il caffè, 314 00:16:17,602 --> 00:16:20,439 e di accendere il computer per leggere le notizie. 315 00:16:20,522 --> 00:16:24,985 Immaginate un mondo in cui ogni parola scritta, ogni foto di un dipinto, 316 00:16:25,068 --> 00:16:28,697 ogni film girato, possa essere visto all'istante in casa vostra. 317 00:16:28,780 --> 00:16:33,744 Penso che siamo arrivati alla vetta di qualcosa di bellissimo e terrificante. 318 00:16:33,827 --> 00:16:35,287 È solo uno strumento, no? 319 00:16:35,370 --> 00:16:36,204 No, non lo è. 320 00:16:36,288 --> 00:16:40,667 Oggi, i software più efficaci sfruttano tutte queste innovazioni. 321 00:16:40,751 --> 00:16:44,671 Uno studente universitario usò un linguaggio di programmazione, PHP, 322 00:16:44,755 --> 00:16:47,632 per rendere possibile la condivisione su internet 323 00:16:47,716 --> 00:16:50,010 attraverso computer con le interfacce grafiche. 324 00:16:50,093 --> 00:16:53,680 Ne parlò nella sua prima intervista in TV nel 2004. 325 00:16:53,764 --> 00:16:56,433 È una rubrica virtuale che permette di rimanere in contatto 326 00:16:56,516 --> 00:16:59,478 all'interno delle università e nei social network locali. 327 00:16:59,561 --> 00:17:02,731 Ora contiamo 100.000 iscritti, chissà a quanti arriveremo. 328 00:17:02,814 --> 00:17:08,320 Siamo arrivati a due miliardi di persone su Facebook al mese. 329 00:17:08,695 --> 00:17:11,656 Oggi i programmatori plasmano miliardi di vite umane. 330 00:17:11,907 --> 00:17:15,869 Riguardo a lavoro, acquisti, cibo, affetti, relax. 331 00:17:16,203 --> 00:17:17,537 Che stai facendo ora? 332 00:17:17,621 --> 00:17:21,208 Mi stai guardando su un web browser Netflix. 333 00:17:23,376 --> 00:17:27,255 Netflix stesso è un programma, eseguito in un browser, 334 00:17:27,339 --> 00:17:28,381 ovvero un programma, 335 00:17:28,507 --> 00:17:33,804 eseguito su un computer progettato usando dei programmi. 336 00:17:34,054 --> 00:17:35,680 È una matrioska. 337 00:17:37,599 --> 00:17:40,519 Il codice è come l'architetto di un museo 338 00:17:41,311 --> 00:17:43,355 a cui milioni di persone pensano, 339 00:17:43,480 --> 00:17:45,857 in cui vi camminano e che usano tutti i giorni. 340 00:17:46,191 --> 00:17:49,569 Programmare non ha eguali, è pura creazione. 341 00:17:49,653 --> 00:17:52,030 Pensi a come qualcosa dovrebbe funzionare, 342 00:17:52,364 --> 00:17:56,201 ti siedi davanti al computer 343 00:17:56,284 --> 00:17:58,078 e cerchi di realizzarla. 344 00:17:58,161 --> 00:18:01,039 Penso che sia un ruolo di grande responsabilità. 345 00:18:01,164 --> 00:18:04,000 Si ha un limite di velocità. 346 00:18:04,167 --> 00:18:05,836 Non più di 100 chilometri orari. 347 00:18:06,545 --> 00:18:07,420 Va bene. 348 00:18:07,712 --> 00:18:11,299 Ma se avessi un'auto e il computer dicesse: 349 00:18:12,092 --> 00:18:15,053 "Quest'auto non può andare più veloce di 100 km all'ora"? 350 00:18:15,637 --> 00:18:17,973 È un modo diverso di controllare il comportamento. 351 00:18:18,056 --> 00:18:23,395 Spesso, controllando le nostre scelte, i programmi nella nostra vita 352 00:18:23,478 --> 00:18:27,941 hanno un effetto regolatore maggiore della legge. 353 00:18:28,525 --> 00:18:30,819 E potrebbe essere una bella cosa. 354 00:18:30,944 --> 00:18:35,198 Ci sono circa sei milioni di incidenti negli Stati Uniti ogni anno, 355 00:18:35,282 --> 00:18:39,494 e un'analisi ha rilevato che il 94% è causato da chi è alla guida. 356 00:18:40,370 --> 00:18:43,456 I progressi nella programmazione potrebbero salvare milioni di vite. 357 00:18:43,665 --> 00:18:47,127 Ma possono anche mettere delle vite in pericolo. 358 00:18:47,460 --> 00:18:50,922 Ho la cosiddetta cardiomiopatia ipertrofica, 359 00:18:51,006 --> 00:18:56,219 che è il termine medico per dire che ho un cuore grande. 360 00:18:56,511 --> 00:18:58,096 Letteralmente. 361 00:18:58,180 --> 00:19:00,932 È circa tre volte più grande di un cuore normale. 362 00:19:01,016 --> 00:19:05,937 L'ho scoperto quando avevo circa 30 anni, quindi il rischio di morire a 40 363 00:19:06,021 --> 00:19:07,147 era molto alto. 364 00:19:07,439 --> 00:19:10,025 L'elettrofisiologo ha detto che non era un problema 365 00:19:10,108 --> 00:19:12,485 e potevo mettere un pacemaker. 366 00:19:13,028 --> 00:19:15,030 Questo dispositivo funziona con i codici. 367 00:19:15,697 --> 00:19:20,243 Un paio d'anni fa, quando ero incinta, il mio cuore ebbe delle palpitazioni. 368 00:19:20,744 --> 00:19:24,748 Circa 1/4 delle donne ha le palpitazioni, è normale. 369 00:19:25,207 --> 00:19:29,586 Ma il pacemaker pensò fosse sbagliato, e mi diede la scossa. 370 00:19:29,669 --> 00:19:34,132 L'obiettivo dei produttori di pacemaker non è farci prendere la scossa incinta. 371 00:19:34,216 --> 00:19:36,426 È l'ultima cosa che vogliono. 372 00:19:36,635 --> 00:19:39,262 Solo che non l'avevano considerato. 373 00:19:39,346 --> 00:19:42,474 Ci sono un sacco di decisioni 374 00:19:43,141 --> 00:19:47,395 che i programmatori dovranno prendere. 375 00:19:48,188 --> 00:19:50,690 E inevitabilmente 376 00:19:51,066 --> 00:19:53,735 ci sarà una combinazione di circostanze 377 00:19:53,818 --> 00:19:55,904 che non avevano previsto. 378 00:19:56,238 --> 00:19:58,198 Quello che cerchiamo di insegnare 379 00:19:58,281 --> 00:20:01,910 quando insegniamo l'arte della programmazione 380 00:20:02,244 --> 00:20:04,496 è pensare e considerare 381 00:20:04,621 --> 00:20:07,540 tutti i diversi scenari. 382 00:20:07,832 --> 00:20:10,168 Come cercare di essere esaustivo 383 00:20:10,418 --> 00:20:16,091 senza farsi fermare dal numero di cose che ci sono da considerare. 384 00:20:16,341 --> 00:20:20,011 E sarà sempre di più così perché ora si programma 385 00:20:20,136 --> 00:20:21,930 in modi completamente diversi. 386 00:20:22,305 --> 00:20:25,517 Nel modo tradizionale si programmano le istruzioni per un computer. 387 00:20:26,059 --> 00:20:28,895 Ora siamo in grado di dare al computer una serie di input 388 00:20:28,979 --> 00:20:30,230 e di output 389 00:20:30,313 --> 00:20:33,525 affinché si scriva i programmi da solo. 390 00:20:33,817 --> 00:20:37,404 Ciò che si fa è dare al computer 391 00:20:38,280 --> 00:20:39,739 molteplici esempi 392 00:20:40,073 --> 00:20:43,660 categorizzandoli come: "questa è una festa." 393 00:20:43,785 --> 00:20:47,247 Poi gli si dà altri input. L'ufficio di un dentista: non è una festa. 394 00:20:47,330 --> 00:20:49,040 Una classe: non è una festa. 395 00:20:49,374 --> 00:20:53,169 Il computer guarda gli esempi e cerca di creare 396 00:20:53,253 --> 00:20:55,046 un sistema di classificazione. 397 00:20:55,255 --> 00:20:57,173 Si chiama apprendimento automatico. 398 00:20:57,257 --> 00:20:59,968 Quando si parla di intelligenza artificiale, 399 00:21:00,552 --> 00:21:01,553 si intende questo. 400 00:21:01,636 --> 00:21:05,390 È un tipo completamente diverso di astrazione 401 00:21:05,473 --> 00:21:06,641 e di agire 402 00:21:06,725 --> 00:21:11,438 che si discosta dal modo a cui siamo abituati. 403 00:21:11,646 --> 00:21:15,442 Si chiamano algoritmi di apprendimento automatico perché il computer 404 00:21:15,525 --> 00:21:17,736 genera le proprie istruzioni da seguire. 405 00:21:18,069 --> 00:21:21,990 Ma, alla fine, anche loro vengono tradotte 406 00:21:22,073 --> 00:21:24,451 in piccole istruzioni. 407 00:21:25,201 --> 00:21:28,204 Google Traduttore prima era fatto da milioni di linee di codici. 408 00:21:28,538 --> 00:21:32,751 Milioni di istruzioni date da persone. 409 00:21:32,876 --> 00:21:35,378 Al momento, Google Traduttore 410 00:21:35,462 --> 00:21:40,008 è composto da 500 linee che sfruttano l'apprendimento automatico. 411 00:21:40,300 --> 00:21:44,304 Supponiamo che, a causa di una svista, nessuna delle foto delle feste inserite 412 00:21:44,387 --> 00:21:46,639 includesse neri o ispanici. 413 00:21:46,765 --> 00:21:49,434 Il computer potrebbe decidere che ci sia una regola per cui 414 00:21:49,517 --> 00:21:52,562 solo bianchi e asiatici possono essere invitati. 415 00:21:52,812 --> 00:21:56,232 Ci sono un sacco di bianchi e asiatici tra i programmatori. 416 00:21:56,733 --> 00:22:01,196 Dovremmo estendere la possibilità di accedere alle sale di programmazione 417 00:22:01,279 --> 00:22:02,322 per milioni di motivi. 418 00:22:02,405 --> 00:22:05,325 Ne risulteranno domande migliori grazie alle esperienze diverse. 419 00:22:05,408 --> 00:22:09,037 Ma, alla fine, se i dati forniti al sistema di apprendimento automatico 420 00:22:09,120 --> 00:22:13,208 sono, ad esempio, il sistema giudiziario con forti componenti razziste, 421 00:22:13,291 --> 00:22:17,170 anche se i programmatori sembrano una pubblicità della Benetton, 422 00:22:17,253 --> 00:22:22,384 razze diverse, volti diversi, diversi contesti sociali... 423 00:22:22,634 --> 00:22:25,303 il sistema imparerà comunque dai dati forniti. 424 00:22:25,387 --> 00:22:28,139 Senza qualcuno che li corregga, 425 00:22:28,223 --> 00:22:31,226 i dati del passato ci porteranno a ripetere gli errori del passato. 426 00:22:31,309 --> 00:22:33,728 L'INTELLIGENZA ARTIFICIALE MANDA INNOCENTI IN PRIGIONE 427 00:22:33,812 --> 00:22:38,358 La storia della programmazione riguarda l'ambizione e la creatività umana. 428 00:22:38,566 --> 00:22:41,528 Decollo del razzo Falcon 9. 429 00:22:41,611 --> 00:22:44,030 Abbiamo visto ciò che credevamo impossibile. 430 00:22:44,697 --> 00:22:45,740 Un buco nero. 431 00:22:46,366 --> 00:22:47,867 Stiamo costruendo un nuovo mondo 432 00:22:48,284 --> 00:22:52,122 con strumenti sempre più intuitivi e utilizzabili sempre più su larga scala 433 00:22:52,664 --> 00:22:55,750 per far sì che quel mondo sia migliore. 434 00:22:56,126 --> 00:22:59,546 Abbiamo intrapreso un percorso per rendere i computer più accessibili 435 00:22:59,629 --> 00:23:02,382 all'uomo e a un maggior numero di persone. 436 00:23:02,507 --> 00:23:07,178 Abbiamo visto il cambiamento con i nostri occhi negli ultimi 50 anni. 437 00:23:07,262 --> 00:23:09,139 Ecco perché è emozionante quest'epoca. 438 00:23:09,973 --> 00:23:13,935 È importante ricordare che tutto ciò che usiamo al computer 439 00:23:14,227 --> 00:23:16,187 è stato creato da un essere umano. 440 00:23:17,147 --> 00:23:21,317 Si può essere una di quelle persone, in realtà, ed è importante diventarlo. 441 00:23:21,401 --> 00:23:24,154 Si può cambiare il mondo in un modo davvero fondamentale. 442 00:23:24,571 --> 00:23:28,616 C'è un mondo che verrà gestito usando l'apprendimento automatico, 443 00:23:28,741 --> 00:23:32,162 i dati e la programmazione tradizionale in modi sempre più disparati. 444 00:23:32,662 --> 00:23:35,123 E come società dobbiamo dire 445 00:23:35,206 --> 00:23:37,750 "Ok, abbiamo questa tecnologia così avanzata 446 00:23:38,251 --> 00:23:43,089 e potrebbe essere fantastica, ma non farà tutto da sola."