Se você nunca ouviu falar de Alan Kay, pelo menos já ouviu suas citações famosas. Por exemplo, esta citação de 1971:
A melhor maneira de prever o futuro é inventá-lo.
A melhor maneira de prever o futuro é inventá-lo.
Alan tem uma carreira muito colorida em ciência da computação. Ele recebeu
Na nossa
Sobre desenvolvimento de software
Alan Kay acredita que a revolução da informática ainda está por vir (
o problema são ideias e ferramentas fracas e pouco escaláveis, preguiça, falta de conhecimento, etc.
Descreve bem esta situação
O que Andy dá, Bill tira
Andy deu, Bill pegou
Andy Grove, CEO da Intel, e Bill Gates, então CEO da Microsoft.
Melhorar o estado atual de desenvolvimento foi o objetivo do projeto de pesquisa
Em seu relatório revelador
Alan considera a Internet, os protocolos TCP/IP, os intérpretes LISP,
Ele chama a Internet (TCP/IP) de um dos poucos projetos de software em grande escala que foi projetado corretamente, e seu nível de complexidade está em equilíbrio com o nível de complexidade (complicação versus complexidade). Com menos de 20 linhas de código, o projeto funciona como um sistema vivo e dinâmico, capaz de suportar milhares de milhões de nós, e nunca ficou offline desde o seu lançamento inicial em setembro de 1969. Simplesmente paramos de considerar a Internet como um projeto de software normal criado por pessoas:
A Internet está tão desenvolvida que muitas pessoas a tratam como um recurso natural, como o Oceano Pacífico, e não como um produto do trabalho humano. Quando foi a última vez que vimos uma tecnologia tão estável, clara e livre de erros? Em comparação, a Web não faz sentido. A web foi criada por amadores.
Sobre programação orientada a objetos
A primeira coisa que me interessou foi o seu
Pensei nos objetos como células biológicas e/ou computadores individuais em uma rede que só podiam se comunicar por meio de mensagens.
e experiência em matemática:
Minha experiência em matemática me fez perceber que cada objeto pode ter diversas álgebras, podem ser combinadas em famílias, e isso pode ser muito útil.
Ideias para vinculação tardia e meta-recursos poderosos do LISPa:
A segunda fase é compreender o LISPa e usar esse entendimento para criar estruturas mais fáceis, menores e mais poderosas e posterior ligação.
E logo Alan começou a apoiar a ideia de que linguagens dinâmicas são
A vinculação tardia permite que ideias que surgiram posteriormente no processo de desenvolvimento sejam incorporadas ao projeto com menos esforço (em comparação com sistemas vinculados anteriormente, como C, C++, Java, etc.)
E o potencial para mudanças dinâmicas e iterações mais rápidas:
Uma das ideias principais é que o sistema continue funcionando durante os testes, especialmente enquanto as alterações estão sendo feitas. Mesmo as grandes mudanças devem ser graduais e não demorar mais do que uma fração de segundo.
que está faltando em
Se você usar linguagens de ligação antecipada, como a maioria das pessoas faz, você se prenderá ao que já escreveu. Não será mais possível reformulá-lo facilmente.
Surpreendentemente, seus pensamentos sobre POO limitaram-se a isto:
OOP para mim são mensagens, retenção e proteção local, ocultação de estado e vinculação tardia de tudo. Isso pode ser feito em Smalltalk e em LISP.
E nada sobre herança. Este não é o OOP
Eu gostaria de ter usado o termo “objeto” para este tópico há muito tempo, porque faz com que muitas pessoas se concentrem nas ideias menores.
A grande ideia que falta nas linguagens OO modernas de tipo estaticamente:
A grande ideia são "mensagens"
Ele acredita em focar em mensagens, acoplamento fraco e interações de módulos, em vez de nas partes internas de um objeto:
A chave para criar bons sistemas escaláveis é trabalhar os mecanismos de comunicação entre os módulos, e não trabalhar as suas propriedades e comportamento internos.
Idiomas de tipo estaticamente parecem para ele
Não sou contra tipos, mas não conheço nenhum sistema de tipos que não cause dor. Então, ainda gosto de digitação dinâmica.
Algumas linguagens populares hoje usam as ideias de passagem de mensagens do Smalltalk, ligação tardia e
Destrua tudo e crie algo melhor
Alan tem uma teoria interessante sobre o desenvolvimento da ciência da computação:
Parece-me que existe apenas um tipo de ciência da computação e que a ciência é como construir pontes. Alguém constrói pontes e alguém as destrói e cria novas teorias. E precisamos continuar construindo pontes.
Sobre LISP
Alan Kay acredita em Lisp
melhor linguagem de programação de todos os tempos
E que todo graduado em ciência da computação deveria estudá-lo:
A maioria das pessoas que buscam graduação em CS não entende a importância do Lisp. Lisp é a ideia mais importante da ciência da computação.
Sobre a atmosfera e o contexto certos
Ele frequentemente se lembra da atmosfera única em
O ponto de vista vale 80 pontos de QI.
Alan Kay disse:
A história da ARPA/PARC demonstra como uma combinação de visão, financiamento modesto, contexto e processo adequados pode magicamente dar origem a novas tecnologias que não só impactam a civilização, mas também criam um enorme valor para a sociedade.
E é verdade.
- Impressoras a laser
- Programação Orientada a Objetos / Smalltalk
- Computadores pessoais
- Ethernet/computação distribuída
- GUI / mouse de computador / WYSIWYG
E em
PS
Fonte: habr.com