Uma visita a Alan Kay

Uma visita a Alan Kay

Alan Kay é um dos meus heróis da computação. Todas essas coisas que fazemos todos os dias como programadores? Kay participou da invenção de uma grande parte delas:

O cientista da computação Kay foi o líder do grupo que inventou a programação orientada a objetos, a interface gráfica de usuário, a computação gráfica em 3D e a ARPANET, a predecessora da Internet

Então, como os senhores podem imaginar, fiquei muito feliz ao ver que ele era se dedicando um pouco ao Stack Overflow. É difícil imaginar a participação de uma lenda como Alan em um site para programadores comuns. Talvez devêssemos adicionar um Prêmio Turing emblema. Pelo menos as pessoas não podem reclamar que ele não pode ser obtido.

Jeff Moser, um ávido usuário do Stack Overflow com um blog excelente teve a oportunidade de encontrar Alan recentemente e perguntar a ele sobre o assunto. Jeff me deu permissão para reimprimir seu relatório de campo aqui.

Como eu sabia que veria Alan Kay no Reiniciando a computaçãodecidi verificar pessoalmente seu uso do Stack Overflow. De acordo com Alan, ele encontrou a pergunta original usando um alerta de pesquisa automatizado, exatamente como Atwood havia imaginado.

Em seguida, passamos a discutir como é triste que a identidade ainda seja difícil on-line. Por exemplo, é difícil provar se estou dizendo a verdade aqui. Quanto a isso, o melhor que posso oferecer é olhar minha foto no meu blog e compare com esta foto da Cúpula:

moser-kay.jpg

(Alan está à minha direita)

Alan é uma ótima pessoa para conversar devido à sua enorme experiência no campo da computação.

Atualmente, ele está trabalhando na Instituto de Pesquisa Viewpoints onde eles estão fazendo algumas pesquisas clássicas no estilo PARC, tentando fazer para o software o que a Lei de Moore fez para o hardware. Uma explicação decente do próprio Alan Kay é disponível aqui (wmv). Para obter informações específicas, talvez o senhor queira conferir o recente tese de doutorado de Alessandro Warth, um dos alunos de Alan.

Uma das maiores lições que aprendi pessoalmente com Alan é a importância da história da computação para entender o contexto das invenções. Um dos maiores heróis de Alan é J.C.R. Licklider (também conhecido como “Lick”). Nossas discussões, há alguns meses, me levaram a ler “The Dream Machine” e escrever um post sobre ele.

Uma consequência de estudar bem a história é que o senhor perceberá que muitas das coisas realmente legais e interessantes foram desenvolvidas na ARPA->PARC e, desde então, diminuiu a velocidade. Presumo que seja por isso que o senhor esteja curioso sobre qualquer coisa após os dias de pico do PARC (por exemplo, a partir de 1980).

Eu diria que Alan acredita firmemente que a “Revolução dos Computadores ainda não aconteceu” (ainda), apesar de ele estar falando sobre isso há décadas.

Por exemplo:

Especulando a partir das discussões, eu diria que o problema que ele vê é que os computadores deveriam nos ajudar a nos tornar melhores pensadores em vez de “nos distrair/entreter até a morte”. Alan gosta de usar o exemplo de que nossa “cultura pop” está mais preocupada com a “guitarra aérea” e o “Guitar Hero” em vez de apreciar a beleza e a expressividade genuínas dos instrumentos reais (mesmo que isso leve um pouco mais de tempo para ser dominado). Dê uma olhada em 1:03:40 do este vídeo do Program for the Future. Na verdade, estamos vendendo nosso potencial a descoberto.

Acho que essa é a minha maior lição de Alan sobre computação: os computadores podem fazer muito mais do que estamos usando atualmente (por exemplo, fornecer “um professor para cada aluno”).

Espero que isso ajude a fornecer algum contexto.

É verdade, Jeff. Se o senhor quiser ter uma ideia do que o Alan é e das coisas em que ele está trabalhando, recomendo o seguinte Conversa com Alan Kay da ACM.

Não é que as pessoas sejam completamente estúpidas, mas se houver uma grande ideia e os senhores tiverem prazos, conveniência e concorrentes, muito provavelmente o que farão é usar um filtro passa-baixa nessa ideia e implementar uma parte dela, deixando de lado o que precisa ser feito em seguida. Isso acontece repetidas vezes. Se o senhor estiver usando linguagens de ligação precoce, como a maioria das pessoas faz, em vez de linguagens de ligação tardia, começará a ficar preso a coisas que já fez. O senhor não pode reformular as coisas tão facilmente.

Digamos que a adoção de linguagens de programação tenha sido, muitas vezes, um tanto acidental, e a ênfase tenha sido, muitas vezes, na facilidade de implementação da linguagem de programação e não em seus méritos e recursos reais. Por exemplo, o Basic nunca teria surgido porque sempre houve uma linguagem melhor do que o Basic para essa finalidade. Essa linguagem era a Joss, que era anterior ao Basic e era linda. Mas aconteceu que o Basic estava em um sistema de timesharing da GE que foi feito por Dartmouth, e quando a GE decidiu franquear o sistema, começou a espalhar o Basic só porque estava lá, não porque tivesse algum mérito intrínseco.

Isso acontece repetidamente. As linguagens de Niklaus Wirth se espalharam muito e amplamente porque ele foi um dos mais conscienciosos documentadores de linguagens e um dos primeiros a criar linguagens algorítmicas usando p-codes (pseudocódigos), os mesmos tipos de coisas que usamos. A ideia de usar essas coisas tem uma origem comum no hardware de uma máquina chamada Burroughs B5000 do início dos anos 60, que o establishment odiava.

Qualquer semelhança entre o que foi dito acima e o PHP é, tenho certeza, completamente coincidente. Esse som que o senhor está ouvindo é apenas um pouco de história se repetindo.

Para mim, a apresentação por excelência de Alan Kay é Doing with Images Makes Symbols: Comunicação com computadores.

Como o vídeo ilustra, os computadores são quase secundários na maior parte do trabalho de Alan; esse é o verdadeiro brilho do trabalho. O objetivo real é ensinar e aprender. Lembro-me de um comentário que Andrew Stuart, um veterano recrutador de desenvolvimento de software, me enviou uma vez por e-mail:

Uma observação sutil, mas interessante, que eu faria – o o artigo do senhor aponta que “o que os desenvolvedores de software fazem melhor é aprender – está próximo do objetivo, embora eu reorganizasse um pouco as palavras para “o que os melhores desenvolvedores de software fazem é aprender.” Nem todos os desenvolvedores de software aprendem, mas os melhores certamente o fazem.

E isso, creio eu, está no centro de tudo o que Alan faz: a computação não como um fim em si mesma, mas como um veículo para aprender a aprender.