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