1 00:00:09,510 --> 00:00:10,762 911, emergência? 2 00:00:11,679 --> 00:00:13,389 911, qual é a sua emergência? 3 00:00:13,473 --> 00:00:14,932 911, qual é a sua emergência? 4 00:00:15,058 --> 00:00:16,392 911, qual é... 5 00:00:19,854 --> 00:00:24,400 A 9 de abril de 2014, os serviços do 911 pararam 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 Estiveram em baixo durante seis horas. 8 00:00:30,364 --> 00:00:33,367 Mais de 6000 chamadas de emergência não foram atendidas. 9 00:00:33,910 --> 00:00:35,912 O governo localizou o problema num computador 10 00:00:35,995 --> 00:00:38,706 numa instalação em Englewood, Colorado. 11 00:00:39,082 --> 00:00:41,209 Foi um simples erro de programação. 12 00:00:41,793 --> 00:00:43,961 Os responsáveis pelo código do computador 13 00:00:44,045 --> 00:00:47,507 escolheram fazê-lo com um limite máximo do número de chamadas que registava, 14 00:00:47,840 --> 00:00:51,010 um limite que acharam ser impossível de atingir. 15 00:00:51,427 --> 00:00:54,222 Mas, nessa noite de 2014, atingiu. 16 00:00:54,680 --> 00:00:56,933 O computador seguiu as instruções perfeitamente. 17 00:00:57,016 --> 00:00:59,310 Atingiu o limite e parou de redirecionar chamadas. 18 00:01:00,061 --> 00:01:01,979 O problema não era o computador, 19 00:01:02,105 --> 00:01:04,190 nem um mau funcionamento do código. 20 00:01:04,482 --> 00:01:06,067 Era o código, 21 00:01:06,275 --> 00:01:09,362 o processo de tomada de decisão no qual as pessoas 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 muita responsabilidade ética. 24 00:01:14,742 --> 00:01:15,910 Não há nada igual. 25 00:01:15,993 --> 00:01:18,204 Não há nada que o substitua. 26 00:01:18,329 --> 00:01:19,747 Tal como 27 00:01:19,831 --> 00:01:23,751 os construtores duma cidade determinam como a vida é aí vivida, 28 00:01:23,835 --> 00:01:28,840 acho que o código controla como vivemos online, ou seja, como vivemos. 29 00:01:29,507 --> 00:01:31,342 Não só quando vamos à Internet, 30 00:01:31,425 --> 00:01:33,594 mas ao contactar serviços de emergência... 31 00:01:34,554 --> 00:01:35,721 ... ir ao médico... 32 00:01:36,180 --> 00:01:37,598 ... ou entrar num carro. 33 00:01:37,890 --> 00:01:40,643 Estamos todos perto do código todos os dias. 34 00:01:41,602 --> 00:01:47,024 Porém, só cerca de um terço de um 1 % de nós sabe como o escrever. 35 00:01:47,233 --> 00:01:49,986 Para a maioria, é uma caixa negra. 36 00:01:50,695 --> 00:01:51,988 Mas não tem de ser. 37 00:01:52,446 --> 00:01:55,199 Como é que o código funciona mesmo? 38 00:01:55,658 --> 00:01:58,286 E que novo mundo estamos a construir com ele? 39 00:01:59,287 --> 00:02:01,122 UMA SÉRIE DOCUMENTAL ORIGINAL NETFLIX 40 00:02:01,205 --> 00:02:02,540 O computador. 41 00:02:03,082 --> 00:02:05,835 Um conjunto engenhoso de hardware eletrónico 42 00:02:05,918 --> 00:02:07,879 criado pelo homem. 43 00:02:08,087 --> 00:02:11,382 Não é que não tenhamos máquinas adequadas para resolver problemas, 44 00:02:11,465 --> 00:02:14,177 mas faltam-nos as descrições adequadas de como resolvê-los. 45 00:02:14,260 --> 00:02:17,972 Quando alguém fala em programação, pensa-se que é muito difícil. 46 00:02:18,556 --> 00:02:22,685 É importantíssimo lembrar que tudo o que usamos num computador 47 00:02:22,768 --> 00:02:25,271 foi criado por um ser humano. 48 00:02:26,230 --> 00:02:31,277 PROGRAMAÇÃO 49 00:02:31,861 --> 00:02:34,947 Aparecia um alien e dizemos: "Ok, que importa o código? 50 00:02:35,031 --> 00:02:35,907 O que é?" 51 00:02:35,990 --> 00:02:37,366 Eu diria: "Bem, sabes, 52 00:02:37,533 --> 00:02:41,412 vivemos nesta espécie de terra física e, há 50 anos, 53 00:02:41,495 --> 00:02:44,582 um pequeno grupo de pessoas começou a criar outro planeta. 54 00:02:44,665 --> 00:02:46,876 Mas não era físico. Era virtual. 55 00:02:47,001 --> 00:02:50,129 Olha em redor na rua, vês as pessoas a descer a rua 56 00:02:50,213 --> 00:02:52,548 cabeça baixa, a olhar para o telemóvel? 57 00:02:52,632 --> 00:02:54,091 Estão nesse outro mundo. 58 00:02:54,383 --> 00:02:56,093 É isso que o código é. 59 00:02:56,219 --> 00:02:58,054 Os blocos de construção desse mundo. 60 00:03:00,056 --> 00:03:03,476 Este tear é o antepassado de todos os computadores e telemóveis 61 00:03:03,559 --> 00:03:04,393 da Terra. 62 00:03:04,852 --> 00:03:06,854 Foi inventado em 1804 63 00:03:06,938 --> 00:03:09,273 e a grande inovação eram estes cartões. 64 00:03:10,107 --> 00:03:13,194 Os buracos em cada cartão só permitiam passagem a certos pinos. 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 os tecelões podiam fazer padrões mais complexos do que nunca. 67 00:03:20,243 --> 00:03:22,620 Os xailes elaborados tornaram-se populares na Europa. 68 00:03:23,037 --> 00:03:26,749 E os designs tecidos eram tão elaborados que pareciam desenhos, 69 00:03:26,916 --> 00:03:29,168 como este feito no tear do inventor. 70 00:03:30,169 --> 00:03:33,422 Antes destes teares, os fios individuais tinham de ser escolhidos a dedo 71 00:03:33,547 --> 00:03:34,674 por "rapazes de palhas". 72 00:03:34,966 --> 00:03:36,801 A matemática da época era feita à mão, 73 00:03:36,884 --> 00:03:38,886 pelos supostos "computadores". 74 00:03:39,011 --> 00:03:41,347 Os primeiros computadores eram pessoas. 75 00:03:41,681 --> 00:03:43,557 E as melhores máquinas ao nosso dispor 76 00:03:43,641 --> 00:03:45,518 só podiam resolver um tipo de problema, 77 00:03:46,227 --> 00:03:48,396 como o ábaco para somar e subtrair. 78 00:03:49,272 --> 00:03:51,857 O matemático britânico Charles Babbage queria uma máquina 79 00:03:51,941 --> 00:03:53,776 para resolver qualquer problema matemático 80 00:03:53,859 --> 00:03:55,486 que lhe fosse pedido, ou melhor, 81 00:03:55,569 --> 00:03:57,029 programado para fazer. 82 00:03:57,780 --> 00:04:01,075 Ele propôs uma máquina a que chamava "Máquina Analítica". 83 00:04:01,242 --> 00:04:04,662 A sua ideia dar-lhe-ia um lugar na História. 84 00:04:05,037 --> 00:04:09,292 Os computadores foram inventados primeiro 85 00:04:09,375 --> 00:04:10,626 por Babbage, 86 00:04:10,710 --> 00:04:13,963 um inventor britânico excêntrico. 87 00:04:14,046 --> 00:04:16,590 Babbage tivera inspiração sobre como funcionaria. 88 00:04:16,966 --> 00:04:19,760 Tinha uma cópia desta imagem pendurada em casa. 89 00:04:20,219 --> 00:04:23,347 A Máquina Analítica de Babbage, como o tear de Jacquard, 90 00:04:23,431 --> 00:04:25,391 tinha partes físicas: "hardware". 91 00:04:25,599 --> 00:04:27,101 E, tal como o tear, 92 00:04:27,184 --> 00:04:31,272 podia dar-se instruções ao hardware na forma de cartões com buracos. 93 00:04:31,605 --> 00:04:33,065 Os pinos passavam pelos buracos 94 00:04:33,149 --> 00:04:36,193 e a ausência de buracos obrigava os pinos a recuar, 95 00:04:36,652 --> 00:04:39,155 ativando uma cadeia de cálculos mecânicos. 96 00:04:39,822 --> 00:04:41,324 Os cartões com buracos diferentes 97 00:04:41,615 --> 00:04:42,825 são software. 98 00:04:43,701 --> 00:04:46,329 Babbage nunca acabou a sua Máquina Analítica, 99 00:04:46,579 --> 00:04:50,416 mas uma jovem que trabalhava com ele viu o seu enorme potencial 100 00:04:50,666 --> 00:04:52,126 além da matemática. 101 00:04:52,668 --> 00:04:55,671 Ada Byron, Condessa de Lovelace, escreveu: 102 00:04:56,005 --> 00:04:59,675 "os limites da aritmética foram ultrapassados assim que a ideia 103 00:04:59,759 --> 00:05:02,011 de aplicar os cartões ocorreu..." 104 00:05:02,261 --> 00:05:04,221 Ela viu o que Jacquard vira: 105 00:05:04,347 --> 00:05:06,891 os buracos podiam representar mais do que só números. 106 00:05:07,058 --> 00:05:08,267 Podiam ser padrões, 107 00:05:08,392 --> 00:05:09,310 músicas... 108 00:05:10,644 --> 00:05:12,271 ... ou frases inteiras. 109 00:05:12,772 --> 00:05:14,982 È como um tipo de código Morse. 110 00:05:15,274 --> 00:05:19,987 Cada letra do alfabeto do código Morse é expressa em apenas dois sinais: 111 00:05:20,071 --> 00:05:21,739 ... ou... 112 00:05:21,906 --> 00:05:22,865 É binário. 113 00:05:23,324 --> 00:05:26,452 E, com estes sons, podemos fazer qualquer coisa, 114 00:05:26,952 --> 00:05:30,790 como este pedido de ajuda enviado pelo Titanic em 1912. 115 00:05:31,457 --> 00:05:34,502 SOS não é algo sem significado. 116 00:05:34,710 --> 00:05:37,880 É só muito fácil de enviar em Código Morse. 117 00:05:38,089 --> 00:05:42,885 Da mesma forma, podemos pensar em todas as letras como uma combinação 118 00:05:42,968 --> 00:05:44,512 de zeros e uns. 119 00:05:44,637 --> 00:05:45,930 Parece-vos familiar? 120 00:05:46,138 --> 00:05:47,640 Isto é código binário. 121 00:05:47,848 --> 00:05:51,769 E é assim que cobrimos a diferença entre as máquinas e a linguagem humana. 122 00:05:51,894 --> 00:05:55,773 Cada um ou zero é um dígito binário, ou "bit". 123 00:05:55,856 --> 00:05:58,359 Estes são os átomos da computação moderna. 124 00:05:58,484 --> 00:06:00,444 Podem conhecê-los por outro nome: 125 00:06:00,653 --> 00:06:02,613 oito bits são um byte. 126 00:06:03,239 --> 00:06:07,576 Sabem aquela imagem no computador, com 1,1 megabytes? 127 00:06:08,160 --> 00:06:11,956 São oito milhões e oitocentos mil uns e zeros. 128 00:06:12,373 --> 00:06:16,919 Tal como traços e pontos do código Morse são uma forma de escrever... e..., 129 00:06:17,002 --> 00:06:20,297 os uns e zeros do código binário são só a forma como escrevemos 130 00:06:20,423 --> 00:06:22,675 o que se passa num computador moderno: 131 00:06:23,217 --> 00:06:24,802 com ou sem bateria. 132 00:06:25,302 --> 00:06:27,179 Isto é um simples circuito elétrico. 133 00:06:27,763 --> 00:06:30,599 Imaginem milhões a funcionar juntos. 134 00:06:31,016 --> 00:06:32,476 É um computador atual. 135 00:06:33,018 --> 00:06:35,271 Num circuito elétrico, isto é um bit. 136 00:06:35,604 --> 00:06:37,857 A lâmpada está apagada? Zero. 137 00:06:38,107 --> 00:06:39,567 Acesa? Um. 138 00:06:40,067 --> 00:06:42,069 Os computadores só percebem eletricidade, 139 00:06:42,278 --> 00:06:44,947 então tudo o que os programadores fazem num computador é, 140 00:06:45,489 --> 00:06:46,323 no fim de contas, 141 00:06:46,449 --> 00:06:49,368 uma série de cargas ligadas e desligadas. 142 00:06:49,702 --> 00:06:53,205 E funciona porque, ligadas corretamente, 143 00:06:53,414 --> 00:06:56,041 estas cargas podem representar a lógica. 144 00:06:56,625 --> 00:07:00,754 A lógica é uma série previsível de factos ou eventos, 145 00:07:01,172 --> 00:07:03,048 tal como desligar este botão... 146 00:07:04,467 --> 00:07:07,052 ... e este para tocar a campainha. 147 00:07:09,054 --> 00:07:12,516 Na verdade, o pessoal dos computadores chama a isto "Circuito Lógico AND". 148 00:07:13,476 --> 00:07:15,644 Ou "portão" de lógica. 149 00:07:15,769 --> 00:07:18,439 Vamos ver se faço isto sem fazer um buraco na mesa. 150 00:07:18,522 --> 00:07:21,567 Num portão AND, ambos os circuitos têm de estar fechados 151 00:07:21,650 --> 00:07:22,818 para a luz acender. 152 00:07:23,235 --> 00:07:24,695 E há portões OR, 153 00:07:24,778 --> 00:07:28,199 onde a luz se acende se um dos circuitos estiver fechado. 154 00:07:28,365 --> 00:07:29,783 Por outras palavras. 155 00:07:29,909 --> 00:07:34,371 Se um dos circuitos estiver fechado, então a luz acende-se. 156 00:07:34,497 --> 00:07:36,916 Esse tipo de afirmação "Se... então...", 157 00:07:36,999 --> 00:07:38,083 é um algoritmo. 158 00:07:38,292 --> 00:07:42,505 Na cultura pop atual, a palavra algoritmo causa muita confusão. 159 00:07:42,755 --> 00:07:45,925 Já vimos isto antes, quando os algoritmos endoidecem! 160 00:07:46,008 --> 00:07:49,094 A forma como os algoritmos trabalham é um mistério para a maioria. 161 00:07:49,178 --> 00:07:51,847 Mas que raio é um algoritmo? 162 00:07:51,972 --> 00:07:54,892 Mas um algoritmo é só um conjunto de indicações. 163 00:07:55,017 --> 00:07:56,810 Imaginem que entram numa loja. 164 00:07:56,894 --> 00:07:59,522 Podem virar à esquerda, depois à direita. 165 00:07:59,647 --> 00:08:02,525 Ou podem só virar à direita e depois à esquerda. 166 00:08:02,900 --> 00:08:04,985 Ou podem virar quatro vezes à esquerda, 167 00:08:05,069 --> 00:08:06,111 correr pelo parque, 168 00:08:06,195 --> 00:08:07,029 atravessar a rua 169 00:08:07,112 --> 00:08:09,031 e virar quatro vezes à direita. 170 00:08:09,365 --> 00:08:12,034 Tal como há direções diferentes para ir ao mesmo sítio, 171 00:08:12,117 --> 00:08:14,578 na programação, pode haver muitos algoritmos diferentes 172 00:08:14,662 --> 00:08:15,996 para o mesmo problema. 173 00:08:16,372 --> 00:08:20,042 O objetivo é encontrar o mais elegante, o mais eficiente. 174 00:08:20,459 --> 00:08:22,795 Código bonito não se repete. 175 00:08:22,920 --> 00:08:24,922 É muito elegante. É poderoso. 176 00:08:25,464 --> 00:08:29,051 Os computadores que usavam algoritmos só faziam o que lhes pediam, 177 00:08:29,134 --> 00:08:30,844 mas muito mais depressa, 178 00:08:31,136 --> 00:08:33,764 o que tornou as pessoas mais poderosas. 179 00:08:34,223 --> 00:08:37,601 Quando os cientistas desenvolveram a bomba de fusão, 180 00:08:37,935 --> 00:08:40,563 usavam, principalmente, computadores humanos. 181 00:08:40,896 --> 00:08:42,856 Mas depois começaram a usar este: 182 00:08:43,315 --> 00:08:47,236 o computador ENIAC, durante 6 semanas, fez cálculos termonucleares. 183 00:08:47,903 --> 00:08:50,197 Os resultados contribuíram para isto, 184 00:08:51,323 --> 00:08:53,659 o primeiro teste bem-sucedido, em 1952, 185 00:08:54,076 --> 00:08:57,496 de uma bomba muito mais poderosa do que as bombas de fissão atómica 186 00:08:57,580 --> 00:08:59,498 largadas em Hiroshima e Nagasaki 187 00:08:59,582 --> 00:09:01,417 durante a Segunda Guerra Mundial. 188 00:09:01,500 --> 00:09:04,920 O poder do código ampliou o poder das pessoas para 189 00:09:05,421 --> 00:09:06,755 fazer o que quisessem. 190 00:09:07,590 --> 00:09:11,135 Mas... nos anos 40, ainda exigia muito trabalho. 191 00:09:11,468 --> 00:09:16,056 Escrever programas com zeros e uns não é fácil de escalar. 192 00:09:16,223 --> 00:09:19,018 As pessoas queriam mais do poder que a programação dava. 193 00:09:19,310 --> 00:09:21,520 Mas queriam uma forma fácil de programar. 194 00:09:22,438 --> 00:09:27,776 A história da programação desde então foi a história de aproximar a programação 195 00:09:27,860 --> 00:09:29,028 da linguagem humana 196 00:09:29,403 --> 00:09:32,990 inventando o que quase todos programadores usam atualmente: 197 00:09:33,115 --> 00:09:34,658 linguagens de programação. 198 00:09:35,200 --> 00:09:38,996 Comparadas com uns e zeros, estas linguagens são muito abstratas. 199 00:09:39,580 --> 00:09:41,582 A abstração é uma palavra difícil. 200 00:09:42,249 --> 00:09:45,669 As linguagens mais abstratas resumem-se aos mesmos uns e zeros, 201 00:09:45,794 --> 00:09:48,213 só arranjámos melhores formas de os organizar. 202 00:09:48,881 --> 00:09:51,008 Pode-se pensar em termos biológicos. 203 00:09:51,550 --> 00:09:53,135 Os humanos são complexos, 204 00:09:53,218 --> 00:09:56,972 mas 99 % dos nossos corpos são feitos de apenas seis elementos. 205 00:09:57,348 --> 00:10:00,184 É possível aumentar até às grandes moléculas. 206 00:10:00,267 --> 00:10:02,811 Entre essa camada de organização e a camada 207 00:10:02,895 --> 00:10:04,730 do ser vivo mais simples 208 00:10:04,813 --> 00:10:06,065 está um grande passo. 209 00:10:06,357 --> 00:10:07,608 E os humanos têm cérebros, 210 00:10:07,691 --> 00:10:09,568 que fazem coisas tão avançadas 211 00:10:09,652 --> 00:10:12,488 que custa a crer que são feitos da mesma coisa. 212 00:10:12,946 --> 00:10:16,784 Os computadores são assim, mas mais simples. 213 00:10:17,951 --> 00:10:18,952 São as boas notícias. 214 00:10:19,578 --> 00:10:23,082 A história da programação é a história de elevar esta caixa, 215 00:10:23,165 --> 00:10:25,250 afastando-a do binário para darmos a nós mesmos 216 00:10:25,334 --> 00:10:28,837 formas mais fáceis, rápidas e mais poderosas de programar 217 00:10:29,088 --> 00:10:32,049 sem termos de lidar com ou sequer perceber, 218 00:10:32,466 --> 00:10:34,718 os portões binários e de lógica subjacentes. 219 00:10:35,344 --> 00:10:37,763 É isso que permite aos programadores fazer os produtos 220 00:10:37,846 --> 00:10:38,889 que todos conhecemos. 221 00:10:39,306 --> 00:10:41,308 O primeiro passo para chegar aqui foi... 222 00:10:41,850 --> 00:10:45,813 "Linguagem de montagem", que é mais fácil de ler e escrever, 223 00:10:46,188 --> 00:10:49,608 onde, em vez de dizer 0-1-0-0-0-1-1-1, 224 00:10:49,858 --> 00:10:51,318 chamamos-lhe "somar", 225 00:10:51,694 --> 00:10:58,200 depois temos um programa chamado Assembler a traduzir as letras 226 00:10:58,283 --> 00:11:03,455 S-O-M-A-R aos zeros e uns equivalentes e apropriados. 227 00:11:03,580 --> 00:11:07,292 Neste nível, o binário é organizado por letras e números, 228 00:11:07,584 --> 00:11:10,379 tal como os átomos são organizados em moléculas. 229 00:11:10,921 --> 00:11:15,217 Mas a programação na linguagem de montagem ainda não é exatamente fácil 230 00:11:15,843 --> 00:11:19,513 porque todos os computadores usam linguagens diferentes. 231 00:11:20,097 --> 00:11:24,810 Ao escrever um programa num computador, não funcionaria em nenhum dos outros. 232 00:11:25,102 --> 00:11:27,187 Rapidamente, começou-se a pensar 233 00:11:27,271 --> 00:11:29,440 que o que queremos dar ao computador 234 00:11:29,523 --> 00:11:32,818 são coisas em termos que usamos todos os dias. 235 00:11:33,193 --> 00:11:35,863 Temos linguagens de programação 236 00:11:35,946 --> 00:11:38,407 que construímos usando 237 00:11:38,490 --> 00:11:39,867 a linguagem de montagem 238 00:11:39,950 --> 00:11:42,911 e, com essas linguagens, construímos mais. 239 00:11:43,370 --> 00:11:44,955 Já devem ter ouvido falar delas. 240 00:11:45,038 --> 00:11:45,914 - LISP... - BASIC... 241 00:11:45,998 --> 00:11:47,207 - Java... - C++... 242 00:11:47,291 --> 00:11:49,042 - Python 3... - HTML 5... 243 00:11:49,126 --> 00:11:51,044 PEARL, PHP, um pouco de C... 244 00:11:51,128 --> 00:11:53,756 Tal como as línguas faladas são formas diferentes 245 00:11:53,839 --> 00:11:56,717 de expressar a mesma ideia a outras pessoas, 246 00:11:57,050 --> 00:12:00,012 linguagens de programação são só formas diferentes de expressar 247 00:12:00,137 --> 00:12:01,972 a mesma ideia a computadores. 248 00:12:02,347 --> 00:12:05,058 Temos mais de uma linguagem de alto nível 249 00:12:05,142 --> 00:12:07,936 porque, antes de mais, linguagens diferentes 250 00:12:08,020 --> 00:12:10,147 respondem a necessidades diferentes. 251 00:12:10,731 --> 00:12:12,024 Vejam estas duas. 252 00:12:12,191 --> 00:12:15,944 Esta, COBOL, foi criada no fim dos anos 50 253 00:12:16,028 --> 00:12:19,114 para tornar facilitar a programação para as empresas. 254 00:12:19,239 --> 00:12:23,410 Parece-se com inglês mas se todas as conversas 255 00:12:23,494 --> 00:12:25,579 acabassem com "STOP RUN". 256 00:12:26,497 --> 00:12:32,753 Esta, CPL, foi criada nos anos 60 e inclui mais computação científica. 257 00:12:33,212 --> 00:12:35,297 É como evolução biológica. 258 00:12:35,631 --> 00:12:38,425 Ao se tornarem mais complexos, os organismos adquirem traços 259 00:12:38,509 --> 00:12:41,637 que os tornam melhor preparados para ambientes específicos. 260 00:12:42,012 --> 00:12:45,933 E, francamente, é uma questão de gosto. 261 00:12:46,558 --> 00:12:50,521 Há quem goste de diferentes ferramentas para se expressar. 262 00:12:50,604 --> 00:12:53,774 Por exemplo, a linguagem C++... 263 00:12:53,857 --> 00:12:56,068 O Elon Musk não é fã. 264 00:12:56,360 --> 00:12:57,694 Podíamos inventar uma. 265 00:12:58,028 --> 00:13:02,533 Esta é uma linguagem de alto nível criada só com a palavra "moo". 266 00:13:02,950 --> 00:13:04,910 A sério. Chama-se COW. 267 00:13:05,285 --> 00:13:08,956 Esta é feita com citações de filmes do Arnold Schwarzenegger. 268 00:13:09,164 --> 00:13:13,252 Sempre que penso: "Ok, já devemos ter suficientes", 269 00:13:13,335 --> 00:13:20,050 aparece alguém com uma nova e ganha um grupo de fãs. 270 00:13:20,175 --> 00:13:24,888 Não vejo um fim à criação de novas linguagens. 271 00:13:25,472 --> 00:13:29,017 E todas estas linguagens ainda se baseiam na lógica. 272 00:13:29,393 --> 00:13:32,312 Por exemplo, um programador na Netflix poderia dizer: 273 00:13:32,396 --> 00:13:35,899 "Se estão a ver há mais de duas horas, 274 00:13:36,024 --> 00:13:37,150 mostra isto." 275 00:13:37,609 --> 00:13:40,195 Mas para a programação impactar a vida de mais pessoas, 276 00:13:40,279 --> 00:13:42,531 a maioria tinha de usar computadores. 277 00:13:42,739 --> 00:13:44,658 Ou seja, estes tinham ser mais fáceis, 278 00:13:44,783 --> 00:13:46,076 intuitivos, 279 00:13:46,159 --> 00:13:48,370 e isso exigia outro grande salto. 280 00:13:48,912 --> 00:13:50,497 O que começou aqui, 281 00:13:50,747 --> 00:13:54,334 numa demonstração de Doug Englebart em 1968. 282 00:13:54,459 --> 00:13:56,587 Num segundo, vamos ver o ecrã em que trabalha 283 00:13:56,712 --> 00:13:58,547 e a forma como o ponto se move 284 00:13:58,630 --> 00:14:01,425 em combinação com os movimentos daquele rato. 285 00:14:02,050 --> 00:14:06,346 As pessoas, atualmente, não programam escrevendo afirmações 286 00:14:06,430 --> 00:14:10,267 num pedaço de papel e dando-o a outra pessoa 287 00:14:10,350 --> 00:14:11,476 que o escreve à máquina. 288 00:14:11,560 --> 00:14:15,105 Sentamo-nos à frente do ecrã, há uma interface gráfica de utilizador. 289 00:14:15,355 --> 00:14:17,566 Hoje, chamamos-lhes GUIs. 290 00:14:18,025 --> 00:14:21,111 Com os GUIs, pode-se programar sem escrever nada. 291 00:14:22,487 --> 00:14:24,907 Ou usar código de forma mais fácil. 292 00:14:25,240 --> 00:14:29,661 Tipicamente, usamos ambientes de programação 293 00:14:30,287 --> 00:14:34,958 do tipo que o Alan e os seus colegas 294 00:14:35,042 --> 00:14:36,501 criaram de forma tão bela 295 00:14:36,585 --> 00:14:40,464 no Centro de Investigação da Xerox em Palo Alto, no início dos anos 70. 296 00:14:40,714 --> 00:14:41,548 "Alan." 297 00:14:41,715 --> 00:14:42,633 Este Alan. 298 00:14:42,883 --> 00:14:46,053 Penso nele como o pai da computação pessoal 299 00:14:46,136 --> 00:14:50,265 porque foi o primeiro que articulou essa visão. 300 00:14:50,515 --> 00:14:54,353 E confesso que, na altura, achei que era fição científica. 301 00:14:54,436 --> 00:14:56,605 Quando são feitas grandes coisas, 302 00:14:57,981 --> 00:14:59,650 costuma haver uma grande comunidade. 303 00:14:59,816 --> 00:15:02,110 E o Park era fantástico com isso. 304 00:15:02,653 --> 00:15:04,196 Era como magia. 305 00:15:04,780 --> 00:15:08,450 A interface gráfica do utilizador permitiu a milhões de pessoas 306 00:15:08,533 --> 00:15:12,871 usar computadores duma forma que lhes era natural. 307 00:15:13,580 --> 00:15:16,750 Quando a Xerox anunciou GUI's em 1979, 308 00:15:16,833 --> 00:15:20,253 mostraram como a programação podia mudar a vida quotidiana. 309 00:15:20,420 --> 00:15:22,923 Entra no seu escritório e uma máquina Xerox 310 00:15:23,006 --> 00:15:25,008 apresenta-lhe o correio matinal num ecrã. 311 00:15:25,092 --> 00:15:27,344 Em breve, sistemas da Xerox como este 312 00:15:27,427 --> 00:15:29,721 vão ajudá-lo a gerir o seu recurso mais precioso: 313 00:15:30,472 --> 00:15:31,431 informação. 314 00:15:31,848 --> 00:15:34,893 Havia pessoas como eu e muitas pessoas 315 00:15:34,977 --> 00:15:36,603 nesta comunidade de investigação 316 00:15:36,687 --> 00:15:38,105 queriam melhorar o mundo. 317 00:15:38,188 --> 00:15:41,733 Tinham uma ideia relacionada 318 00:15:41,858 --> 00:15:43,026 com a melhoria humana. 319 00:15:43,610 --> 00:15:46,196 Algo que iria interagir connosco, 320 00:15:46,697 --> 00:15:47,864 o público, 321 00:15:48,198 --> 00:15:50,784 uma pessoa normal e que nos tornaria capazes 322 00:15:50,867 --> 00:15:53,245 de fazer mais do que nunca. 323 00:15:53,662 --> 00:15:56,039 Tornou-nos capazes de fazer mais. 324 00:15:56,331 --> 00:15:58,875 Os GUIs foram um grande salto nesta área. 325 00:15:59,501 --> 00:16:03,630 E depois veio a inovação revolucionária seguinte. 326 00:16:05,382 --> 00:16:07,467 Uma nova forma de distribuir tudo 327 00:16:07,551 --> 00:16:09,177 o que podíamos fazer com código. 328 00:16:10,137 --> 00:16:12,848 Na televisão, começou-se a prever o que o acesso súbito 329 00:16:12,931 --> 00:16:14,433 a todo este código significaria. 330 00:16:14,808 --> 00:16:17,519 Imaginem que se sentam para tomar café, 331 00:16:17,602 --> 00:16:20,439 ligam o computador de casa para ler o jornal do dia. 332 00:16:20,522 --> 00:16:24,985 Imaginem um mundo onde todas as palavras já escritas, todas as imagens de quadros, 333 00:16:25,068 --> 00:16:28,697 todos os filmes já filmados, podem ser vistos em casa. 334 00:16:28,780 --> 00:16:33,744 Acho que estamos no cume de algo excitante e aterrador. 335 00:16:33,827 --> 00:16:35,287 Mas é só uma ferramenta, não é? 336 00:16:35,370 --> 00:16:36,204 Não, não é. 337 00:16:36,288 --> 00:16:40,667 Os produtos de software de maior impacto usam todas estas inovações. 338 00:16:40,751 --> 00:16:44,671 Um aluno universitário usou uma linguagem de alto nível, PHP, 339 00:16:44,755 --> 00:16:47,632 para fazer algo partilhado em toda a Internet, 340 00:16:47,716 --> 00:16:49,760 para ser usado em computadores com GUIs. 341 00:16:50,093 --> 00:16:53,680 Descreveu-o na sua primeira entrevista em 2004. 342 00:16:53,972 --> 00:16:56,433 É um diretório online que liga as pessoas 343 00:16:56,516 --> 00:16:57,976 em universidades e faculdades 344 00:16:58,060 --> 00:16:59,478 através das suas redes sociais. 345 00:16:59,561 --> 00:17:02,731 Agora temos 100 000 pessoas, quem sabe o que vamos alcançar. 346 00:17:02,814 --> 00:17:07,027 O que iam alcançar era mais de dois mil milhões de pessoas 347 00:17:07,152 --> 00:17:08,361 no Facebook, mensalmente. 348 00:17:08,695 --> 00:17:11,656 Atualmente, os programadores moldam a vida de milhões de pessoas. 349 00:17:11,907 --> 00:17:15,869 Como trabalham, compram, comem, namoram e relaxam. 350 00:17:16,203 --> 00:17:17,537 O que estão a fazer agora? 351 00:17:17,621 --> 00:17:21,208 Estão a ver-me num navegador web da Netflix. 352 00:17:23,376 --> 00:17:27,255 A Netflix em si é código e é ativado num navegador web 353 00:17:27,339 --> 00:17:28,215 que é código, 354 00:17:28,507 --> 00:17:33,804 executado num computador que é feito usando código. 355 00:17:34,054 --> 00:17:35,680 É algo interminável. 356 00:17:37,599 --> 00:17:40,519 Programar bem é como ser o arquiteto dum museu 357 00:17:41,311 --> 00:17:43,355 em que milhões de pessoas pensam, 358 00:17:43,480 --> 00:17:45,899 ao qual vão passear e usam todos os dias. 359 00:17:46,191 --> 00:17:49,569 Acho que não há nada como programar, porque se parece com criação pura. 360 00:17:49,653 --> 00:17:51,863 Há uma ideia sobre como algo deve funcionar. 361 00:17:52,364 --> 00:17:56,201 Depois, sentamo-nos em frente a um computador 362 00:17:56,284 --> 00:17:58,078 e tornamo-la realidade. 363 00:17:58,161 --> 00:18:01,039 Acho que há muita responsabilidade nesse papel. 364 00:18:01,164 --> 00:18:04,000 Há um limite de velocidade. 365 00:18:04,126 --> 00:18:05,961 Não ultrapassar 96 quilómetros por hora. 366 00:18:06,545 --> 00:18:07,420 Está bem. 367 00:18:07,712 --> 00:18:11,299 Mas se tivessem um carro e o computador dissesse: 368 00:18:12,092 --> 00:18:15,387 "Este carro não vai ultrapassar 96 quilómetros por hora?" 369 00:18:15,679 --> 00:18:17,973 É uma forma diferente de controlar o comportamento. 370 00:18:18,056 --> 00:18:23,395 Controlando as nossas escolhas, a programação na nossa vida exerce 371 00:18:23,478 --> 00:18:27,941 um efeito regulatório quase mais profundo do que uma lei conseguiria. 372 00:18:28,525 --> 00:18:30,819 E isso pode ser algo bom. 373 00:18:30,944 --> 00:18:35,198 Há seis milhões de acidentes de carros nos EUA, todos os anos, 374 00:18:35,282 --> 00:18:39,494 e uma análise descobriu que 94% deles foram causados pelo condutor. 375 00:18:40,370 --> 00:18:43,165 Os avanços na programação podem salvar milhões de vidas. 376 00:18:43,665 --> 00:18:46,960 Mas também podem pôr vidas em risco de novas formas. 377 00:18:47,460 --> 00:18:50,922 Tenho algo chamado cardiomiopatia hipertrófica, 378 00:18:51,006 --> 00:18:56,219 que é o termo médico para ter um grande coração. 379 00:18:56,428 --> 00:18:58,096 O meu coração é literalmente grande. 380 00:18:58,180 --> 00:19:00,932 É três vezes maior do que o coração duma pessoa normal. 381 00:19:01,016 --> 00:19:05,937 Descobri quando tinha 30 anos e o meu risco de morrer aos 40 anos 382 00:19:06,021 --> 00:19:07,147 era muito grande. 383 00:19:07,439 --> 00:19:10,025 O eletrofisiologista disse: "Isto não é problema 384 00:19:10,108 --> 00:19:12,485 porque pode usar um pacemaker desfibrilhador." 385 00:19:13,028 --> 00:19:15,030 Este aparelho funciona com código. 386 00:19:15,697 --> 00:19:20,243 Há um par de anos, quando estava grávida, o meu coração estava a palpitar. 387 00:19:20,744 --> 00:19:24,956 Cerca de um quarto das mulheres tem palpitações, é perfeitamente normal. 388 00:19:25,207 --> 00:19:28,418 Mas o meu aparelho achou que era um ritmo estranho 389 00:19:28,501 --> 00:19:29,586 e chocou-me. 390 00:19:29,669 --> 00:19:34,132 Os produtores dos aparelhos não querem que mulheres grávidas sejam chocadas. 391 00:19:34,216 --> 00:19:36,426 É literalmente a última coisa que querem. 392 00:19:36,635 --> 00:19:39,262 Só não o tinham considerado. 393 00:19:39,346 --> 00:19:42,474 Há um grande conjunto de decisões 394 00:19:43,141 --> 00:19:47,395 e são os programadores que as vão tomar. 395 00:19:48,188 --> 00:19:50,690 E, inevitavelmente, 396 00:19:51,066 --> 00:19:53,735 vai haver uma combinação de circunstâncias 397 00:19:53,818 --> 00:19:55,904 que não terão antecipado. 398 00:19:56,238 --> 00:19:58,198 O que tentamos ensinar 399 00:19:58,281 --> 00:20:00,450 quando ensinamos 400 00:20:00,533 --> 00:20:01,910 a programar 401 00:20:02,244 --> 00:20:04,496 é como pensar 402 00:20:04,621 --> 00:20:07,540 em todas estas condições diferentes. 403 00:20:07,832 --> 00:20:10,168 Como tentar ser exaustivo 404 00:20:10,293 --> 00:20:14,673 sem ficar paralisado pelo número de coisas 405 00:20:14,756 --> 00:20:16,091 que se devem considerar. 406 00:20:16,174 --> 00:20:20,011 E isso tornar-se-á mais verdadeiro porque começámos a programar 407 00:20:20,136 --> 00:20:21,721 duma forma completamente nova. 408 00:20:22,305 --> 00:20:25,517 Na programação tradicional, são escritas instruções para um computador. 409 00:20:26,059 --> 00:20:28,895 Mas agora podemos dar ao computador conjuntos de recursos 410 00:20:28,979 --> 00:20:30,230 e resultados, 411 00:20:30,313 --> 00:20:33,525 e fazer com que ele escreva as instruções. 412 00:20:33,817 --> 00:20:35,610 O que se faz é 413 00:20:35,694 --> 00:20:37,404 dar ao computador 414 00:20:38,280 --> 00:20:39,739 muitos exemplos 415 00:20:40,073 --> 00:20:43,660 e dizer: "Isto é uma festa." 416 00:20:43,785 --> 00:20:45,328 E depois há outras coisas. 417 00:20:45,412 --> 00:20:47,163 Um consultório: não é uma festa. 418 00:20:47,330 --> 00:20:48,915 Uma sala de aula: não é uma festa. 419 00:20:49,374 --> 00:20:53,169 Um computador vai olhar para isto e tentar construir 420 00:20:53,253 --> 00:20:55,005 um sistema de classificação. 421 00:20:55,255 --> 00:20:57,173 Isto é aprendizagem de máquina. 422 00:20:57,257 --> 00:20:59,968 Atualmente, se alguém fala de inteligência artificial, 423 00:21:00,343 --> 00:21:01,553 é a isto que se referem. 424 00:21:01,636 --> 00:21:05,390 É toda uma nova forma de abstração 425 00:21:05,473 --> 00:21:06,641 e de fazer coisas 426 00:21:06,725 --> 00:21:11,438 porque não corresponde à forma como fazemos estas coisas. 427 00:21:11,646 --> 00:21:15,442 Chamam-se algoritmos de aprendizagem de máquina porque o computador cria 428 00:21:15,525 --> 00:21:17,736 o seu próprio conjunto de instruções a seguir. 429 00:21:18,069 --> 00:21:21,990 Mas, no fim de contas, também são traduzidos 430 00:21:22,073 --> 00:21:24,451 em pequenas instruções. 431 00:21:25,201 --> 00:21:28,079 O Google Tradutor tinha mais de um milhão de linhas de código. 432 00:21:28,538 --> 00:21:32,751 São pessoas a escrever um milhão de pequenas instruções. 433 00:21:32,876 --> 00:21:38,256 Atualmente, o Google Tradutor tem 500 linhas de código 434 00:21:38,465 --> 00:21:40,008 e usa a aprendizagem de máquina. 435 00:21:40,091 --> 00:21:44,304 Suponhamos que, por causa dum erro, nenhuma das fotos de festas inseridas 436 00:21:44,387 --> 00:21:46,639 incluía pessoas negras ou hispânicas. 437 00:21:47,140 --> 00:21:49,434 O computador pode decidir que uma regra das festas 438 00:21:49,517 --> 00:21:52,562 é que só pessoas brancas e asiáticas são convidadas. 439 00:21:52,812 --> 00:21:55,982 Há muitas pessoas brancas e asiáticas que programam. 440 00:21:56,733 --> 00:22:01,321 Devíamos expandir quem está na sala de design, 441 00:22:01,404 --> 00:22:02,405 por muitas razões. 442 00:22:02,489 --> 00:22:05,325 Colocarão melhores questões se houver mais experiência de vida. 443 00:22:05,408 --> 00:22:09,037 Mas, no fim de contas, ao alimentar o sistema de dados de aprendizagem 444 00:22:09,120 --> 00:22:13,208 como o sistema de justiça criminal com racismo estrutural nos dados, 445 00:22:13,291 --> 00:22:15,668 digamos que os programadores 446 00:22:15,752 --> 00:22:17,170 parecem um anúncio da Benetton, 447 00:22:17,253 --> 00:22:22,384 com raças diferentes, caras diferentes, diferentes contextos socio-económicos... 448 00:22:22,634 --> 00:22:25,303 ... o sistema de aprendizagem aprenderá com os dados. 449 00:22:25,387 --> 00:22:28,139 Sem as pessoas a tentarem corrigir isso ativamente, 450 00:22:28,223 --> 00:22:31,726 os dados históricos podem levar-nos a repetir os erros do passado. 451 00:22:33,812 --> 00:22:36,481 A história da programação é uma história de ambição 452 00:22:36,564 --> 00:22:38,358 e criatividade. 453 00:22:38,566 --> 00:22:41,528 Lançamento do foguetão Falcon 9. 454 00:22:41,611 --> 00:22:44,030 Vimos o que pensávamos ser impensável. 455 00:22:44,697 --> 00:22:45,740 Um buraco negro. 456 00:22:46,366 --> 00:22:47,742 Estamos a criar um mundo novo 457 00:22:48,284 --> 00:22:49,953 com mais ferramentas intuitivas 458 00:22:50,286 --> 00:22:52,122 que um maior número de pessoas pode usar 459 00:22:52,664 --> 00:22:55,750 para ajudar a garantir que o mundo é melhor. 460 00:22:56,126 --> 00:22:59,546 Estamos numa jornada para tornar os computadores mais acessíveis 461 00:22:59,629 --> 00:23:02,382 aos seres humanos e a um maior conjunto de seres humanos. 462 00:23:02,507 --> 00:23:07,053 Estamos a ver esta revolução a decorrer à nossa frente nos últimos 50 anos. 463 00:23:07,262 --> 00:23:09,139 Daí ser excitante estar vivo hoje. 464 00:23:09,973 --> 00:23:14,144 É muito importante lembrarmo-nos de que tudo o que usamos no computador 465 00:23:14,227 --> 00:23:16,146 foi criado por um ser humano. 466 00:23:16,980 --> 00:23:19,816 Podes ser uma dessas pessoas e é muito importante 467 00:23:19,899 --> 00:23:21,317 que o sejas. 468 00:23:21,401 --> 00:23:24,154 Podes mudar o mundo duma forma fundamental. 469 00:23:24,571 --> 00:23:28,616 Há um mundo que vai ser governado usando aprendizagem de máquina 470 00:23:28,741 --> 00:23:32,162 e dados e programação tradicional em cada vez mais formas. 471 00:23:32,662 --> 00:23:35,123 Como sociedade, devemos dizer: 472 00:23:35,206 --> 00:23:37,584 "Ok! Temos esta nova tecnologia potente 473 00:23:38,251 --> 00:23:43,089 e, de certa forma, pode ser ótimo mas não o será sozinho."