1 00:00:09,510 --> 00:00:10,762 911, emergência? 2 00:00:11,679 --> 00:00:13,389 911, qual a emergência? 3 00:00:13,473 --> 00:00:14,932 911, qual a emergência? 4 00:00:15,058 --> 00:00:16,392 911, qua... 5 00:00:19,854 --> 00:00:24,400 Em 9 de abril de 2014, o serviço de emergência de repente parou 6 00:00:24,484 --> 00:00:27,111 para milhões de pessoas nos Estados Unidos. 7 00:00:27,779 --> 00:00:30,031 Caiu por mais de seis horas. 8 00:00:30,364 --> 00:00:33,367 Mais de 6 mil ligações de emergência não foram atendidas. 9 00:00:33,910 --> 00:00:35,912 O governo rastreou o problema a um computador 10 00:00:35,995 --> 00:00:38,873 num centro de encaminhamento de chamadas em Englewood, Colorado. 11 00:00:39,082 --> 00:00:41,209 Era um simples erro de programação. 12 00:00:41,918 --> 00:00:43,961 O encarregado de programar aquele computador 13 00:00:44,045 --> 00:00:47,507 escolheu um teto para o número de ligações que poderia registrar, 14 00:00:47,840 --> 00:00:51,010 um limite que ele achou que o computador nunca atingiria. 15 00:00:51,427 --> 00:00:54,222 Mas naquela noite em 2014, atingiu. 16 00:00:54,680 --> 00:00:56,933 O computador seguiu perfeitamente as instruções. 17 00:00:57,016 --> 00:00:59,310 Alcançou o limite e parou de encaminhar chamadas. 18 00:01:00,061 --> 00:01:01,979 O problema não era o computador, 19 00:01:02,105 --> 00:01:03,940 e não era um problema no programa. 20 00:01:04,482 --> 00:01:06,067 Foi a programação, 21 00:01:06,275 --> 00:01:09,362 o processo de tomada de decisão pelo qual pessoas se comunicam 22 00:01:09,445 --> 00:01:10,488 com o computador. 23 00:01:10,571 --> 00:01:14,659 Este tipo de poder vem com grandes responsabilidades éticas. 24 00:01:14,742 --> 00:01:15,910 Não há nada parecido. 25 00:01:15,993 --> 00:01:18,204 Nada substitui isso. 26 00:01:18,329 --> 00:01:19,747 Da mesma forma 27 00:01:19,831 --> 00:01:20,915 em que construtores 28 00:01:21,541 --> 00:01:23,751 determinam como sua vida é vivida na cidade, 29 00:01:23,835 --> 00:01:28,840 programação controla como vivemos on-line, o que, basicamente, é como vivemos. 30 00:01:29,507 --> 00:01:31,300 Não só quando entramos na internet, 31 00:01:31,384 --> 00:01:33,594 mas quando ligamos pra serviços de emergência... 32 00:01:34,554 --> 00:01:35,596 ou vamos ao médico... 33 00:01:36,180 --> 00:01:37,598 ou entramos num carro. 34 00:01:37,890 --> 00:01:40,643 Estamos muito próximos da programação, todos os dias. 35 00:01:41,602 --> 00:01:47,024 Mesmo assim, só um terço de um por cento sabe como programar. 36 00:01:47,233 --> 00:01:49,986 Para a imensa maioria, é uma caixa preta. 37 00:01:50,695 --> 00:01:51,988 Mas não precisa ser. 38 00:01:52,446 --> 00:01:55,199 Como programação funciona? 39 00:01:55,658 --> 00:01:58,286 E que mundo novo estamos construindo com ela? 40 00:01:59,287 --> 00:02:01,122 UMA SÉRIE DOCUMENTAL ORIGINAL NETFLIX 41 00:02:01,205 --> 00:02:02,540 O computador. 42 00:02:03,082 --> 00:02:05,835 Uma coleção engenhosa de hardware eletrônico 43 00:02:05,918 --> 00:02:07,879 foi criada pelo homem. 44 00:02:08,087 --> 00:02:11,382 Não é que não tenhamos máquinas adequadas pra resolver problemas, 45 00:02:11,465 --> 00:02:14,177 mas não temos descrições adequadas de como resolvê-los. 46 00:02:14,260 --> 00:02:17,972 Quando se fala em programação, parece muito difícil. 47 00:02:18,556 --> 00:02:22,685 É muito importante lembrar que tudo o que você usa em um computador 48 00:02:22,768 --> 00:02:25,271 foi criado por um ser humano. 49 00:02:26,230 --> 00:02:27,648 CÓDIGO DE PROGRAMAÇÃO 50 00:02:31,944 --> 00:02:35,907 Imagine um alienígena perguntando: "Qual a importância da programação?" 51 00:02:35,990 --> 00:02:37,283 Eu diria: "Sabe, 52 00:02:37,533 --> 00:02:41,412 vivemos nesta terra física e, uns 50 anos atrás, 53 00:02:41,495 --> 00:02:44,582 um pequeno grupo de pessoas começou a construir outro planeta. 54 00:02:44,665 --> 00:02:46,876 Mas não era físico. Um planeta virtual. 55 00:02:47,001 --> 00:02:50,213 Olhe pelas ruas, você vê pessoas andando 56 00:02:50,296 --> 00:02:52,548 com a cabeça abaixada e olhando o celular? 57 00:02:52,632 --> 00:02:54,133 Na verdade, estão em outro mundo. 58 00:02:54,383 --> 00:02:56,093 Programação é isso. 59 00:02:56,219 --> 00:02:58,054 São os alicerces deste outro mundo. 60 00:03:00,056 --> 00:03:03,476 Este tear é o ancestral de todos os computadores e smartphones 61 00:03:03,559 --> 00:03:04,393 do mundo. 62 00:03:04,852 --> 00:03:06,854 Foi inventado em 1804, 63 00:03:06,938 --> 00:03:09,232 e a grande inovação eram estes cartões. 64 00:03:10,107 --> 00:03:13,194 Os buracos neles permitiam que só alguns pinos passassem. 65 00:03:14,237 --> 00:03:16,405 Com milhares de buracos em centenas de cartões, 66 00:03:16,489 --> 00:03:19,492 tecelões podiam fazer padrões mais complexos que antes. 67 00:03:20,243 --> 00:03:22,620 Xales elaborados ficaram muito populares na Europa. 68 00:03:23,037 --> 00:03:26,666 E o design dos tecidos podia ser tão intricado que parecia desenhos, 69 00:03:26,916 --> 00:03:29,168 como este, do inventor do tear. 70 00:03:30,169 --> 00:03:33,422 Antes desses teares, fios individuais precisavam ser selecionados à mão 71 00:03:33,547 --> 00:03:34,423 por "puxadores". 72 00:03:34,966 --> 00:03:36,801 As contas também eram feitas à mão, 73 00:03:36,884 --> 00:03:38,886 pelos chamados "computadores". 74 00:03:39,095 --> 00:03:40,972 Os primeiros computadores eram pessoas. 75 00:03:41,681 --> 00:03:43,557 E as melhores máquinas que tínhamos 76 00:03:43,641 --> 00:03:45,518 só faziam um tipo de conta, 77 00:03:46,227 --> 00:03:48,229 como o ábaco, para somar e subtrair. 78 00:03:49,480 --> 00:03:51,857 O matemático britânico Charles Babbage queria algo 79 00:03:51,941 --> 00:03:54,610 que pudesse fazer qualquer conta que você quisesse, 80 00:03:54,777 --> 00:03:57,029 ou melhor, que você programasse. 81 00:03:57,780 --> 00:04:00,908 Ele propôs uma máquina que chamou de "Máquina Analítica". 82 00:04:01,242 --> 00:04:04,662 A ideia de Babbage daria a ele um lugar na História. 83 00:04:05,037 --> 00:04:10,167 Os computadores foram inventados primeiro por Babbage, 84 00:04:10,710 --> 00:04:13,879 um inventor muito excêntrico. 85 00:04:14,046 --> 00:04:16,382 Babbage teve uma inspiração pro funcionamento. 86 00:04:16,966 --> 00:04:19,593 Ele tinha uma cópia desta imagem na parede de casa. 87 00:04:20,219 --> 00:04:23,347 A Máquina Analítica de Babbage, como o tear de Jacquard, 88 00:04:23,431 --> 00:04:25,391 tinha partes físicas: "hardware." 89 00:04:25,599 --> 00:04:27,101 E, também como no tear, 90 00:04:27,184 --> 00:04:31,272 podia-se dar instruções ao hardware na forma de cartões com buracos. 91 00:04:31,689 --> 00:04:33,065 Os pinos entravam, 92 00:04:33,149 --> 00:04:36,193 e a ausência de buracos forçava outros pinos pra trás, 93 00:04:36,652 --> 00:04:38,988 criando uma cadeia de cálculos mecânicos. 94 00:04:39,864 --> 00:04:41,324 Cartões com buracos diferentes: 95 00:04:41,615 --> 00:04:42,825 são o software. 96 00:04:43,701 --> 00:04:46,203 Babbage nunca terminou sua Máquina Analítica, 97 00:04:46,579 --> 00:04:50,416 mas uma jovem mulher trabalhando com ele viu que seu potencial transformador 98 00:04:50,666 --> 00:04:52,126 estava além da Matemática. 99 00:04:52,668 --> 00:04:55,671 Ada Byron, condessa de Lovelace, escreveu: 100 00:04:56,005 --> 00:04:59,675 "Os limites da aritmética foram ultrapassados quando a ideia 101 00:04:59,759 --> 00:05:02,011 de aplicar os cartões surgiu..." 102 00:05:02,261 --> 00:05:04,221 Ela viu o que Jacquard viu: 103 00:05:04,347 --> 00:05:06,891 os buracos podiam representar mais que apenas números. 104 00:05:07,058 --> 00:05:08,267 Podiam ser padrões, 105 00:05:08,392 --> 00:05:09,310 música... 106 00:05:10,644 --> 00:05:12,271 ou frases completas. 107 00:05:12,772 --> 00:05:14,982 Você pode pensar nisso como um código Morse. 108 00:05:15,274 --> 00:05:19,987 Cada letra em código Morse é feita com apenas dois sinais: 109 00:05:20,071 --> 00:05:21,739 ... ou ... 110 00:05:21,906 --> 00:05:22,865 É binário. 111 00:05:23,324 --> 00:05:26,452 E só com esses bipes, podemos dizer qualquer coisa, 112 00:05:26,952 --> 00:05:30,790 como este pedido de socorro enviado pelo Titanic em 1912. 113 00:05:31,457 --> 00:05:34,502 "SOS" não significa nada. 114 00:05:34,710 --> 00:05:37,880 É só muito simples de enviar em código Morse. 115 00:05:38,089 --> 00:05:42,885 Também podemos pensar em cada letra como uma combinação 116 00:05:42,968 --> 00:05:44,512 de zeros e uns. 117 00:05:44,637 --> 00:05:45,930 Parece familiar? 118 00:05:46,138 --> 00:05:47,640 Isso é código binário. 119 00:05:47,848 --> 00:05:51,769 E é com ele que transpomos a distância entre a linguagem das máquinas e a humana. 120 00:05:51,894 --> 00:05:55,773 Cada um ou zero é um dígito binário ou "bit". 121 00:05:55,940 --> 00:05:58,359 São os átomos da computação moderna. 122 00:05:58,484 --> 00:06:00,236 Talvez você conheça por outro nome: 123 00:06:00,653 --> 00:06:02,613 oito bits é um byte. 124 00:06:03,239 --> 00:06:07,576 Sabe aquela imagem no seu computador que tem 1,1 megabytes? 125 00:06:08,160 --> 00:06:11,956 São oito milhões e oitocentos uns e zeros. 126 00:06:12,373 --> 00:06:16,919 Como os pontos e traços do código Morse são só um jeito de escrever... e... 127 00:06:17,002 --> 00:06:20,297 os uns e zeros do código binário são só um jeito de escrever 128 00:06:20,423 --> 00:06:22,508 o que está acontecendo num computador moderno: 129 00:06:23,217 --> 00:06:24,802 carga ou não carga. 130 00:06:25,511 --> 00:06:27,346 Este é um circuito elétrico simples. 131 00:06:27,763 --> 00:06:30,599 Imagine milhões deles trabalhando juntos. 132 00:06:31,016 --> 00:06:32,476 Um computador hoje é assim. 133 00:06:33,018 --> 00:06:35,271 Em um circuito elétrico, isso é um bit. 134 00:06:35,604 --> 00:06:37,857 A lâmpada está apagada? Zero. 135 00:06:38,107 --> 00:06:39,567 Ligada? Um. 136 00:06:40,067 --> 00:06:42,069 Computadores só entendem eletricidade, 137 00:06:42,278 --> 00:06:44,947 então o que programadores fazem é, 138 00:06:45,489 --> 00:06:46,323 no fim das contas, 139 00:06:46,449 --> 00:06:49,368 só uma série de cargas ligadas ou desligadas. 140 00:06:49,702 --> 00:06:53,205 Tudo funciona porque, junto, do jeito certo, 141 00:06:53,414 --> 00:06:56,041 essas cargas podem representar lógica. 142 00:06:56,625 --> 00:07:00,754 Basicamente, lógica é uma série previsível de fatos ou eventos, 143 00:07:01,255 --> 00:07:03,048 como fechar este interruptor... 144 00:07:04,467 --> 00:07:07,052 e este para tocar um sino. 145 00:07:09,054 --> 00:07:12,516 Na verdade, na computação, chamamos isto de "Circuito AND Lógico". 146 00:07:13,476 --> 00:07:15,644 Ou "porta" lógica. 147 00:07:15,769 --> 00:07:18,439 Vamos ver se consigo fazer isso sem queimar a mesa toda. 148 00:07:18,522 --> 00:07:21,567 Em uma porta AND, ambos os circuitos precisam ser fechados 149 00:07:21,650 --> 00:07:22,818 para a luz acender. 150 00:07:23,235 --> 00:07:24,695 E há portas OR, 151 00:07:24,778 --> 00:07:28,199 em que a luz acende se apenas um deles estiver fechado. 152 00:07:28,365 --> 00:07:29,700 Expliquemos de outra forma. 153 00:07:29,909 --> 00:07:34,371 Se um desses circuitos estiver fechado, então, a luz liga. 154 00:07:34,497 --> 00:07:36,916 Esse tipo de frase "se... então" 155 00:07:36,999 --> 00:07:38,083 é um algoritmo. 156 00:07:38,292 --> 00:07:42,505 Na cultura popular de hoje, a palavra "algoritmo" causa confusão. 157 00:07:42,755 --> 00:07:45,925 Já vimos isso antes, esses algoritmos enlouquecerem! 158 00:07:46,008 --> 00:07:49,094 A forma como algoritmos funcionam é um mistério para a maioria. 159 00:07:49,178 --> 00:07:51,847 O que raios é um algoritmo? 160 00:07:51,972 --> 00:07:54,892 Mas um algoritmo é só um conjunto de orientações. 161 00:07:55,184 --> 00:07:56,644 Imagine ir à loja. 162 00:07:56,894 --> 00:07:59,522 Você pode virar à esquerda, depois à direita. 163 00:07:59,647 --> 00:08:02,525 Ou só virar à direita e depois à esquerda. 164 00:08:02,900 --> 00:08:04,985 Ou virar à esquerda quatro vezes, 165 00:08:05,069 --> 00:08:06,111 dar a volta no parque, 166 00:08:06,195 --> 00:08:07,029 cruzar a avenida 167 00:08:07,112 --> 00:08:09,031 e virar quatro vezes à direita. 168 00:08:09,365 --> 00:08:12,076 Assim como há orientações diferentes pra chegar a um lugar, 169 00:08:12,159 --> 00:08:14,578 em programação, pode haver algoritmos diferentes 170 00:08:14,662 --> 00:08:15,996 pra resolver um problema. 171 00:08:16,372 --> 00:08:20,042 O objetivo é encontrar o mais elegante e eficiente. 172 00:08:20,459 --> 00:08:22,795 Belos códigos não se repetem. 173 00:08:22,920 --> 00:08:24,922 É muito elegante. Poderoso. 174 00:08:25,631 --> 00:08:28,926 Computadores usando algoritmos só fizeram o que pedimos, 175 00:08:29,134 --> 00:08:30,844 mas muito mais rápido, 176 00:08:31,136 --> 00:08:33,764 o que deixou as pessoas muito mais poderosas. 177 00:08:34,223 --> 00:08:37,601 Quando cientistas começaram a desenvolver a bomba de hidrogênio, 178 00:08:38,018 --> 00:08:40,437 primeiro usaram computadores humanos. 179 00:08:40,896 --> 00:08:42,815 Mas depois usaram este: 180 00:08:43,315 --> 00:08:47,152 o computador ENIAC realizou cálculos termonucleares por seis semanas. 181 00:08:47,903 --> 00:08:50,197 Os resultados contribuíram diretamente com isto, 182 00:08:51,323 --> 00:08:53,659 o primeiro teste bem-sucedido em 1952 183 00:08:54,076 --> 00:08:57,580 de uma bomba mil vezes mais poderosa que as bombas atômicas 184 00:08:57,663 --> 00:09:00,708 jogadas em Hiroshima e Nagasaki durante a Segunda Guerra. 185 00:09:01,500 --> 00:09:04,920 O poder da programação amplificou a habilidade de as pessoas 186 00:09:05,421 --> 00:09:06,672 fazerem o que quisessem. 187 00:09:07,590 --> 00:09:11,135 Mas... nos anos 1940, ainda dava muito trabalho. 188 00:09:11,468 --> 00:09:16,056 Escrever programas em zeros e uns claramente não avança. 189 00:09:16,223 --> 00:09:19,018 As pessoas queriam mais do poder que a programação deu. 190 00:09:19,310 --> 00:09:21,520 Mas queriam formas mais fáceis de programar. 191 00:09:22,438 --> 00:09:27,776 A história desta ciência tem sido a história de aproximar a programação 192 00:09:27,860 --> 00:09:29,028 da linguagem humana 193 00:09:29,403 --> 00:09:32,990 inventando o que quase todos os programadores usam hoje: 194 00:09:33,115 --> 00:09:34,617 linguagens de programação. 195 00:09:35,200 --> 00:09:38,996 Comparadas a uns e zeros, essas linguagens são bem abstratas. 196 00:09:39,580 --> 00:09:41,457 Abstração é algo difícil pra muita gente. 197 00:09:42,249 --> 00:09:45,669 Linguagens mais abstratas resumem-se aos mesmos zeros e uns, 198 00:09:45,794 --> 00:09:48,213 mas achamos jeitos melhores de organizá-los. 199 00:09:48,881 --> 00:09:50,966 Você pode pensar em termos de Biologia. 200 00:09:51,550 --> 00:09:53,135 Humanos são muito complexos, 201 00:09:53,218 --> 00:09:56,972 mas 99% de nossos corpos é feito de apenas seis elementos. 202 00:09:57,348 --> 00:10:00,184 E você pode formar moléculas grandes. 203 00:10:00,267 --> 00:10:02,811 Entre essa camada da organização 204 00:10:02,895 --> 00:10:04,730 e a da forma viva mais simples, 205 00:10:04,813 --> 00:10:06,023 há um grande salto. 206 00:10:06,357 --> 00:10:07,608 E humanos têm cérebros, 207 00:10:07,691 --> 00:10:09,568 que fazem coisas tão avançadas 208 00:10:09,652 --> 00:10:12,488 que é difícil acreditar que são feitos da mesma coisa. 209 00:10:12,946 --> 00:10:16,784 Computadores são meio assim, mas muito mais simples. 210 00:10:17,951 --> 00:10:18,952 Essa é a boa notícia. 211 00:10:19,578 --> 00:10:22,915 A história da programação é a história de subir esta caixa, 212 00:10:23,165 --> 00:10:25,250 afastando-se do binário para nos dar 213 00:10:25,334 --> 00:10:28,837 formas mais fáceis, rápidas e poderosas de programar, 214 00:10:29,088 --> 00:10:32,049 sem ter de lidar, ou mesmo entender, 215 00:10:32,466 --> 00:10:34,718 as portas lógicas e binárias por trás. 216 00:10:35,344 --> 00:10:38,889 É isso que permite programadores fazerem produtos que conhecemos bem. 217 00:10:39,306 --> 00:10:41,308 O primeiro passo para isso foi... 218 00:10:41,850 --> 00:10:45,813 "Linguagem assembly", muito mais fácil de ler e escrever, 219 00:10:46,188 --> 00:10:49,608 em que, em vez de 0-1-0-0-0-1-1-1, você diz: 220 00:10:49,858 --> 00:10:51,318 "Vamos chamar de 'add'", 221 00:10:51,694 --> 00:10:58,200 e há um programa chamado assembler que traduz as letras. 222 00:10:58,283 --> 00:11:03,455 A-D-D para o equivalente apropriado em zeros e uns. 223 00:11:03,580 --> 00:11:07,292 Neste nível, o binário está organizado em letras e números, 224 00:11:07,626 --> 00:11:10,379 assim como átomos se organizam em moléculas. 225 00:11:10,921 --> 00:11:15,217 Mas programar em linguagem assembly ainda não era exatamente fácil 226 00:11:15,843 --> 00:11:19,513 porque todos esses computadores usavam linguagens assembly diferentes. 227 00:11:20,097 --> 00:11:24,810 Se escrevesse um programa para um, não funcionaria em nenhum dos outros. 228 00:11:25,102 --> 00:11:27,187 Muito rapidamente, começou-se a pensar 229 00:11:27,271 --> 00:11:29,440 que o que realmente queríamos dar ao computador 230 00:11:29,523 --> 00:11:32,818 são coisas baseadas no que usamos todos os dias. 231 00:11:33,193 --> 00:11:35,863 Há linguagens de programação 232 00:11:35,946 --> 00:11:39,825 que construímos usando a linguagem assembly 233 00:11:39,950 --> 00:11:42,953 e, a partir destas linguagens, construímos outras linguagens. 234 00:11:43,370 --> 00:11:44,955 Você provavelmente já ouviu falar. 235 00:11:45,038 --> 00:11:45,914 -LISP... -BASIC... 236 00:11:45,998 --> 00:11:47,207 -Java... -C++... 237 00:11:47,291 --> 00:11:49,042 -Python 3... -HTML 5... 238 00:11:49,126 --> 00:11:51,044 PEARL, PHP, um pouco de C... 239 00:11:51,128 --> 00:11:53,756 Assim como linguagens faladas são formas diferentes 240 00:11:53,839 --> 00:11:56,717 de expressar a mesma ideia a outras pessoas, 241 00:11:57,050 --> 00:12:00,012 linguagens de programação são formas diferentes de expressar 242 00:12:00,137 --> 00:12:01,972 a mesma ideia a computadores. 243 00:12:02,347 --> 00:12:05,058 Temos mais de uma linguagem de alto nível 244 00:12:05,142 --> 00:12:07,936 porque, primeiro, linguagens diferentes 245 00:12:08,020 --> 00:12:10,105 respondem a necessidades diferentes. 246 00:12:10,731 --> 00:12:12,024 Olhe essas duas. 247 00:12:12,191 --> 00:12:15,944 Esta, COBOL, foi criada no fim dos anos 1950 248 00:12:16,028 --> 00:12:18,906 para facilitar que negócios usassem programação. 249 00:12:19,239 --> 00:12:23,410 Parece bastante o inglês, mas toda conversação 250 00:12:23,494 --> 00:12:25,579 terminaria em "STOP RUN". 251 00:12:26,497 --> 00:12:32,753 Esta, CPL, foi desenvolvida nos anos 1960 e incluía computação mais científica. 252 00:12:33,212 --> 00:12:35,297 É como evolução biológica. 253 00:12:35,631 --> 00:12:38,425 Um organismo fica mais complexo e desenvolve características 254 00:12:38,509 --> 00:12:41,637 que o tornam mais adaptado a seu ambiente específico. 255 00:12:42,012 --> 00:12:45,933 E, francamente, também é questão de gosto. 256 00:12:46,558 --> 00:12:50,521 Pessoas gostam de ferramentas diferentes para se expressar. 257 00:12:50,604 --> 00:12:53,774 Por exemplo, a linguagem C++... 258 00:12:53,857 --> 00:12:56,068 Elon Musk não é um fã. 259 00:12:56,360 --> 00:12:57,611 Você podia inventar uma. 260 00:12:58,028 --> 00:13:02,533 Esta é uma linguagem de alto nível, feita toda com a palavra "moo". 261 00:13:02,950 --> 00:13:04,910 É sério. Chama COW, vaca em inglês. 262 00:13:05,285 --> 00:13:08,956 Esta é feita de citações de filmes do Arnold Schwarzenegger. 263 00:13:09,164 --> 00:13:13,252 Sempre que penso "Acho que agora já deu", 264 00:13:13,335 --> 00:13:20,050 alguém inventa uma nova linguagem e ela gera um grupo de devotos. 265 00:13:20,175 --> 00:13:24,888 Não vejo fim para a invenção de novas linguagens. 266 00:13:25,472 --> 00:13:29,017 E todas essas linguagens ainda se baseiam em lógica. 267 00:13:29,393 --> 00:13:32,312 Por exemplo, um programador da Netflix poderia dizer: 268 00:13:32,396 --> 00:13:35,899 "Se estiver assistindo há mais de duas horas, 269 00:13:36,024 --> 00:13:37,150 mostre isso." 270 00:13:37,609 --> 00:13:40,195 Mas, para programação impactar a vida da maioria, 271 00:13:40,279 --> 00:13:42,531 a maioria tinha de usar computadores. 272 00:13:42,739 --> 00:13:44,658 Ou seja, eles precisavam ser mais fáceis, 273 00:13:44,783 --> 00:13:46,076 amigáveis, 274 00:13:46,159 --> 00:13:48,370 e, para isso, outro grande salto era necessário. 275 00:13:48,912 --> 00:13:50,497 Que começou aqui, 276 00:13:50,747 --> 00:13:54,334 em uma demonstração feita por Doug Engelbart em 1968. 277 00:13:54,459 --> 00:13:56,587 Veremos a tela na qual ele está trabalhando 278 00:13:56,712 --> 00:13:58,547 e a forma como o ponto se move 279 00:13:58,630 --> 00:14:01,425 em conjunção com o mouse. 280 00:14:02,050 --> 00:14:06,346 Hoje, as pessoas não programam escrevendo frases 281 00:14:06,430 --> 00:14:10,309 em um pedaço de papel e depois entregando a alguém, 282 00:14:10,392 --> 00:14:11,476 que digita. 283 00:14:11,560 --> 00:14:15,105 Você senta em frente a uma tela, há uma interface gráfica do usuário. 284 00:14:15,355 --> 00:14:17,566 Hoje, chamamos de GUIs. 285 00:14:18,025 --> 00:14:21,111 Com GUIs, as pessoas podem programar sem digitar. 286 00:14:22,487 --> 00:14:24,907 Ou podem só usar programação mais facilmente. 287 00:14:25,240 --> 00:14:29,661 Você está tipicamente operando em um ambiente de programação 288 00:14:30,287 --> 00:14:34,958 do tipo que Alan e seus pares 289 00:14:35,042 --> 00:14:36,501 criaram de forma tão bela 290 00:14:36,585 --> 00:14:40,464 no Xerox Palo Alto Reasearch Center no começo dos anos 1970. 291 00:14:40,714 --> 00:14:41,548 "Alan." 292 00:14:41,715 --> 00:14:42,633 Este Alan. 293 00:14:42,883 --> 00:14:46,053 Acho que ele é o pai do computador doméstico, 294 00:14:46,136 --> 00:14:50,265 porque ele foi o primeiro a realmente articular esta visão. 295 00:14:50,515 --> 00:14:54,353 E preciso confessar que, na época, achei que era ficção científica. 296 00:14:54,436 --> 00:14:56,605 Quando algo grande realmente é feito, 297 00:14:58,106 --> 00:14:59,608 há toda uma comunidade por trás. 298 00:14:59,816 --> 00:15:02,110 E, nossa, Park era fantástico nisso. 299 00:15:02,653 --> 00:15:04,196 Parecia mágica. 300 00:15:04,780 --> 00:15:08,450 A interface gráfica de usuário permitiu que outras milhões de pessoas 301 00:15:08,533 --> 00:15:12,871 usassem computadores de um jeito natural para elas. 302 00:15:13,580 --> 00:15:16,750 Quando a Xerox divulgou GUIs em 1979, 303 00:15:16,833 --> 00:15:20,170 mostraram como programação podia mudar a rotina. 304 00:15:20,462 --> 00:15:22,923 Você chega ao escritório e uma máquina Xerox 305 00:15:23,006 --> 00:15:25,008 apresenta uma mensagem de bom dia na tela. 306 00:15:25,092 --> 00:15:27,344 Logo, sistemas Xerox como este 307 00:15:27,427 --> 00:15:29,721 ajudarão a administrar seu recursos mais precioso: 308 00:15:30,472 --> 00:15:31,431 informação. 309 00:15:31,848 --> 00:15:34,893 Havia pessoas como eu, e muitas pessoas 310 00:15:34,977 --> 00:15:36,603 nesta comunidade de pesquisa 311 00:15:36,687 --> 00:15:38,105 queriam melhorar o mundo. 312 00:15:38,188 --> 00:15:41,733 Tiveram uma ideia muito relacionada 313 00:15:41,858 --> 00:15:43,026 a acréscimo humano. 314 00:15:43,610 --> 00:15:46,196 Algo que interagisse conosco, 315 00:15:46,697 --> 00:15:47,864 o público, 316 00:15:48,198 --> 00:15:50,784 a pessoa normal, e nos tornaria capazes 317 00:15:50,867 --> 00:15:53,245 de fazer mais do que antes. 318 00:15:53,662 --> 00:15:56,039 Realmente nos tornou capazes de fazer mais. 319 00:15:56,331 --> 00:15:58,875 GUIs foram um grande salto neste espectro. 320 00:15:59,501 --> 00:16:03,630 Então, veio a próxima inovação que mudou o mundo. 321 00:16:05,382 --> 00:16:07,467 Uma nova forma de distribuir tudo 322 00:16:07,551 --> 00:16:09,177 que podíamos fazer com programação. 323 00:16:10,137 --> 00:16:12,848 Na TV, pessoas começaram a prever o que acesso repentino 324 00:16:12,931 --> 00:16:14,433 a tudo isso significaria. 325 00:16:14,808 --> 00:16:17,519 Imagine sentar-se para o café da manhã, 326 00:16:17,602 --> 00:16:20,439 e ligar seu computador para ler o jornal do dia. 327 00:16:20,522 --> 00:16:24,985 Imagine um mundo em que todas as palavras já escritas, todas as fotos de pinturas, 328 00:16:25,068 --> 00:16:28,697 todos os filmes já gravados pudessem ser vistos na hora, de casa. 329 00:16:28,780 --> 00:16:33,744 Acho que estamos à beira de algo maravilhoso e assustador. 330 00:16:33,827 --> 00:16:35,287 Mas é só uma ferramenta, não é? 331 00:16:35,370 --> 00:16:36,204 Não, não é. 332 00:16:36,288 --> 00:16:40,667 Os produtos de software que mais impactam hoje usam todas essas inovações. 333 00:16:40,751 --> 00:16:44,671 Um estudante de faculdade usou uma linguagem de alto nível, PHP, 334 00:16:44,755 --> 00:16:47,632 para fazer algo ser compartilhado na internet, 335 00:16:47,716 --> 00:16:49,760 para ser usado em computadores com GUIs. 336 00:16:50,093 --> 00:16:53,680 Ele fez uma descrição, em sua primeira entrevista na TV, em 2004. 337 00:16:53,972 --> 00:16:56,433 É um diretório on-line que conecta pessoas 338 00:16:56,516 --> 00:16:57,976 em universidades e faculdades, 339 00:16:58,060 --> 00:16:59,478 através de suas redes sociais. 340 00:16:59,561 --> 00:17:02,731 Agora temos 100 mil pessoas, vai saber aonde chegaremos. 341 00:17:02,814 --> 00:17:07,027 Chegaríamos a mais de dois bilhões de pessoas 342 00:17:07,152 --> 00:17:08,361 mensalmente no Facebook. 343 00:17:08,695 --> 00:17:11,656 Hoje, programadores moldam a vida de bilhões de pessoas. 344 00:17:11,907 --> 00:17:15,869 Como trabalham, compram, comem, namoram e relaxam. 345 00:17:16,203 --> 00:17:17,537 O que está fazendo agora? 346 00:17:17,621 --> 00:17:21,208 Está me vendo em um browser da Netflix. 347 00:17:23,376 --> 00:17:27,255 A própria Netflix é uma programação que está sendo usada em um browser 348 00:17:27,339 --> 00:17:28,215 que é programado, 349 00:17:28,507 --> 00:17:33,804 que está sendo usado em um computador projetado usando programação. 350 00:17:34,054 --> 00:17:35,680 É infinito. 351 00:17:37,599 --> 00:17:40,519 Programar bem é como ser o arquiteto de um museu 352 00:17:41,311 --> 00:17:43,355 em que milhões de pessoas pensam, 353 00:17:43,480 --> 00:17:45,857 e visitam e passeiam e usam todo dia. 354 00:17:46,191 --> 00:17:49,569 Acho que não há nada como programar, porque é como criação pura. 355 00:17:49,653 --> 00:17:51,863 Você tem uma ideia de como algo deveria funcionar 356 00:17:52,364 --> 00:17:56,201 e senta em frente a um computador 357 00:17:56,284 --> 00:17:58,078 e transforma a ideia em realidade. 358 00:17:58,161 --> 00:18:01,039 Acho que há muita responsabilidade nisso. 359 00:18:01,164 --> 00:18:04,000 Você tem um limite de velocidade. 360 00:18:04,167 --> 00:18:05,669 Não mais de 90 km/h. 361 00:18:06,545 --> 00:18:07,420 Ótimo. 362 00:18:07,712 --> 00:18:11,299 Mas e se tivesse um carro e o computador dissesse: 363 00:18:12,092 --> 00:18:15,053 "Este carro não passará de 90 km/h"? 364 00:18:15,846 --> 00:18:17,848 É uma forma diferente de controle. 365 00:18:18,056 --> 00:18:23,395 Muitas vezes, controlando nossas escolhas, a programação cria 366 00:18:23,478 --> 00:18:27,941 um efeito regulatório quase mais profundo que uma lei jamais conseguiria. 367 00:18:28,525 --> 00:18:30,819 E isso pode ser ótimo. 368 00:18:30,944 --> 00:18:35,198 Há por volta de seis milhões de acidentes de carro nos EUA todo ano, 369 00:18:35,282 --> 00:18:39,494 e uma análise descobriu que 94% são causados pelo motorista. 370 00:18:40,370 --> 00:18:43,165 Avanços em programação poderiam salvar milhões de vidas. 371 00:18:43,665 --> 00:18:46,960 Mas também podem colocar vidas em risco de novas formas. 372 00:18:47,460 --> 00:18:50,922 Tenho algo chamado cardiomiopatia hipertrófica 373 00:18:51,006 --> 00:18:56,219 que é um termo médico para o fato de eu ter um coração grande. 374 00:18:56,511 --> 00:18:58,096 Meu coração é literalmente grande. 375 00:18:58,180 --> 00:19:00,932 É umas três vezes maior que um coração normal. 376 00:19:01,016 --> 00:19:05,937 Descobri quando tinha 30 e meu risco de morte súbita aos 40 377 00:19:06,021 --> 00:19:07,147 era muito alto. 378 00:19:07,439 --> 00:19:10,025 O eletrofisiologista disse: "Não é um problema, 379 00:19:10,108 --> 00:19:12,485 porque você pode usar um desfibrilador marcapasso." 380 00:19:13,028 --> 00:19:15,030 Ele funciona com programação. 381 00:19:15,697 --> 00:19:20,243 Alguns anos atrás, quando estava grávida, meu coração estava palpitando. 382 00:19:20,744 --> 00:19:24,748 Um quarto das mulheres têm palpitação, é completamente normal. 383 00:19:25,207 --> 00:19:28,418 Mas meu marcapasso achou que estava em um ritmo perigoso 384 00:19:28,501 --> 00:19:29,586 e me deu choque. 385 00:19:29,669 --> 00:19:34,132 Os produtores não querem grávidas levando choques. 386 00:19:34,216 --> 00:19:36,426 É literalmente o que menos querem. 387 00:19:36,635 --> 00:19:39,262 Mas não consideraram isso. 388 00:19:39,346 --> 00:19:42,474 Há uma enorme gama de decisões 389 00:19:43,141 --> 00:19:47,395 e as pessoas que programam as tomarão. 390 00:19:48,188 --> 00:19:50,690 E, inevitavelmente, 391 00:19:51,066 --> 00:19:53,735 haverá uma combinação de circunstâncias 392 00:19:53,818 --> 00:19:55,904 que eles não anteciparão. 393 00:19:56,238 --> 00:19:58,198 O que tentamos ensinar 394 00:19:58,281 --> 00:20:00,450 quando ensinamos a arte 395 00:20:00,533 --> 00:20:01,910 da programação 396 00:20:02,244 --> 00:20:04,496 é como pensar 397 00:20:04,621 --> 00:20:07,540 em todas essas condições diferentes. 398 00:20:07,832 --> 00:20:10,168 Como tentar ser completo 399 00:20:10,293 --> 00:20:14,673 sem ficar paralisado pelo número de coisas 400 00:20:14,756 --> 00:20:16,091 que pode ter de considerar. 401 00:20:16,174 --> 00:20:20,011 E isso será cada vez mais verdade, porque começamos a programar 402 00:20:20,136 --> 00:20:21,721 de uma forma completamente nova. 403 00:20:22,305 --> 00:20:25,517 Na programação tradicional, você escreve instruções pro computador. 404 00:20:26,059 --> 00:20:28,895 Mas agora somos capazes de dar a um computador muitos inputs 405 00:20:28,979 --> 00:20:30,230 e muitos outputs 406 00:20:30,313 --> 00:20:33,525 e fazê-lo escrever as próprias instruções. 407 00:20:33,817 --> 00:20:37,404 O que você faz é dar ao computador 408 00:20:38,280 --> 00:20:39,739 vários exemplos 409 00:20:40,073 --> 00:20:43,660 e você diz: "Isso é uma festa." 410 00:20:43,785 --> 00:20:45,328 E há outras coisas. 411 00:20:45,412 --> 00:20:47,163 Escritório de dentista: não é festa. 412 00:20:47,330 --> 00:20:48,915 Sala de aula: não é festa. 413 00:20:49,374 --> 00:20:53,169 Então, o computador olha isso e tenta construir 414 00:20:53,253 --> 00:20:55,005 um sistema de classificação. 415 00:20:55,255 --> 00:20:57,173 Isso é aprendizado de máquina. 416 00:20:57,257 --> 00:20:59,968 Hoje, se alguém fala em inteligência artificial, 417 00:21:00,552 --> 00:21:01,469 é isso. 418 00:21:01,636 --> 00:21:05,390 É um tipo totalmente diferente de abstração 419 00:21:05,473 --> 00:21:06,641 e de fazer as coisas, 420 00:21:06,725 --> 00:21:11,438 porque não se enquadra na forma como empilhamos as coisas. 421 00:21:11,646 --> 00:21:15,442 São os algoritmos de aprendizado de máquina, porque o computador cria 422 00:21:15,525 --> 00:21:17,736 as próprias orientações a seguir. 423 00:21:18,069 --> 00:21:21,990 Mas, claro, no fim das contas, também são traduzidas 424 00:21:22,073 --> 00:21:24,451 em pequenas instruções. 425 00:21:25,201 --> 00:21:27,912 Google Tradutor tinha mais de um milhão de linhas de código. 426 00:21:28,538 --> 00:21:32,751 São pessoas escrevendo um milhão de pequenas instruções. 427 00:21:32,876 --> 00:21:38,256 Hoje, ele tem umas quinhentas linhas de código 428 00:21:38,465 --> 00:21:40,008 de aprendizado de máquina. 429 00:21:40,091 --> 00:21:44,304 Imagine que, por um descuido, nenhuma das fotos de festa que você pôs 430 00:21:44,387 --> 00:21:46,639 incluía uma pessoa negra ou latina. 431 00:21:47,140 --> 00:21:49,434 O computador podia decidir como regra para festas 432 00:21:49,517 --> 00:21:52,562 que apenas pessoas brancas ou asiáticas são convidadas. 433 00:21:52,812 --> 00:21:55,982 Há muitos caras brancos e asiáticos que programam. 434 00:21:56,733 --> 00:22:01,321 Precisamos ampliar quem pode estar nesta sala de planejamento, 435 00:22:01,404 --> 00:22:02,447 por milhares de razões. 436 00:22:02,530 --> 00:22:05,325 Haverá perguntas melhores se houver mais experiência de vida. 437 00:22:05,408 --> 00:22:09,037 Mas, no fim das contas, se alimentar os dados do sistema de aprendizado 438 00:22:09,120 --> 00:22:13,208 de um sistema de justiça criminal que tem dados com racismo estrutural, 439 00:22:13,291 --> 00:22:15,668 e digamos que os programadores do aprendizado 440 00:22:15,752 --> 00:22:17,170 têm todo tipo de aparência... 441 00:22:17,253 --> 00:22:22,384 cores de pele, rostos, origem social diferentes... 442 00:22:22,634 --> 00:22:25,303 esse sistema de aprendizado ainda aprenderá com os dados. 443 00:22:25,387 --> 00:22:28,139 Sem pessoas que corrijam isso ativamente, 444 00:22:28,223 --> 00:22:31,726 dados históricos nos levarão a repetir os erros do passado. 445 00:22:33,812 --> 00:22:38,358 A história da programação é a da ambição e criatividade humanas. 446 00:22:38,566 --> 00:22:41,528 Decolagem do foguete Falcon 9. 447 00:22:41,611 --> 00:22:44,030 Vimos o que achamos que nunca veríamos. 448 00:22:44,697 --> 00:22:45,740 Um buraco negro. 449 00:22:46,366 --> 00:22:47,742 Construímos um novo mundo, 450 00:22:48,284 --> 00:22:49,953 com mais ferramentas intuitivas 451 00:22:50,286 --> 00:22:52,122 que um maior número de pessoas pode usar 452 00:22:52,664 --> 00:22:55,750 para garantir que o mundo melhore. 453 00:22:56,126 --> 00:22:59,546 Estamos em uma jornada para tornar computadores mais acessíveis 454 00:22:59,629 --> 00:23:02,382 a seres humanos e para mais seres humanos. 455 00:23:02,507 --> 00:23:07,053 Estamos vendo uma revolução diante dos nossos olhos nos últimos 50 anos. 456 00:23:07,262 --> 00:23:09,139 Por isso é tão empolgante estar vivo hoje. 457 00:23:09,973 --> 00:23:13,935 É muito importante lembrar que tudo o que você usa no computador 458 00:23:14,227 --> 00:23:16,146 foi criado por um ser humano. 459 00:23:17,147 --> 00:23:19,816 Você pode ser um deles, na verdade, e é muito importante 460 00:23:19,899 --> 00:23:21,317 que se torne um deles. 461 00:23:21,401 --> 00:23:24,154 Você pode mudar o mundo de um jeito muito signifcativo. 462 00:23:24,571 --> 00:23:28,616 Há um mundo que será feito usando aprendizado de máquina, 463 00:23:28,741 --> 00:23:32,162 e dados e programação tradicional, cada vez mais. 464 00:23:32,662 --> 00:23:35,123 E o que fazemos como sociedade é dizer: 465 00:23:35,206 --> 00:23:37,584 "Certo! Temos esta nova tecnologia potente 466 00:23:38,251 --> 00:23:43,089 e poder ser ótimo, mas não chegará lá sozinha." 467 00:24:08,990 --> 00:24:10,992 Legendas: Thamires Araujo