1 00:00:00,255 --> 00:00:06,134 http://git.metareload.com/comprev.git 2 00:00:39,965 --> 00:00:45,764 A Revolução da Computação Ainda Não Aconteceu 3 00:00:48,060 --> 00:00:49,752 Obrigado 4 00:00:51,558 --> 00:00:55,044 Bem, eu presumo que a maioria aqui ficou acordada até tarde. 5 00:00:56,041 --> 00:01:00,716 Eu não consigo lembrar de ter visto tantos programadores às oito horas da manhã. 6 00:01:04,910 --> 00:01:09,898 Eu acho que este é o maior banheiro em que eu já palestrei. 7 00:01:13,984 --> 00:01:16,880 Isso foi só um teste para saber se vocês conseguem me entender. 8 00:01:17,180 --> 00:01:20,173 Eu não consigo me entender aqui em cima. 9 00:01:21,236 --> 00:01:23,060 Agora ... 10 00:01:24,362 --> 00:01:30,843 Eu não venho ao OOPSLA desde o primeiro, e ... 11 00:01:31,642 --> 00:01:37,023 quando eu fui convidado a fazer esta palestra, eu estava pensando ... 12 00:01:37,015 --> 00:01:42,425 Bem, devo ir, ou não devo, ou o que devo fazer ... 13 00:01:42,923 --> 00:01:48,845 E me ocorreu que esta conferência, no dia de hoje ... 14 00:01:49,643 --> 00:01:55,757 ... está, basicamente, no centro do aniversário de 25 anos do Smalltalk. 15 00:02:05,435 --> 00:02:10,618 O esquema de interpretador que escrevi em uma página 16 00:02:11,628 --> 00:02:14,820 foi feito há algumas semanas, 25 anos atrás. 17 00:02:14,921 --> 00:02:20,405 E a primeira versão funcionando dele foi feita daqui há algumas semanas 18 00:02:20,500 --> 00:02:25,116 25 anos atrás, então estamos no centro, e ... 19 00:02:28,087 --> 00:02:31,883 Deixe-me ver se eu consigo colocar nosso emblema. 20 00:02:31,838 --> 00:02:33,932 Pode mostrar o primeiro slide, por favor? 21 00:02:34,182 --> 00:02:38,562 Então, eu pensei ... eu não quero ... 22 00:02:38,563 --> 00:02:43,744 Eu não farei uma palestra de história porque eu finalmente descarreguei esta obrigação 23 00:02:43,745 --> 00:02:47,403 na Conferência de História de Linguagens de Programação, há dois anos. 24 00:02:47,403 --> 00:02:52,063 Mas eu pensei que poderia ser interessante para alguns de vocês 25 00:02:52,064 --> 00:02:57,182 que não participaram da computação nos últimos 25 anos, ver ... 26 00:02:57,384 --> 00:03:00,386 ... uma jornada de dois minutos. 27 00:03:00,583 --> 00:03:04,073 Eu acredito que este conjunto de imagens ... 28 00:03:05,974 --> 00:03:12,362 ... basicamente se situa em 1973 e 1974, na Xerox PARC, ... 29 00:03:12,365 --> 00:03:15,260 ... mostra algumas das primeiras crianças com as quais nós trabalhamos ... 30 00:03:15,861 --> 00:03:18,748 A música que vocês verão neste clipe 31 00:03:18,746 --> 00:03:21,935 foi composta por um dos membros do nosso grupo, Chris Jeffers. 32 00:03:22,838 --> 00:03:27,947 É chamada "O Hacker Feliz", caso vocês queiram uma música-tema. 33 00:03:27,947 --> 00:03:32,738 Ela é tocada em um sintetizador FM de tempo real 34 00:03:32,738 --> 00:03:35,837 que nós desenvolvemos para o computador Alto. 35 00:03:35,835 --> 00:03:42,510 Então este é o antecessor das estações de trabalho e do Machintosh 36 00:03:43,308 --> 00:03:47,394 sem qualquer hardware sintetizador de som adicional. 37 00:03:47,393 --> 00:03:51,486 Afinal, por que você deve ter isso se o seu computador foi bem projetado? 38 00:03:54,388 --> 00:03:57,485 E vocês ... Acho que vocês terão uma pequena visão ... 39 00:03:57,486 --> 00:04:01,497 Antes que eu inicie o clipe, vamos só por brincadeira 40 00:04:01,666 --> 00:04:04,555 ver quantas das pessoas aqui nesta sala 41 00:04:04,961 --> 00:04:08,853 participaram da experiência envolvendo Smalltalk na Xerox PARC 42 00:04:08,853 --> 00:04:13,395 entre meados de 1971 e 1983. 43 00:04:13,330 --> 00:04:17,736 Podem se levantar? Vamos ver se descobrimos quantas pessoas estão aqui. 44 00:04:20,238 --> 00:04:22,833 Alguém sem cabelo branco? 45 00:04:25,720 --> 00:04:27,315 Obrigado. 46 00:04:27,860 --> 00:04:30,847 Ok, vamos rodar o clipe. 47 00:05:27,062 --> 00:05:30,759 Bem, as coisas eram assim cerca de 25 anos atrás. 48 00:05:32,550 --> 00:05:40,176 E a outra coisa que eu queria fazer no início desta palestra ... 49 00:05:40,074 --> 00:05:42,466 Eu tentei elaborar uma forma de adentrar nela 50 00:05:42,465 --> 00:05:46,470 e finalmente me recordei de um artigo que Dijkstra — 51 00:05:47,363 --> 00:05:50,750 Eu não sei quantos aqui conheceram Dijkstra 52 00:05:50,751 --> 00:05:54,643 mas vocês provavelmente sabem que arrogância, em Ciência da Computação 53 00:05:54,641 --> 00:05:57,342 é medida em nano-Dijkstras. 54 00:06:05,347 --> 00:06:12,713 E ele escreveu um artigo — destes que ele gostava de escrever 55 00:06:12,713 --> 00:06:17,536 cujo título era "Sobre o fato de o Atlântico ter dois lados". 56 00:06:19,130 --> 00:06:24,914 Tratava-se, basicamente, das diferenças na abordagem da Computação 57 00:06:25,130 --> 00:06:32,911 entre a Europa, especialmente na Holanda, e os Estados Unidos. 58 00:06:33,161 --> 00:06:35,755 E coisas interessantes ... sabe ... 59 00:06:35,523 --> 00:06:40,085 Nos EUA, aqui, nós não eramos suficientemente matemáticos e ... 60 00:06:41,278 --> 00:06:47,067 Céus, na Holanda, se você é um professor, você é indicado pela Rainha ... 61 00:06:47,068 --> 00:06:51,465 e havia muitas outras distinções importantes 62 00:06:51,467 --> 00:06:55,441 entre as duas culturas. 63 00:06:55,462 --> 00:06:59,963 Então, eu escrevi uma refutação chamada 64 00:06:59,974 --> 00:07:04,659 "Sobre o fato de a maior parte do software no mundo ser escrita em um lado do Atlântico" 65 00:07:09,593 --> 00:07:13,378 E era, basicamente, sobre — pois eu tenho um diploma em matemática também 66 00:07:14,277 --> 00:07:18,360 Era, basicamente, sobre os computadores como uma nova forma de matemática. 67 00:07:19,157 --> 00:07:20,451 Não se pode julgá-los. 68 00:07:20,451 --> 00:07:23,961 Eles não cabem muito bem na matemática clássica e pessoas que tentam fazer isso 69 00:07:24,662 --> 00:07:28,549 estão, basicamente, estimulando uma forma de masturbação. 70 00:07:30,043 --> 00:07:31,839 Talvez, conscientes disso. 71 00:07:36,682 --> 00:07:41,477 E era sobre ... um tipo de matemática prática. 72 00:07:42,473 --> 00:07:47,455 O equilíbrio estava entre criar estruturas 73 00:07:47,456 --> 00:07:49,851 que deveriam ser consistentes 74 00:07:49,852 --> 00:07:52,344 com um tipo muito maior que matemática clássica 75 00:07:52,345 --> 00:07:55,490 nunca chegou perto de sonhar tentar. 76 00:07:56,624 --> 00:07:59,884 E ter que lidar com os mesmos problemas 77 00:07:59,885 --> 00:08:03,116 que a matemática clássica, de qualquer tamanho, tem que lidar 78 00:08:03,310 --> 00:08:10,903 que é ser convincente sobre ter coberto todos os casos. 79 00:08:11,618 --> 00:08:14,312 Havia um matemático chamado Euler 80 00:08:14,907 --> 00:08:19,232 cujas especulações sobre o que seria verdade 81 00:08:19,828 --> 00:08:25,979 formaram 20 grandes livros, e a maioria delas era verdade. A maior parte estava correta. 82 00:08:26,038 --> 00:08:28,330 Quase todas as suas provas estavam erradas. 83 00:08:29,333 --> 00:08:33,319 E muitos PhDs em matemática neste e no último século 84 00:08:33,650 --> 00:08:38,535 tem sido formados por matemáticos lendo os livros de Euler 85 00:08:39,138 --> 00:08:43,359 encontrando uma de suas provas, mostrando que ela era ruim, e ... 86 00:08:44,752 --> 00:08:48,448 supondo que a intuição dele poderia estar correta 87 00:08:48,449 --> 00:08:51,666 e encontrando uma prova muito mais convincente. 88 00:08:51,770 --> 00:08:57,748 Então, depuração acontece na matemática, também. 89 00:08:58,454 --> 00:09:03,836 Eu acho que o ponto principal sobre POO — 90 00:09:04,832 --> 00:09:07,924 ou qualquer tipo de programação, é que deve haver 91 00:09:08,022 --> 00:09:14,501 uma extrema união entre beleza e praticidade. 92 00:09:14,451 --> 00:09:18,801 Não há razão para sacrificar qualquer um desses 93 00:09:18,801 --> 00:09:22,350 e as pessoas que estão dispostas a sacrificar um desses 94 00:09:22,351 --> 00:09:26,051 Eu não creio que entendem do que a computação se trata. 95 00:09:26,567 --> 00:09:31,054 É como dizer que eu tenho ótimas idéias para uma pintura mas ... 96 00:09:31,256 --> 00:09:34,941 Eu vou apenas usar o pincel sem tinta 97 00:09:36,245 --> 00:09:40,969 Então, minhas idéias serão representadas por gestos 98 00:09:40,970 --> 00:09:45,053 sobre o papel. E não diga isso à nenhum artista do século XX 99 00:09:45,054 --> 00:09:48,082 ou eles podem querer filmar a si mesmos fazendo isso 100 00:09:48,083 --> 00:09:49,579 e colocar a fita em um museu. 101 00:09:52,129 --> 00:09:53,486 Então eu pensei ... 102 00:09:54,229 --> 00:09:57,620 Eu tenho este problema para saber o que dizer ... 103 00:09:58,823 --> 00:10:03,806 É sempre difícil porque pessoas técnicas parecem saber tanto. 104 00:10:04,401 --> 00:10:11,286 Mas é interessante, novamente, olhar o que se faz no mundo 105 00:10:11,387 --> 00:10:13,482 sob o nome de POO. 106 00:10:13,979 --> 00:10:19,544 Eu tenho visto alguns códigos muito, muito estranhos 107 00:10:19,547 --> 00:10:21,747 com o passar dos anos 108 00:10:22,893 --> 00:10:26,685 de várias pessoas, incluindo pessoas em universidades 109 00:10:27,693 --> 00:10:33,286 que dizem ser código OO, escritos em uma linguagem OO. 110 00:10:34,281 --> 00:10:36,273 E, de fato, eu criei o termo "orientação a objeto" 111 00:10:36,970 --> 00:10:40,764 e posso lhes dizer que eu não tinha C++ em mente. 112 00:10:50,366 --> 00:10:57,879 Então, um ponto importante é que eu sinto o mesmo em relação ao Smalltalk. 113 00:11:00,521 --> 00:11:02,916 Eu não tentarei fazer Smalltalk aqui 114 00:11:02,917 --> 00:11:06,808 pois acho que há algo muito importante sobre Smalltalk 115 00:11:07,411 --> 00:11:11,433 e linguagens como ela, que nós devemos 116 00:11:11,628 --> 00:11:13,944 prestar bastante atenção. 117 00:11:14,105 --> 00:11:17,903 Mas não tem quase nada haver com sua sintaxe 118 00:11:19,889 --> 00:11:24,779 ou sua biblioteca de classes. 119 00:11:24,463 --> 00:11:29,343 Ambas costumam ser consideradas a própria linguagem 120 00:11:29,344 --> 00:11:33,636 como se tivesse sido enviada por alguns deuses do Olímpo. 121 00:11:34,232 --> 00:11:36,564 Então eu queria falar um pouco mais sobre 122 00:11:37,063 --> 00:11:43,155 minha reação pessoal à POO quando comecei a pensar sobre nos anos 60 123 00:11:43,373 --> 00:11:49,279 e ao invés de fazer uma palestra histórica, pensar se 124 00:11:49,678 --> 00:11:55,656 estas reações e insights são relevantes hoje. 125 00:11:56,468 --> 00:11:58,995 Então ... eu vou ... 126 00:12:05,566 --> 00:12:08,063 Acho que meu slide não funciona. 127 00:12:09,746 --> 00:12:11,044 Ou funciona. 128 00:12:13,740 --> 00:12:17,539 Sim, vá para ... há um slide em branco, vá para o próximo. 129 00:12:18,989 --> 00:12:24,679 Então, nos anos 60, as coisas eram bastante mecânicas. 130 00:12:25,703 --> 00:12:29,852 Havia o pensamento sobre mecanismos simples. 131 00:12:29,852 --> 00:12:33,241 porque computadores eram tão grandes quanto esta sala. 132 00:12:33,242 --> 00:12:37,461 O que o Ivan Sutherland usou para o Sketchpad era do tamanho desta sala. 133 00:12:38,256 --> 00:12:43,452 Foi um dos últimos computadores nos EUA grandes o suficiente para terem seu próprio telhado. 134 00:12:43,452 --> 00:12:46,651 Ele era o próprio prédio. 135 00:12:47,350 --> 00:12:49,745 Mas os programas eram bastante pequenos 136 00:12:49,813 --> 00:12:56,403 e eles tinham muito em comum com suas raízes matemáticas. 137 00:12:57,908 --> 00:13:04,003 Uma forma de pensar sobre a semântica da matemática baseada em lógica 138 00:13:05,105 --> 00:13:11,703 é em termos de engrenagens. Tudo tem que se encaixar, e neste caso 139 00:13:11,901 --> 00:13:18,589 se tudo é compatível no fim, você tem o giro final que deseja. 140 00:13:19,983 --> 00:13:22,380 Uma espécie de analogia com o mundo real. 141 00:13:22,815 --> 00:13:24,910 Próximo slide, por favor. 142 00:13:26,559 --> 00:13:31,743 Opa, perdemos um slide. Volte dois slides, por favor. 143 00:13:32,809 --> 00:13:34,306 Muito bem. 144 00:13:34,834 --> 00:13:41,226 Então, uma analogia para esses programas dos anos 60 é uma casa de cachorro. 145 00:13:42,126 --> 00:13:46,316 Se pegar algumas tábuas, pregos e um martelo 146 00:13:46,514 --> 00:13:50,010 e bater neles, você terá uma estrutura que ficará em pé. 147 00:13:50,610 --> 00:13:55,501 Você não tem que saber nada, exceto como martelar para fazer isso. 148 00:13:55,502 --> 00:13:59,002 Agora, alguém pode ver esta casa e dizer 149 00:13:59,001 --> 00:14:04,053 "Uau! Se pudermos expandir isso por um fator de 100" 150 00:14:04,054 --> 00:14:05,580 "poderemos fazer uma catedral" 151 00:14:05,581 --> 00:14:08,052 "Com 90cm, isso nos daria ..." 152 00:14:08,053 --> 00:14:10,551 " ... trinta andares." 153 00:14:11,354 --> 00:14:14,751 "E isso seria impressionante. Poderiamos colocar muitas pessoas lá dentro" 154 00:14:15,697 --> 00:14:18,431 Então os carpinteiros trabalhariam 155 00:14:18,429 --> 00:14:23,127 expandindo ela por um fator de 100. Agora, todos nós sabemos — 156 00:14:23,425 --> 00:14:26,156 como engenheiros e cientistas, que 157 00:14:26,277 --> 00:14:29,028 quando você expande algo por um fator de 100 158 00:14:29,029 --> 00:14:31,957 sua massa cresce por um fator de um milhão. 159 00:14:32,256 --> 00:14:36,457 E sua força, que está relacionada as junções 160 00:14:36,458 --> 00:14:38,856 cresce apenas por um fator de 10 mil. 161 00:14:40,167 --> 00:14:43,657 Então, quando se expande algo por um fator de 100 162 00:14:44,070 --> 00:14:47,865 ele se torna 100x mais fraco em sua capacidade. 163 00:14:47,866 --> 00:14:51,482 E, de fato, a casa de cachorro irá simplesmente entrar em colapso 164 00:14:51,709 --> 00:14:53,463 em uma pilha de entulho. 165 00:14:54,557 --> 00:14:58,247 Então, há duas coisas que se pode fazer quando isso acontecer. 166 00:14:59,445 --> 00:15:04,129 A mais popular é dizer "Bem, era isso que estavamos querendo fazer desde o início". 167 00:15:07,613 --> 00:15:12,054 Coloque mais lixo sobre isso, cubra com pedras, e ... 168 00:15:12,353 --> 00:15:16,739 ... diga "Sim, estavamos tentando construir pirâmides ao invés de catedrais góticas". 169 00:15:19,731 --> 00:15:22,596 De fato, acho que isso representa muito da estrutura 170 00:15:22,597 --> 00:15:25,102 de sistemas operacionais modernos, hoje em dia. 171 00:15:32,041 --> 00:15:37,433 Ou, você pode conceber um novo conceito 172 00:15:37,533 --> 00:15:42,323 que pessoas que se interessaram 173 00:15:42,324 --> 00:15:48,121 em estruturas complexas muitos anos atrás fizeram. Elas chamaram de "arquitetura". 174 00:15:48,319 --> 00:15:52,911 Literalmente, o design e construção de arcos bem-sucedidos. 175 00:15:53,318 --> 00:15:59,507 Uma interação não-óbvia, não-linear entre materiais simples 176 00:15:59,508 --> 00:16:03,811 para lhe dar sinergias não-óbvias 177 00:16:04,411 --> 00:16:08,404 e uma multiplicação rápida de materiais. 178 00:16:08,605 --> 00:16:14,897 É notável para as pessoas quando lhes digo que a quantidade de material na 179 00:16:14,896 --> 00:16:19,694 Catedral de Chartres, que é uma estrutura física enorme 180 00:16:20,193 --> 00:16:24,187 é menor que a quantidade de material colocada no Parthenon. 181 00:16:25,710 --> 00:16:32,402 O motivo é que ela é quase toda formada por ar. E quase toda formada por vidro. 182 00:16:32,499 --> 00:16:36,495 Tudo é organizado [?] em uma bela estrutura 183 00:16:37,007 --> 00:16:43,003 para que seu espaço tenha muito mais integridade que qualquer uma de suas partes. 184 00:16:43,004 --> 00:16:47,987 Então, este é o outro caminho que você pode seguir, e parte da mensagem de POO 185 00:16:47,986 --> 00:16:53,673 era que, na medida em que a complexidade se torna mais e mais importante 186 00:16:53,672 --> 00:16:56,867 arquitetura sempre dominará material. 187 00:16:57,760 --> 00:17:05,067 E, o triste fato, eu acho, sobre POO 188 00:17:05,068 --> 00:17:10,555 é que as pessoas não se interessaram por arquitetura pela sua beleza 189 00:17:10,954 --> 00:17:13,444 Elas começaram a se interessar em arquitetura agora 190 00:17:13,445 --> 00:17:16,535 quando a Internet está forçando todos para que o façam. 191 00:17:17,032 --> 00:17:18,827 Isso é patético. 192 00:17:23,031 --> 00:17:27,827 Então, eu vou usar uma metáfora para esta palestra 193 00:17:28,326 --> 00:17:32,069 que vem de um livro maravilhoso chamado 194 00:17:32,068 --> 00:17:35,318 "The Act Of Creation" de Arthur Koestler 195 00:17:35,816 --> 00:17:42,393 Koestler foi um novelista que se tornou um cientista cognitivo em seus últimos anos 196 00:17:43,088 --> 00:17:48,924 E um dos maiores livros que ele escreveu foi sobre o que seria a criatividade 197 00:17:49,174 --> 00:17:55,393 Aprendizado... Ele entendeu que aprendizado, claro, é um ato de criação por sí só 198 00:17:55,322 --> 00:17:59,322 porque algo acontece dentro de você que não estava lá antes 199 00:17:59,825 --> 00:18:09,609 E ele usou a metáfora de pensamentos como formigas camihando em um plano 200 00:18:10,307 --> 00:18:13,803 Neste caso é um plano rosa 201 00:18:14,403 --> 00:18:16,896 e há muitas coisas que você pode fazer em um plano rosa 202 00:18:17,494 --> 00:18:21,311 Você pode ter objetivos. Você pode escolher direções. 203 00:18:21,909 --> 00:18:27,044 Você pode se movimentar. Mas você está, basicamente, sempre no contexto rosa 204 00:18:28,635 --> 00:18:35,223 E, se você pensar sobre isso, significa que progresso, em um contexto fixo 205 00:18:35,183 --> 00:18:40,483 é quase sempre uma forma de otimização 206 00:18:41,296 --> 00:18:44,990 porque se você está criando algo novo 207 00:18:45,487 --> 00:18:50,081 esse algo não faria parte das regras ou do contexto 208 00:18:50,091 --> 00:18:52,189 que definem o plano rosa 209 00:18:52,689 --> 00:18:59,982 Então, atos criativos geralmente não permanecem no mesmo contexto em que se encontram 210 00:19:01,881 --> 00:19:04,471 Ele diz "Vez ou outra 211 00:19:06,072 --> 00:19:11,055 embora você tenha sido ensinado cuidadosamente por pais e pela escola por muitos anos 212 00:19:11,750 --> 00:19:13,942 você tem uma idéia azul." 213 00:19:14,686 --> 00:19:16,584 Talvez quando você está no banho 214 00:19:16,989 --> 00:19:19,991 Talvez quando você está correndo 215 00:19:20,555 --> 00:19:24,446 Talvez quando você está descansando em um momento indefeso 216 00:19:24,672 --> 00:19:30,403 derrepente, aquilo que estava te perturbando, refletindo sobre, observando 217 00:19:31,610 --> 00:19:35,108 aparece pra você sob uma luz completamente diferente, como se fosse outra coisa 218 00:19:35,620 --> 00:19:41,709 E Koestler disse que a reação emocional à isso vem basicamente em três formas: 219 00:19:41,715 --> 00:19:46,104 Se você está contando uma piada, é "HA HA!" 220 00:19:47,212 --> 00:19:49,512 Se você está fazendo ciência, é "A HA!" 221 00:19:50,111 --> 00:19:53,407 e se você está fazendo arte, é "AHHH"! 222 00:19:53,747 --> 00:19:58,343 Ele diz isso porque em cada caso algo muito similar está acontecendo 223 00:19:58,274 --> 00:20:01,023 Uma piada o leva ao caminho do jardim 224 00:20:01,723 --> 00:20:07,917 e, derrepente, releva que se trata de algo diferente, e você tem uma explosão muito agressiva 225 00:20:08,778 --> 00:20:13,559 E ciência tem muito do mesmo sentimento, e muitas vezes 226 00:20:14,455 --> 00:20:17,244 quando você vê algo, em ciência, você começa a rir 227 00:20:17,646 --> 00:20:21,032 porque estava bem ali na sua frente, e é um tipo de piada 228 00:20:21,460 --> 00:20:28,078 E é claro, arte existe para nos lembrar...Grande arte existe para nos lembrar 229 00:20:27,978 --> 00:20:31,571 que qualquer contexto em que achamos que estamos, existem outros contextos 230 00:20:32,069 --> 00:20:35,763 Arte existe para nos tirar do contexto em que estamos 231 00:20:36,162 --> 00:20:39,057 e nos fazer cientes de outros contextos 232 00:20:38,748 --> 00:20:44,749 Então, esta é uma simples -- você pode até chamar de uma metáfora simplista 233 00:20:44,698 --> 00:20:48,290 mas certamente servirá para esta palestra hoje 234 00:20:49,587 --> 00:20:55,969 E ele também apontou que você precisa ter algo azul para ter pensamentos azuis 235 00:20:56,967 --> 00:21:05,256 Eu acho que, geralmente, não se vê isso em pessoas que se especializam sem limites 236 00:21:05,123 --> 00:21:12,098 Quando você especializa, você está basicamente se colocando em um estado mental 237 00:21:11,943 --> 00:21:14,635 onde otimização é tudo o que você pode fazer 238 00:21:15,733 --> 00:21:18,827 Você precisa aprender muitos tipos de coisas diferentes 239 00:21:19,027 --> 00:21:23,615 para que você comece a ver esses outros contextos 240 00:21:24,843 --> 00:21:31,035 Então, eis algumas batidas na cabeça que eu tive durante o tempo 241 00:21:31,733 --> 00:21:34,029 Eu quero falar deles rapidamente para vocês 242 00:21:34,128 --> 00:21:40,093 Este eu acho que vocês vão achar interessante porque é a forma mais antiga 243 00:21:40,087 --> 00:21:42,581 daquilo que nós chamamos de abstração de dados 244 00:21:42,831 --> 00:21:47,553 Ela vem lá de trás, na verdade, antes de 1961 245 00:21:47,803 --> 00:21:52,366 Eu estava na Força Aérea em 1961, e eu a vi em 1961 246 00:21:53,416 --> 00:21:57,013 e ela provavelmente surgiu um ano antes 247 00:21:57,926 --> 00:22:01,147 Então, naquela época, eles não tinham sistemas operacionais 248 00:22:03,065 --> 00:22:07,812 Comandantes tinham que enviar fitas de muitos tipos de registros 249 00:22:08,028 --> 00:22:10,622 de uma base de Força Aérea à outra 250 00:22:10,623 --> 00:22:12,555 Havia a questão de como se pode lidar 251 00:22:13,052 --> 00:22:17,763 com todas essas coisas que haviam nas imagens dos cartões, porque os formatos 252 00:22:17,862 --> 00:22:22,053 das fitas começavam a ficar cada vez mais complicados 253 00:22:22,750 --> 00:22:29,456 e alguém -- quase certamente um alistado, porque oficiais não programavam naquela época 254 00:22:31,053 --> 00:22:34,250 apareceu com a seguinte idéia 255 00:22:35,147 --> 00:22:41,236 Esta pessoa disse "na terceira parte do registro desta fita 256 00:22:41,236 --> 00:22:46,425 nós colocamos todos os registros de um tipo particular 257 00:22:48,441 --> 00:22:53,163 Na segunda parte -- no meio -- nós colocamos todos os procedimentos 258 00:22:53,959 --> 00:23:01,148 que sabem como lidar com os formatos da terceira parte da fita 259 00:23:01,955 --> 00:23:06,001 E na primeira parte, nós colocamos ponteiros para os procedimentos 260 00:23:07,232 --> 00:23:11,812 e vamos fazer com que os primeiros dez ponteiros sejam padronizados 261 00:23:13,371 --> 00:23:18,160 como ler ou escrever campos, e tentar imprimir 262 00:23:19,056 --> 00:23:21,564 Vamos ter um vocabulario padrão nos primeiros dez desses 263 00:23:21,814 --> 00:23:24,523 e então poderemos ter os ponteiros idiosincráticos logo depois 264 00:23:24,523 --> 00:23:27,940 Então, tudo o que se precisava fazer para ler uma fita em 1961 265 00:23:28,190 --> 00:23:32,442 era ler a primeira parte do registro 266 00:23:32,714 --> 00:23:36,203 um destes grandes registros, na memória principal 267 00:23:36,703 --> 00:23:42,084 e começar a pular indiretamente pelos ponteiros, e os procedimentos estão lá 268 00:23:42,184 --> 00:23:47,079 Agora, eu quero que vocês contrastem isso com o que você tem que fazer com HTML na Internet 269 00:23:48,564 --> 00:23:49,762 Pense a respeito. 270 00:23:49,505 --> 00:23:53,336 HTML na Internet nos levou à era das trevas 271 00:23:53,734 --> 00:23:59,027 porque pressupõe que deve haver um browser que deve entender seu formato 272 00:24:00,131 --> 00:24:04,426 Esta deve ser uma das piores idéias desde o MS-DOS 273 00:24:10,266 --> 00:24:12,466 É mesmo uma vergonha 274 00:24:12,715 --> 00:24:18,709 Talvez seja o que acontece quando físicos decidem brincar com computadores, não sei 275 00:24:20,103 --> 00:24:22,866 E, de fato, nós podemos ver o que está acontecendo com a Internet 276 00:24:23,380 --> 00:24:25,177 ela está gradualmente ... 277 00:24:25,675 --> 00:24:28,430 Há essas duas guerras acontecendo -- há estas guerras de browsers 278 00:24:28,629 --> 00:24:31,328 que são 100% irrelevantes 279 00:24:32,122 --> 00:24:37,724 Elas são basicamente uma tentativa, de ambos os lados, de demonstrar um não-entendimento 280 00:24:38,523 --> 00:24:40,617 de como construir sistemas complexos 281 00:24:41,315 --> 00:24:47,503 ou mesmo uma tentativa mais primitiva de ganhar território 282 00:24:47,903 --> 00:24:51,905 Então, eu suspeito que a Microsoft esteja tentando este último 283 00:24:53,444 --> 00:24:55,239 Você não precisa de um browser 284 00:24:56,235 --> 00:25:04,225 se você seguir o que este alistado da Força Aérea sabia como fazer em 1961 285 00:25:04,724 --> 00:25:06,724 Você só precisa transferir pra dentro 286 00:25:07,922 --> 00:25:10,822 Os registros devem viajar com tudo o que precisam 287 00:25:11,623 --> 00:25:16,014 e você não precisa de nada mais complexo do que algo como X Windows 288 00:25:16,812 --> 00:25:18,609 Espero que algo melhor 289 00:25:20,040 --> 00:25:23,445 Mas basicamente, você quer ser capaz de distribuir 290 00:25:23,443 --> 00:25:25,441 todo o conhecimento de todas as coisas que estão lá 291 00:25:25,383 --> 00:25:29,763 e de fato, a Internet está começando a se mover nesta direção 292 00:25:29,732 --> 00:25:36,407 enquanto as pessoas descobrem formatos HTML mais complexos, mais intratáveis 293 00:25:37,104 --> 00:25:41,696 Este é um desses erros que vem sendo cometidos em todas as gerações 294 00:25:43,091 --> 00:25:45,281 E essa, simplesmente, não é a forma de se fazer. 295 00:25:44,924 --> 00:25:47,116 Então, eis uma grande idéia 296 00:25:48,215 --> 00:25:55,106 e aliás, este tipo de programação era feita antes de haver linguagens de alto nível na Força Aérea 297 00:25:55,505 --> 00:26:00,922 E esta abordagem foi tirada da Força Aérea pelo COBOL 298 00:26:01,722 --> 00:26:03,726 quando eles padronizaram em COBOL 299 00:26:07,133 --> 00:26:09,031 Sketchpad do Ivan Sutherland 300 00:26:10,029 --> 00:26:14,147 Eu geralmente mostro um filme dele. Não mostrarei hoje 301 00:26:15,146 --> 00:26:17,043 Imensamente sofisticado 302 00:26:17,441 --> 00:26:21,731 Impressionante em sua concepção do que era capaz de fazer 303 00:26:22,058 --> 00:26:25,069 Um sistema orientado a objeto 304 00:26:25,023 --> 00:26:30,215 Ele tinha uma noção real de classes e sub-classes 305 00:26:31,619 --> 00:26:41,327 Tinha uma noção de polimorfismo, mais forte do que a a versão da Força Aérea 306 00:26:44,064 --> 00:26:45,310 Próximo slide, por favor. 307 00:26:50,891 --> 00:26:53,531 Agora, eu já havia visto a idéia três ou quatro vezes 308 00:26:54,234 --> 00:26:56,630 mas não antes de eu ter compreendido Simula 309 00:27:00,028 --> 00:27:01,625 nós achamos que ela seria um ALGOL 310 00:27:03,034 --> 00:27:08,156 E acabou que aquela pilha de fitas foi a primeira versão de Simula 311 00:27:08,665 --> 00:27:13,050 e ALGOL que foram desenvolvidos por Case Western Reserve 312 00:27:13,548 --> 00:27:18,241 e os inventores de Simula, Nygaard e Dahl na Noruega 313 00:27:19,042 --> 00:27:26,430 e distribuídos com uma documentação incompreensível, em 1966 314 00:27:27,123 --> 00:27:34,858 E foi tentando entender o que Simula era que finalmente 315 00:27:35,613 --> 00:27:36,858 Eu não estou certo do porquê 316 00:27:36,758 --> 00:27:41,060 eu acho que se você vê uma boa idéia que é estranha 317 00:27:41,959 --> 00:27:46,952 quatro vezes, em quatro roupas diferentes, ela começa a causar impressão 318 00:27:47,407 --> 00:27:52,789 E eis as escolhas que você tem quando se encara algo novo 319 00:27:54,402 --> 00:27:58,816 Você pode pegar esse avanço tecnológico e decidir 320 00:27:59,317 --> 00:28:04,012 "isso é uma forma melhor de se fazer as coisas que eu estou fazendo 321 00:28:04,710 --> 00:28:09,707 e eu posso usar isso para continuar na minha direção" 322 00:28:10,708 --> 00:28:12,505 Isso é continuar no plano rosa 323 00:28:13,406 --> 00:28:18,001 Ou, você pode dizer "isso não é uma 'coisa antiga' melhor, isso é quase uma 'coisa nova' 324 00:28:18,499 --> 00:28:20,895 e eu imagino o que esta 'coisa nova' está tentando se tornar" 325 00:28:21,927 --> 00:28:28,405 E, se fizer isso, há a chance de talvez ganhar uma vantagem incrível 326 00:28:28,639 --> 00:28:32,932 ao invés de simplesmente otimizar algo que não se pode otimizar muito 327 00:28:35,111 --> 00:28:37,805 Então, a escolha aqui foi ... 328 00:28:39,700 --> 00:28:43,604 Simula veio do mundo de estruturas de dados e procedimentos 329 00:28:44,103 --> 00:28:48,213 e tinha muito deste sabor, se você quiser olhar desta forma 330 00:28:48,343 --> 00:28:58,530 Mas ela tinha uma forma de criar relações de estados da computação com procedimentos 331 00:28:59,028 --> 00:29:03,251 que era extremamente útil, e muito melhor e mais genérico 332 00:29:03,670 --> 00:29:07,655 do que os chamados "own variables" em ALGOL 60 333 00:29:08,043 --> 00:29:09,957 Então, essa era uma forma de pensar sobre ela 334 00:29:10,773 --> 00:29:12,666 Então há esta outra questão 335 00:29:12,665 --> 00:29:17,747 Se isso é quase uma coisa nova, que tipo de coisa nova ela é? 336 00:29:18,444 --> 00:29:23,429 Bom, um dos meus diplomas é de biologia molecular 337 00:29:24,428 --> 00:29:32,299 e meu interesse particular estava em fisiologia celular e embriologia 338 00:29:33,113 --> 00:29:34,905 Morfogênese, como hoje é conhecido. 339 00:29:36,389 --> 00:29:41,677 E este livro, Molecular Biology of the Gene, tinha acabado de sair em 1965 340 00:29:43,975 --> 00:29:46,273 Livro maravilhoso. Ainda em impressão. 341 00:29:46,371 --> 00:29:49,067 Claro, ele passou por muitas, muitas edições 342 00:29:50,467 --> 00:29:54,394 Provavelmente, as únicas palavras em comum entre este livro e o atual 343 00:29:54,798 --> 00:29:58,193 são artigos como "o" e "um" 344 00:29:58,992 --> 00:30:01,791 Na verdade, a palavra "gene", creio, ainda está lá 345 00:30:02,090 --> 00:30:03,686 mas significa algo completamente diferente agora 346 00:30:04,284 --> 00:30:09,378 Mas uma das coisas que Watson fez neste livro foi fazer um ensaio [químico] 347 00:30:10,676 --> 00:30:14,668 O primeiro ensaio de uma criatura viva completa 348 00:30:15,565 --> 00:30:18,574 Esta foi a bactéria E. coli. 349 00:30:20,893 --> 00:30:22,287 Próximo slide, por favor. 350 00:30:27,764 --> 00:30:34,183 Então, se você olhar dentro de uma delas, a complexidade é impressionante 351 00:30:34,221 --> 00:30:41,506 Essas "pipocas" são moléculas de proteínas que possuem cerca de 5 mil átomos nelas 352 00:30:42,308 --> 00:30:48,913 E, como se pode ver no slide, quando se livra das moléculas pequenas 353 00:30:49,319 --> 00:30:53,917 como água e ions de cálcio, e ions de potássio, e por aí vai 354 00:30:54,416 --> 00:30:59,706 que constituem cerca de 70% da massa desta coisa 355 00:31:01,011 --> 00:31:06,289 os 30% restantes possuem cerca de 120 milhões de componentes 356 00:31:06,188 --> 00:31:08,822 que interagem entre si trocando informações 357 00:31:09,757 --> 00:31:16,363 E cada um destes componentes carrega bastante informação 358 00:31:16,836 --> 00:31:18,431 E você pode pensar ... 359 00:31:19,428 --> 00:31:25,106 A forma simplista de pensar sobre estas coisas é que ela funciona como OOPS 5 360 00:31:26,404 --> 00:31:28,681 Existe um "pattern matcher" 361 00:31:28,993 --> 00:31:32,879 e então, há coisas que acontecem se padrões são encontrados 362 00:31:34,802 --> 00:31:40,712 Então, o estado envolvido nisso possui cerca de cem gigas 363 00:31:41,644 --> 00:31:51,251 e você pode multiplicar isso hoje. É cerca de cem desktops 364 00:31:51,203 --> 00:31:55,698 mas ainda assim é uma quantidade impressionante de computação 365 00:31:55,948 --> 00:31:59,448 Talvez o mais interessante nesta estrutura 366 00:31:59,832 --> 00:32:08,970 é que a repetitividade da computação rivaliza seriamente 367 00:32:09,220 --> 00:32:14,616 com os computadores hoje. Particularmente considerando-se que são feitas em paralelo 368 00:32:14,855 --> 00:32:20,943 Por exemplo, uma destas "pipocas" move-se sua própria largura em apenas dois nanosegundos 369 00:32:22,410 --> 00:32:27,283 Então, uma das formas de se visualizar isso é, se um átomo for do tamanho de uma bola de tênis 370 00:32:28,319 --> 00:32:33,501 então uma destas moléculas de proteína seriam do tamanho de um fusca 371 00:32:34,499 --> 00:32:40,188 e está se movendo sua largura em dois nanosegundos 372 00:32:39,882 --> 00:32:43,082 Cerca de 2.5 metros na nossa escala 373 00:32:43,978 --> 00:32:49,351 Alguém pode fazer a aritmética para dizer a fração da velocidade da luz 374 00:32:49,651 --> 00:32:52,445 ao se mover 2.5 metros em dois nanosegundos? 375 00:32:57,584 --> 00:32:59,482 Quatro vezes? Sim 376 00:33:00,183 --> 00:33:01,283 Quatro vezes a velocidade da luz 377 00:33:02,683 --> 00:33:03,381 Escala. 378 00:33:04,129 --> 00:33:07,225 Se você já se perguntou porquê química funciona, é por isso 379 00:33:07,624 --> 00:33:14,119 A agitação termal ali é tão inacreditavelmente violenta que não conseguimos imaginar 380 00:33:14,618 --> 00:33:16,514 mesmo com a ajuda de computadores 381 00:33:17,511 --> 00:33:21,206 Não há nada a ser visto dentro de uma dessas coisas até que você a mate 382 00:33:22,404 --> 00:33:26,800 porque é apenas um borrão completo de atividade 383 00:33:27,198 --> 00:33:31,492 e sob boas condições, leva apenas quinze a dezoito minutos 384 00:33:31,892 --> 00:33:34,686 para que uma delas se duplique completamente 385 00:33:35,308 --> 00:33:40,502 Ok, então essa é uma bacteria. Claro, muito mais se conhece hoje 386 00:33:41,897 --> 00:33:47,529 Então, outro fato para relacionar isso a nós é que estas bactérias 387 00:33:47,628 --> 00:33:52,121 possuem o tamanho de 1/500 do tamanho das células no nosso corpo 388 00:33:53,022 --> 00:33:59,012 que ao invés de 120 milhões de componentes informacionais, possuem cerca de 6 bilhões 389 00:34:00,010 --> 00:34:10,390 E, nós temos entre 10^12 e 10^13, talvez mais, células no nosso corpo 390 00:34:12,386 --> 00:34:21,883 e no entanto, apenas 50 divisões celulares acontecem em uma gravidez de nove meses 391 00:34:22,162 --> 00:34:24,553 Leva apenas 50 divisões celulares para fazer um bebê 392 00:34:26,745 --> 00:34:30,137 Na verdade, se você multiplicar, você conclui que só se precisa de cerca de 40 393 00:34:31,340 --> 00:34:38,612 e as dez potências de dez restantes estão lá porque, durante o processo embriológico 394 00:34:39,210 --> 00:34:43,965 muitas das células que não cabem de alguma forma 395 00:34:44,487 --> 00:34:47,382 para o organismo como um todo, são mortas 396 00:34:48,698 --> 00:34:52,472 Então, as coisas são feitas por excesso de proliferação, teste, e adequação 397 00:34:52,765 --> 00:34:55,359 para realizar este plano maior 398 00:34:56,554 --> 00:35:02,712 Então, claro, cada uma destas estruturas, nós, está inserida em uma enorme biomassa 399 00:35:03,096 --> 00:35:10,177 Então, para uma pessoa cujo contexto azul é biologia 400 00:35:11,568 --> 00:35:16,017 algo como um computador não pode, de forma alguma, ser considerado 401 00:35:16,017 --> 00:35:21,996 como sendo particularmente complexo, grande ou rápido 402 00:35:24,484 --> 00:35:27,675 Lento. Pequeno. Estúpido. 403 00:35:27,370 --> 00:35:29,364 Isso que os computadores são 404 00:35:30,357 --> 00:35:37,684 Então a questão é, como nós podemos fazer com que eles realizem seu destino 405 00:35:39,876 --> 00:35:41,379 Próximo slide, por favor. 406 00:35:48,188 --> 00:35:55,279 Acho que estamos usando uma forma de tecnologia que Napoleão usou... 407 00:35:55,276 --> 00:35:59,305 Lembram daqueles semáforos na França? 408 00:36:01,543 --> 00:36:07,563 Então, a mudança aqui é do ponto de vista mecânico ... 409 00:36:07,588 --> 00:36:10,481 Isso é um problema. Se você considerar coisas como casas de cachorro 410 00:36:10,485 --> 00:36:13,116 elas não escalam por um fator de 100 muito bem 411 00:36:13,186 --> 00:36:18,083 Se você considerar coisas como relógios, elas não escalam por um fator de 100 muito bem 412 00:36:19,982 --> 00:36:24,746 Considere coisas como células, elas não só escalam por um fator de 100 413 00:36:24,757 --> 00:36:27,450 mas por fatores de um trilhão. 414 00:36:28,093 --> 00:36:30,306 E a questão é, como elas fazem isso? 415 00:36:30,556 --> 00:36:37,106 E como nós podemos adaptar esta idéia para construir sistemas complexos? 416 00:36:38,376 --> 00:36:40,472 Ok? Esta é a pergunta básica. 417 00:36:40,869 --> 00:36:45,158 E esta é, a propósito, a que C++ ainda não entendeu. 418 00:36:48,258 --> 00:36:50,715 Não há idéia tão simples e poderosa 419 00:36:51,114 --> 00:36:54,211 que você não consiga zilhões de pessoas compreendendo ela mal. 420 00:36:57,955 --> 00:37:06,026 Então você não deve, de forma alguma, permitir que o interior dessas coisas 421 00:37:05,904 --> 00:37:09,795 seja um fator na computação do todo 422 00:37:11,295 --> 00:37:14,595 Ok? E esta é apenas parte da história. Não é só a célula ... 423 00:37:14,749 --> 00:37:19,347 Membranas celulares estão lá para manter boa parte das coisas do lado de fora 424 00:37:19,647 --> 00:37:23,172 tanto quanto para manter certas coisas do lado de dentro. 425 00:37:25,381 --> 00:37:33,975 Eu acho que nossa confusão com objetos é que na nossa cultura ocidental 426 00:37:35,168 --> 00:37:39,364 nós temos uma linguagem que possui fortes substantivos e verbos 427 00:37:41,160 --> 00:37:43,563 Nossas palavras de processos são ruins. 428 00:37:45,258 --> 00:37:48,291 Então, é muito mais fácil para nós quando pensamos em um objeto ... 429 00:37:49,288 --> 00:37:53,676 Eu tenho pedido bastante desculpas ao longo dos últimos 20 anos 430 00:37:53,751 --> 00:37:56,310 por criar o termo "orientação a objeto" 431 00:37:57,216 --> 00:38:01,328 porque quando começou a ser mal aplicada, eu compreendi 432 00:38:02,028 --> 00:38:06,422 que eu deveria ter usado um termo mais orientado a processo 433 00:38:07,620 --> 00:38:14,629 Agora, os japoneses tem uma palavra interessante, que é "ma" 434 00:38:15,625 --> 00:38:17,337 Soletra-se em inglês "m-a". Ma. 435 00:38:18,797 --> 00:38:24,735 E "ma" são as coisas entre o que chamamos de objetos 436 00:38:25,532 --> 00:38:30,618 São as coisas que não vemos, porque estamos focados nos substantivos das coisas 437 00:38:30,422 --> 00:38:32,837 ao invés dos processos das coisas. 438 00:38:35,490 --> 00:38:40,333 Os japoneses possuem uma forma mais orientada a processos/campos 439 00:38:40,532 --> 00:38:43,305 de ver as coisas e como elas se relacionam. 440 00:38:43,766 --> 00:38:46,773 Você pode sempre observar isso ao notar o tamanho de uma palavra 441 00:38:47,270 --> 00:38:49,964 que expressa algo importante. 442 00:38:51,454 --> 00:38:53,176 Assim, Ma é muito curta. 443 00:38:53,776 --> 00:38:58,304 Nós temos que usar palavras como "intersticial" ou pior 444 00:38:58,927 --> 00:39:02,123 para aproximar o que os japoneses estão falando. 445 00:39:04,084 --> 00:39:07,587 Então, a compreensão aqui 446 00:39:08,585 --> 00:39:12,999 e não é possível atribuir esta realização a qualquer pessoa em particular 447 00:39:13,201 --> 00:39:18,795 porque estava nas sementes do Sketchpad 448 00:39:18,893 --> 00:39:23,922 e nas sementes do sistema de arquivos do militar 449 00:39:24,233 --> 00:39:25,932 e nas sementes de Simula 450 00:39:26,231 --> 00:39:30,130 Isso é, que uma vez que você encapsulou 451 00:39:30,726 --> 00:39:36,060 de tal forma que há uma interface entre o interior e o exterior 452 00:39:36,762 --> 00:39:39,658 é possível fazer um objeto se comportar como qualquer coisa. 453 00:39:39,908 --> 00:39:45,887 E a razão é simplesmente esta: que o que você encapsulou é um computador. 454 00:39:46,534 --> 00:39:49,984 Com isso, você fez algo poderoso na ciência da computação 455 00:39:50,283 --> 00:39:53,379 que é tomar esta coisa poderosa que você está trabalhando 456 00:39:53,379 --> 00:39:57,272 e não perdê-la ao particionar seu "design space" 457 00:39:57,869 --> 00:40:02,236 Este é o bug em linguagens de procedimentos de dados. 458 00:40:03,633 --> 00:40:08,363 Eu acho que a coisa mais perniciosa em linguagens como C++ e Java 459 00:40:08,730 --> 00:40:11,276 é que elas acreditam estar ajudando o programador 460 00:40:11,526 --> 00:40:15,942 ao se parecer o máximo possível com a coisa antiga 461 00:40:15,942 --> 00:40:18,538 mas, de fato, estão ferindo o programador terrivelmente 462 00:40:18,743 --> 00:40:22,139 por tornar difícil para o programador entender 463 00:40:22,155 --> 00:40:25,350 o que é realmente poderoso nesta nova metáfora. 464 00:40:27,373 --> 00:40:31,777 E, novamente, pessoas que faziam sistemas de tempo compartilhado já haviam entendido isso também 465 00:40:32,276 --> 00:40:36,975 A tese de Butler Lampson em 1965 466 00:40:37,785 --> 00:40:41,545 foi sobre que o que se quer oferecer à uma pessoa em um sistema de tempo compartilhado 467 00:40:41,754 --> 00:40:45,376 é algo que hoje é chamado de máquina virtual 468 00:40:46,074 --> 00:40:50,870 que não é o mesmo que a Java VM é 469 00:40:51,267 --> 00:40:55,607 mas que é algo que se parece o máximo com um computador físico 470 00:40:55,966 --> 00:40:58,283 mas oferecer um para cada usuário 471 00:40:59,191 --> 00:41:03,510 UNIX tinha este apecto. 472 00:41:03,809 --> 00:41:06,548 E o maior problema com este esquema 473 00:41:06,798 --> 00:41:13,633 é que um processo UNIX tem um overhead de cerca de 2 mil bytes 474 00:41:13,883 --> 00:41:18,606 apenas para obter um processo. Então seria muito difícil em um UNIX 475 00:41:18,705 --> 00:41:21,635 ter um processo que seja apenas o número 3. 476 00:41:23,034 --> 00:41:26,127 Você iria de 3 bits para alguns mil bytes 477 00:41:26,127 --> 00:41:28,222 e teria este problema com escalabilidade. 478 00:41:28,393 --> 00:41:35,514 Então, muito do problema aqui é tanto decidir que a metáfora biológica 479 00:41:35,516 --> 00:41:39,710 é a que irá vencer nos próximos ~25 anos 480 00:41:40,608 --> 00:41:44,689 e, então, se comprometer o suficiente com isso 481 00:41:45,189 --> 00:41:50,447 para que ela possa ser prática em todos os níveis de escalabilidade que nós, de fato, precisamos. 482 00:41:51,773 --> 00:41:55,144 Então nós temos um truque que a biologia não sabe fazer 483 00:41:55,455 --> 00:41:59,169 que é: nós podemos pegar o DNA das células 484 00:42:00,267 --> 00:42:03,276 e isso nos permite lidar com fibrose cística 485 00:42:03,274 --> 00:42:06,368 muito mais facilmente do que da forma como se faz hoje em dia. 486 00:42:07,270 --> 00:42:09,768 Sistemas, de fato, possuem fibrose cística. 487 00:42:09,552 --> 00:42:15,408 E, alguns de vocês podem saber que fibrose cística, hoje, para algumas pessoas 488 00:42:15,917 --> 00:42:18,746 é tratada infectando um vírus nelas 489 00:42:19,343 --> 00:42:24,019 Um vírus de resfriado modificado que infeciona o pulmão 490 00:42:24,621 --> 00:42:29,929 mas o gene defeituoso da fibrose cística está no vírus de resfriado 491 00:42:30,640 --> 00:42:35,531 E o vírus é muito fraco para destruir o pulmão, como pnemunia faz 492 00:42:36,035 --> 00:42:41,039 mas é forte o suficiente para inserir uma cópia deste gene em todas as células do pulmão 493 00:42:41,836 --> 00:42:44,366 E é isso que faz o truque. 494 00:42:44,665 --> 00:42:51,788 Esta é uma forma bem complicada de reprogramar o DNA de um organismo, uma vez que ele "está rodando". 495 00:42:55,105 --> 00:43:01,244 Então, eis algo que eu acho incrível e que não vemos muito ... 496 00:43:01,543 --> 00:43:03,444 Por exemplo, uma das coisas que mais me surpreende 497 00:43:03,750 --> 00:43:08,764 das pessoas que tem tentado colocar POO na Internet, é que eu não ... 498 00:43:09,169 --> 00:43:13,099 e eu espero que depois alguém me conte uma excessão à isso ... 499 00:43:13,397 --> 00:43:14,924 mas eu não conheço ninguém ainda 500 00:43:15,722 --> 00:43:21,208 que entendeu que, no mínimo, todo objeto deveria ter uma URL 501 00:43:23,105 --> 00:43:27,631 afinal, o que diabos eles são se não essas coisas? 502 00:43:28,029 --> 00:43:33,124 e eu acredito que todo objeto na Internet deveria ter um IP 503 00:43:34,830 --> 00:43:45,827 pois isto representa muito melhor as abstrações de fato, do hardware aos bits 504 00:43:46,625 --> 00:43:51,823 Então este é um insight inicial que objetos são basicamente como servidores 505 00:43:53,715 --> 00:43:58,485 E esta noção de polimorfismo, que costumavam chamar de "procedimentos genéricos" 506 00:44:01,075 --> 00:44:03,871 é uma forma de pensar sobre classes destes servidores. 507 00:44:03,970 --> 00:44:05,665 Todos sabem disso. 508 00:44:06,250 --> 00:44:09,106 E eis algo que não enfrentamos muito ainda 509 00:44:11,010 --> 00:44:15,811 que, agora, nós temos que construir essas coisas e, cedo, seremos requisitados para crescê-las 510 00:44:17,410 --> 00:44:21,142 Assim, é muito fácil, por exemplo, crescer um bebê 15cm 511 00:44:22,250 --> 00:44:24,524 Eles fazem isso cerca de 10 vezes em sua vida 512 00:44:25,125 --> 00:44:27,222 e você nunca precisa levá-los a manutenção. 513 00:44:28,617 --> 00:44:34,364 Mas se você tentar crescer um 747, você enfrentará um problema inacreditável 514 00:44:34,289 --> 00:44:38,889 porque ele existe neste mundo simplista mecânico 515 00:44:39,963 --> 00:44:44,654 em que o único objetivo foi construir este artefato 516 00:44:45,154 --> 00:44:46,872 Não para repará-lo. Não para modificá-lo. 517 00:44:47,272 --> 00:44:50,403 Não para fazer com que ele viva durante centenas de anos. 518 00:44:52,462 --> 00:44:54,888 Então, deixe-me fazer uma pergunta 519 00:44:55,589 --> 00:44:59,386 Eu não anotarei nomes, mas quantas pessoas aqui ainda usam 520 00:45:00,199 --> 00:45:05,716 uma linguagem que, essencialmente os obrigam, no desenvolvimento de sistemas ... 521 00:45:06,713 --> 00:45:10,147 os obrigam a desenvolver fora da linguagem 522 00:45:10,844 --> 00:45:14,438 compilando, recarregando, e executando, mesmo que rápido 523 00:45:15,235 --> 00:45:19,026 como Virtual Café 524 00:45:20,022 --> 00:45:24,053 Quantas pessoas ainda fazem isso? Vamos ver ... 525 00:45:24,063 --> 00:45:25,769 Vamos lá. Admitam! 526 00:45:26,517 --> 00:45:28,814 Nós podemos ter um "Texas tent meeting" depois 527 00:45:29,713 --> 00:45:35,201 Então, se você pensar a respeito, isso não pode ser outra coisa senão um beco sem saída 528 00:45:35,900 --> 00:45:37,796 para construir sistemas complexos 529 00:45:38,793 --> 00:45:44,083 onde muito da construção de sistemas complexos, em parte, estará em tentar entender 530 00:45:44,081 --> 00:45:49,003 quais são as possibilidades de interoperabilidade com coisas que já existem 531 00:45:48,923 --> 00:45:55,452 Agora, eu ... eu tive uma pequena participação no design da ARPANET 532 00:45:55,753 --> 00:45:59,958 Eu fui um dos 30 estudantes que frequentavam os encontros de design de sistemas 533 00:46:00,272 --> 00:46:06,875 para tentar formular princípios de design para a ARPANET, há 30 anos atrás 534 00:46:06,742 --> 00:46:10,785 E, se você pensar a respeito ... 535 00:46:12,883 --> 00:46:15,077 A ARPANET, é claro, se tornou a Internet 536 00:46:15,874 --> 00:46:25,297 e desde quando ela começou a funcionar -- por volta de 1969 -- até hoje 537 00:46:25,697 --> 00:46:28,529 ela expandiu por um fator de 100 milhões 538 00:46:30,749 --> 00:46:32,777 Isso é muito bom. 8 ordens de magnitude. 539 00:46:33,772 --> 00:46:38,203 E, até onde se pode dizer -- 540 00:46:38,502 --> 00:46:40,904 E eu falei com Larry Roberts sobre isso outro dia ... 541 00:46:41,707 --> 00:46:50,701 Não há um átomo físico na Internet hoje que estava na ARPANET original 542 00:46:51,798 --> 00:46:58,137 E não há uma linha de código na Internet hoje que estava na ARPANET original. 543 00:46:59,798 --> 00:47:05,500 É claro, se tivéssemos mainframes da IBM na ARPANET original, isso não teria acontecido. 544 00:47:08,931 --> 00:47:12,297 Portanto, esse é um sistema que expandiu por um fator de 100 milhões 545 00:47:12,296 --> 00:47:17,184 teve todos os átomos e todos os bits mudados, e nunca teve que parar! 546 00:47:19,573 --> 00:47:27,147 Esta é a metáfora que nós temos, absolutamente, que aplicar ao que pensamos ser coisas pequenas. 547 00:47:27,752 --> 00:47:30,172 Quando nós pensamos que programação é algo pequeno 548 00:47:31,565 --> 00:47:35,994 é por isso que seus programas são tão grandes! 549 00:47:37,785 --> 00:47:41,200 É por isso que elas se tornam pirâmides ao invés de catedrais góticas. 550 00:47:42,207 --> 00:47:43,387 Próximo. 551 00:47:47,460 --> 00:47:50,494 Ok, essa é outra grande fonte 552 00:47:52,459 --> 00:47:59,006 Certamente, a maior e única linguagem, junto com Simula dos anos 60 553 00:48:00,856 --> 00:48:07,654 Eu acho que ... uma com tantos insights profundos ou mais: LISP 554 00:48:08,351 --> 00:48:12,767 Na página 13 deste livro publicado em 1962 555 00:48:13,471 --> 00:48:21,360 há esta meia página de código que é o modelo reflexivo de LISP escrito em si mesma 556 00:48:22,259 --> 00:48:27,889 Todos os detalhes importantes da semântica de LISP e guias 557 00:48:27,987 --> 00:48:32,675 para se construir um interpretador LISP estão nesta meia página. 558 00:48:33,772 --> 00:48:41,227 E é este aspecto -- este aspecto meta-reflexivo -- que eu acho ... pra mim 559 00:48:41,526 --> 00:48:46,616 é a coisa mais triste que acontece com Java. 560 00:48:48,316 --> 00:48:50,492 Quando Java apareceu, eu pensei: "Bem 561 00:48:51,493 --> 00:48:56,040 esta legitimando algo que a maioria das pessoas não acreditaram por muito tempo." 562 00:48:55,865 --> 00:49:02,882 Que é esta abordagem de portabilidade via bytecode que tinhamos na Xerox PARC 563 00:49:03,183 --> 00:49:07,081 Não é uma idéia nova. Na verdade, ela remonta aos anos 60. 564 00:49:07,478 --> 00:49:12,006 Mas quando eu dei uma olhada em Java, pensei "Meu Deus, como eles podem ..." 565 00:49:12,105 --> 00:49:14,121 E é claro, nós sabiamos que a história era 566 00:49:14,520 --> 00:49:19,553 mais sobre programação de torradeiras, originalmente, do que Internet, mas ... 567 00:49:19,952 --> 00:49:24,764 "Meu Deus, como eles pretendem sobreviver à todas as mudanças 568 00:49:25,365 --> 00:49:31,096 modificações, adaptações e requerimentos de interoperabilidade 569 00:49:31,395 --> 00:49:32,395 sem um meta-system? 570 00:49:33,305 --> 00:49:39,394 Sem, ao menos, por exemplo, ser capaz de carregar código novo enquanto está executando?" 571 00:49:40,191 --> 00:49:45,042 Então, pra mim ... o fato de as pessoas terem adotado ela como se fosse uma grande esperança 572 00:49:45,755 --> 00:49:51,343 é, provavelmente, a coisa mais perturbadora pra mim, pessoalmente, como eu disse, desde o MS-DOS. 573 00:49:51,642 --> 00:49:59,713 Isso representa uma falha real das pessoas em entender qual é o quadro completo, e o que ele será. 574 00:50:01,507 --> 00:50:02,810 Próximo slide. 575 00:50:07,218 --> 00:50:09,641 Então, esta noção de meta-programação 576 00:50:10,440 --> 00:50:11,870 Várias formas diferentes de se ver ... 577 00:50:13,169 --> 00:50:20,464 Uma delas é que, qualquer implementação em particular está fazendo decisões pragmáticas 578 00:50:22,264 --> 00:50:28,256 e estas escolhas pragmáticas provavelmente não serão capazes de cobrir todos os casos 579 00:50:28,754 --> 00:50:35,544 no nível de eficiência e mesmo no nível de riqueza necessários. 580 00:50:36,041 --> 00:50:38,734 Certamente, isto é prática POO padrão. 581 00:50:39,032 --> 00:50:40,631 É por isso que encapsulamos. 582 00:50:41,327 --> 00:50:44,923 Nós precisamos esconder nossas bagunças. 583 00:50:45,123 --> 00:50:50,304 Nós precisamos ter diferentes formas de lidar com os mesmos conceitos 584 00:50:50,514 --> 00:50:53,423 de maneira que não distraia o programador. 585 00:50:54,419 --> 00:51:02,005 Mas, de fato, isto também é aplicável, como o pessoal de LISP descobriu, e como nós na Xerox PARC descobrimos ... 586 00:51:02,103 --> 00:51:05,027 Você também pode aplicar isto à construção da própria linguagem 587 00:51:05,032 --> 00:51:07,494 Quanto mais a linguagem consegue ver suas próprias estruturas 588 00:51:07,996 --> 00:51:16,592 mais você está livre da tirania da única implementação. 589 00:51:17,490 --> 00:51:24,122 Eu acho que este é uma das coisas mais críticas que poucas pessoas estão preocupadas de maneira prática. 590 00:51:26,766 --> 00:51:35,269 Uma das razões que estas "meta-coisas" serão importantes de tal forma que ninguém conseguirá ignorar 591 00:51:35,965 --> 00:51:42,866 é a questão de como nós realmente iremos interoperar na Internet, daqui há 5 e 10 anos. 592 00:51:43,961 --> 00:51:49,058 E, se você pensar a respeito ... Eu não acredito que a Microsoft será capaz de capturar a Internet. 593 00:51:50,355 --> 00:51:52,050 Eu acho que ela é muito grande. 594 00:51:52,245 --> 00:51:55,439 Eu acho que existem muitas pessoas adicionando idéias a ela. 595 00:51:55,935 --> 00:52:02,122 E eu acho que as pessoas serão sofisticadas o suficiente para entender que uma solução IBM ou Microsoft 596 00:52:02,820 --> 00:52:06,446 são, simplesmente, nem desejadas nem possíveis. 597 00:52:07,645 --> 00:52:11,365 O que isso significa é que haverá vários e vários -- 598 00:52:11,464 --> 00:52:17,147 quase já existem -- vários e vários sistemas de objetos diferentes 599 00:52:18,043 --> 00:52:24,226 todos com semântica bastante similar, mas com detalhes pragmáticos distintos. 600 00:52:25,429 --> 00:52:29,002 E se você pensar no que uma URL de fato é 601 00:52:29,145 --> 00:52:33,869 e se pensar no que uma mensagem HTTP realmente é 602 00:52:34,067 --> 00:52:36,801 e se pensar no que um objeto realmente é 603 00:52:37,099 --> 00:52:40,993 e se pensar no que um ponteiro de objeto é 604 00:52:41,093 --> 00:52:46,631 Eu acho que deve ficar bem claro que qualquer linguagem orientada a objetos 605 00:52:46,636 --> 00:52:53,904 pode internalizar seus próprios ponteiros locais apontando para qualquer objeto no mundo, independente de onde ele foi feito. 606 00:52:53,904 --> 00:52:58,614 Este é o motivo pelo qual não se deve ser capaz de ver o interior 607 00:52:58,660 --> 00:53:05,622 Então, uma interoperabilidade semântica é possível, quase imediatamente 608 00:53:05,635 --> 00:53:08,732 ao se tomar este rumo, simplesmente. 609 00:53:10,083 --> 00:53:12,215 Isso irá mudar realmente tudo. 610 00:53:12,261 --> 00:53:17,499 E coisas como JavaBeans e CORBA não serão suficientes 611 00:53:18,098 --> 00:53:23,399 porque em algum ponto, a pessoa terá que realmente começar a descobrir 612 00:53:23,498 --> 00:53:25,941 o que objetos acham que podem fazer. 613 00:53:25,947 --> 00:53:33,776 Isto irá levar à uma linguagem de interface universal, que não é, de fato, uma linguagem de programação 614 00:53:34,983 --> 00:53:41,841 É mais algo como uma linguagem de prototipação que permite o intercâmbio 615 00:53:41,932 --> 00:53:44,825 de informações profundas sobre o que os objetos acham que podem fazer. 616 00:53:45,339 --> 00:53:49,459 Ela permite que objetos façam experimentos com outros objetos de forma segura 617 00:53:50,056 --> 00:53:53,099 para ver como eles respondem à várias mensagens. 618 00:53:53,596 --> 00:53:57,417 Isto será crítico para ser automatizado nos próximos ~10 anos 619 00:53:58,522 --> 00:53:59,521 Próximo slide. 620 00:54:01,167 --> 00:54:02,845 Eis um grande livro. 621 00:54:04,246 --> 00:54:06,330 Quantas pessoas já leram esse livro? 622 00:54:07,426 --> 00:54:11,823 Ok. Quando eles escreveram este livro, eu liguei pra eles e disse 623 00:54:11,821 --> 00:54:14,318 "Este é o melhor livro escrito nos últimos dez anos 624 00:54:14,916 --> 00:54:25,448 mas porque diabos vocês escreveram ele de forma tão centrada em LISP -- como um clube fechado?" 625 00:54:25,954 --> 00:54:28,759 Este é um livro difícil para a maioria das pessoas. 626 00:54:28,856 --> 00:54:32,253 Se você não conhece a cultura LISP, é muito difícil ler. 627 00:54:32,252 --> 00:54:38,894 Se você não sabe como o CLOS é feito, é um livro muito difícil de ler. 628 00:54:38,893 --> 00:54:45,945 Mas este livro tem alguns dos insights mais profundos e práticos sobre POO 629 00:54:46,246 --> 00:54:48,744 desenvolvidos nos últimos anos. 630 00:54:49,444 --> 00:54:50,989 Portanto, eu realmente o recomendo. 631 00:54:51,036 --> 00:54:58,783 E, se houver algum professor universitário que gostaria de receber um prêmio 632 00:54:59,383 --> 00:55:08,194 Eu darei àquele que reescrever este livro para que a comunidade OO, em geral, possa entendê-lo. 633 00:55:08,293 --> 00:55:11,044 Será um grande serviço à raça humana. 634 00:55:13,737 --> 00:55:22,633 Então, o que aconteceu na maior parte do mundo, começando nos anos 70, foi Tipos de Dados Abstratos 635 00:55:23,230 --> 00:55:28,929 que é, de fato, uma forma de permanecer numa forma de pensar sobre programação centrada em atribuições 636 00:55:29,429 --> 00:55:30,388 E eu acredito que ... 637 00:55:32,043 --> 00:55:39,731 Na verdade, quando eu fiz este slide, C++ estava tendo sua especificação desenvolvida 638 00:55:40,754 --> 00:55:44,862 Era uma daquelas coisas, como MS-DOS, que ninguém levou a sério 639 00:55:44,860 --> 00:55:49,778 porque quem iria cair numa piada como esta? 640 00:55:52,577 --> 00:55:53,974 Próximo slide, por favor. 641 00:55:56,611 --> 00:56:05,417 Na verdade, minha história favorita de C++ é: na Apple, havia este sistema operacional 642 00:56:05,824 --> 00:56:10,418 notavelmente ... coincidentemente chamado Rosa 643 00:56:13,509 --> 00:56:15,604 Era um barato! 644 00:56:17,106 --> 00:56:21,453 E havia duas características interessantes neste SO em que eles estavam trabalhando: 645 00:56:21,503 --> 00:56:25,401 Uma, era que ele seria desenvolvido em dois anos. 646 00:56:28,412 --> 00:56:34,392 Nós temos conhecido alguns grandes designers de SOs ao longo dos anos 647 00:56:34,592 --> 00:56:39,333 e eu não conheço nenhum SO decente que tenha sido feito em dois anos 648 00:56:39,331 --> 00:56:44,429 mesmo por pessoas com 10 vezes mais IQ do que a equipe do Rosa. 649 00:56:44,525 --> 00:56:49,217 A outra característica é que seria feito em C++, por eficiência. 650 00:56:52,165 --> 00:56:55,166 "Ah, não vamos fazer em Smalltalk! É muito lento!" 651 00:56:56,670 --> 00:57:03,961 Deixe-me dizer, não há nada mais ineficiente do que gastar 10 anos em um SO que nunca funciona. 652 00:57:13,043 --> 00:57:17,332 De fato, os piores são aqueles que parecem funcionar. 653 00:57:26,153 --> 00:57:34,574 Então, vamos pegar nosso plano rosa e usar esta citação do McLuhan 654 00:57:34,872 --> 00:57:36,406 Minha citação preferida do McLuhan 655 00:57:36,406 --> 00:57:39,427 "Eu não sei quem descobriu a água, mas não foi um peixe." 656 00:57:39,725 --> 00:57:45,465 Ele quis dizer nós sendo o peixe e a água como nossas estruturas de crença -- nosso contexto 657 00:57:46,045 --> 00:57:47,996 E eu acredito que esta é ... 658 00:57:48,394 --> 00:57:54,537 Se fosse escolher uma causa, tanto de dificuldade na nossa área 659 00:57:55,334 --> 00:57:58,230 e também uma dificuldade geral da raça humana ... 660 00:57:58,229 --> 00:58:01,874 É tomar um único ponto de vista e se comprometer a ele como se fosse religião. 661 00:58:03,170 --> 00:58:05,087 Isso aconteceu com Smalltalk. 662 00:58:05,355 --> 00:58:08,255 Há uma citação maravilhosa de Schopenhauer 663 00:58:08,951 --> 00:58:12,618 um filósofo alemão do século dezenove, que disse 664 00:58:12,476 --> 00:58:15,830 "Toda idéia passa por três estágios" 665 00:58:16,029 --> 00:58:19,582 Primeiro, ela é denunciada como o trabalho de um louco 666 00:58:20,976 --> 00:58:24,972 Isto é o que Swift chamou de "A confederação de estúpidos" 667 00:58:25,974 --> 00:58:36,563 e depois, ela é apontada como algo que sempre foi completamente óbvio 668 00:58:37,676 --> 00:58:44,606 e o último estágio é quando os primeiros denunciantes clamam ter inventado ela 669 00:58:47,412 --> 00:58:50,704 É aí que ela entra no estágio da religião. 670 00:58:50,715 --> 00:58:56,043 Agora, pra mim, o que aconteceu de mais perturbador com Smalltalk quando ela foi lançada 671 00:58:56,543 --> 00:59:00,258 foi que, em muitos aspectos, ela parou de mudar. 672 00:59:01,254 --> 00:59:05,198 E eu digo a vocês que, na Xerox PARC, houveram 4 grandes versões ... 673 00:59:05,099 --> 00:59:10,215 versões completamente diferentes da linguagem, em um período de 10 anos 674 00:59:10,914 --> 00:59:18,333 e muitos e muitos lançamentos significativos entre estas versões. 675 00:59:19,041 --> 00:59:24,362 E eu acho que o que mais gostávamos em Smalltalk não era o que ele podia fazer 676 00:59:24,960 --> 00:59:29,843 mas o fato de que ele era um veículo tão bom para iniciar o próximo ciclo de idéias 677 00:59:29,757 --> 00:59:32,106 que tinhamos sobre como construir sistemas. 678 00:59:32,305 --> 00:59:37,030 E isso, para todos os efeitos -- quando Smalltalk se tornou comercial -- parou! 679 00:59:37,854 --> 00:59:43,635 Mesmo havendo um livro -- o famoso livro azul que Adele e Dave escreveram 680 00:59:43,734 --> 00:59:50,248 que possui o código para criar interpretadores de Smalltalk e permite que uma pessoa inicie este processo 681 00:59:50,862 --> 00:59:53,457 quase ninguém procurou se beneficiar disso. 682 00:59:53,454 --> 00:59:56,002 Quase nenhuma universidade se beneficiou disso. 683 00:59:56,007 --> 00:59:59,163 Quase nenhuma elicitação comercial se beneficiou disso 684 00:59:59,464 --> 01:00:05,733 E o que eles perderam foi, pra mim, a coisa mais profunda que eu gostaria de comunicar a vocês hoje 685 01:00:05,734 --> 01:00:08,970 que é: nós não sabemos fazer design de sistemas ainda! 686 01:00:09,168 --> 01:00:13,102 Então, não vamos fazer daquilo que não sabemos uma religião, pelo amor de Deus! 687 01:00:13,210 --> 01:00:19,994 O que precisamos fazer é pensar, e pensar, e pensar constantemente sobre o que é importante. 688 01:00:20,592 --> 01:00:27,094 E nós temos que permitir que nossos sistemas nos levem ao próximo nível de abstração na medida em que os alcançamos. 689 01:00:28,692 --> 01:00:32,510 O que mais me orgulha no Smalltalk 690 01:00:32,622 --> 01:00:36,671 basicamente a única coisa, do meu ponto de vista, que me orgulha 691 01:00:37,069 --> 01:00:42,816 é que ele tem sido tão bom em se livrar de versões anteriores de si mesmo 692 01:00:43,314 --> 01:00:45,709 até ele sair para o mundo. 693 01:00:46,669 --> 01:00:51,383 Uma das razões que nos levaram a nos envolver em fazer o Smalltalk novamente 694 01:00:51,242 --> 01:00:56,229 depois -- pra mim, foi dezesseis anos sem trabalhar em linguagens de programação 695 01:00:56,528 --> 01:00:59,721 Dois anos atrás nós iniciamos este projeto chamado Squeak 696 01:01:00,619 --> 01:01:05,164 que não é uma tentativa de oferecer um Smalltalk livre para o mundo 697 01:01:05,563 --> 01:01:11,583 mas uma tentativa de oferecer ao mundo um mecanismo de bootstrap para algo muito melhor que Smalltalk 698 01:01:11,883 --> 01:01:17,019 e quando você brincar com Squeak, por favor, por favor, pense nele por este ponto de vista. 699 01:01:16,810 --> 01:01:19,010 Pense em como você poderá tornar ele obsoleto 700 01:01:19,207 --> 01:01:24,404 utilizando seus próprios mecanismos para obter a próxima versão de si mesmo. 701 01:01:25,865 --> 01:01:30,281 Então, busque os pensamentos azuis! 702 01:01:33,844 --> 01:01:38,732 Eu estava pensando em como terminar esta palestra -- pois eu fico continuando e continuando ... 703 01:01:38,732 --> 01:01:42,963 e me lembrei de uma história -- eu sou um organista de orgãos de tubo 704 01:01:43,379 --> 01:01:49,867 e a maioria dos músicos organistas tem como herói E. Power Biggs 705 01:01:52,286 --> 01:01:59,647 Ele meio que recuperou o interesse em orgãos de tubo especialmente em como ele era tocado 706 01:01:59,954 --> 01:02:05,517 nos séculos dezessete e dezoito, e influenciou tremendamente nós, organistas 707 01:02:05,616 --> 01:02:13,716 E um amigo meu foi assistente de E. Power Biggs por muitos anos, nos anos 40 e 50. 708 01:02:14,015 --> 01:02:15,157 Ele tem oitenta anos, hoje. 709 01:02:16,964 --> 01:02:21,988 E quando nós o convidamos para jantar, sempre fazemos ele contar histórias de E. Power Biggs 710 01:02:23,050 --> 01:02:29,944 O órgão que E. Power Biggs tinha naqueles dias era um órgão pequenino e besta 711 01:02:30,943 --> 01:02:35,169 desconcertante, em um museu de Harvard 712 01:02:36,464 --> 01:02:37,932 chamado Museu de Busch-Reisinger 713 01:02:38,429 --> 01:02:41,436 Mas de fato, todos os tipos de música eram tocados nele 714 01:02:41,739 --> 01:02:46,326 E, um dia, este assistente teve que substituir Bigs e ele perguntou a Bigs 715 01:02:46,625 --> 01:02:56,103 "Bem, qual é a peça a ser apresentada?", e ele disse "Bom, eu marquei de tocar a peça heróica de Caesar Franck" 716 01:02:57,900 --> 01:03:01,308 E, se você conhece esta peça, ela é feita para os maiores órgãos já construídos 717 01:03:01,707 --> 01:03:05,996 Os órgãos mais barulhentos já construídos, nas maiores catedrais já construídas 718 01:03:06,595 --> 01:03:10,802 porque é um trabalho de sinfonia do século dezenove para órgãos 719 01:03:11,602 --> 01:03:17,568 e Biggs estava pedindo ao meu amigo para tocá-la neste pequenino órgão besta 720 01:03:18,066 --> 01:03:23,054 E ele disse "Mas como eu posso tocar isso nisto??" 721 01:03:24,172 --> 01:03:27,399 Biggs respondeu "Apenas toque com grandeza!" 722 01:03:29,293 --> 01:03:31,084 Apenas toque com grandeza! 723 01:03:32,882 --> 01:03:42,415 Estar lado a lado com o futuro enquanto ele se move, é tocar seus sistemas de forma mais grandiosa do que eles se parecem no momento. 724 01:03:42,514 --> 01:03:43,383 Obrigado.