
Si vous n'avez jamais entendu parler d'Alan Kay, vous avez au moins entendu ses célèbres citations. Par exemple, cette citation de 1971 :
La meilleure façon de prédire l'avenir est de l'inventer.
La meilleure façon de prédire l’avenir est de l’inventer.
Alan a une carrière très colorée en informatique. Il a reçu и pour son travail sur le paradigme de programmation orientée objet. Il fut l'un des pionniers dans le domaine des ordinateurs personnels et des interfaces graphiques, il développa est l'un des premiers langages de programmation les plus influents de tous les temps.
Nous avons en , en particulier dans , la question « qu'est-ce que la POO » et « que voulait vraiment dire Alan Kay » est constamment soulevée. Cet article contient des citations intéressantes d'Alan sur l'état du développement moderne, la POO et le langage Lisp.
À propos du développement de logiciels
Alan Kay estime que la révolution informatique est encore à venir (), et le développement de logiciels se développe en proportion inverse de la loi de Moore : le matériel s'améliore chaque année, mais les logiciels deviennent inutilement surchargés :
le problème est la faiblesse, les idées et les outils peu évolutifs, la paresse, le manque de connaissances, etc.
Décrit bien cette situation :
Ce qu'Andy donne, Bill le reprend
Andy a donné, Bill a pris
Andy Grove, PDG d'Intel, et Bill Gates, alors PDG de Microsoft.
Améliorer l'état actuel du développement était l'objectif du projet de recherche . L'objectif est d'atteindre la « loi de Moore » en termes d'expressivité en « réduisant la quantité de code requis de 100, 1000 10000, XNUMX XNUMX fois ou plus ».
Dans son rapport révélateur Ce sujet est abordé plus en détail. Selon Alan, le génie logiciel est au point mort et est en train de devenir une science oubliée qui ne peut pas suivre le rythme du matériel et des autres disciplines scientifiques et techniques. Les grands projets sont devenus des décharges de code et ont atteint un point où aucun incapable de comprendre 100 millions de lignes de code MS Vista ou MS Word. Mais en réalité, il devrait y avoir un ordre de grandeur en moins dans de tels projets.
Alan examine Internet et les protocoles. TCP/IP, interpréteurs LISP, exemples de logiciels élégants avec un minimum de code.
Il appelle Internet (TCP/IPInternet est l'un des rares projets logiciels de grande envergure à avoir été correctement conçu, sa complexité étant parfaitement maîtrisée. Ce projet, qui compte moins de 20 000 lignes de code, fonctionne comme un système vivant et dynamique capable de prendre en charge des milliards de nœuds, et il n'a jamais été arrêté depuis son lancement en septembre 1969. Nous avons tout simplement cessé de considérer Internet comme un simple projet logiciel créé par des humains.
Internet est si bien développé que de nombreuses personnes le considèrent comme une ressource naturelle, comme l’océan Pacifique, plutôt que comme un produit du travail humain. À quand remonte la dernière fois que nous avons vu une technologie aussi stable, claire et sans erreur ? En comparaison, le Web est un non-sens. Le Web a été créé par des amateurs.
À propos de la programmation orientée objet
La première chose qui m'a intéressé, c'est son Vision POO. Son expérience en microbiologie a joué un rôle important :
Je considérais les objets comme des cellules biologiques et/ou des ordinateurs individuels sur un réseau qui ne pouvaient communiquer que par messages.
et expérience en mathématiques :
Mon expérience en mathématiques m'a fait réaliser que chaque objet peut avoir plusieurs algèbres, qu'on peut les regrouper en familles, et cela peut être très utile.
Idées de liaison tardive et méta-fonctionnalités puissantes de LISPa :
La deuxième phase consiste à comprendre LISPa et à utiliser cette compréhension pour créer des structures plus faciles, plus petites et plus puissantes et une liaison ultérieure.
Et bientôt Alan a commencé à soutenir l'idée selon laquelle les langages dynamiques sont . En particulier, la facilité de changement est importante pour lui :
La liaison tardive permet aux idées apparues plus tard dans le processus de développement d'être incorporées dans le projet avec moins d'effort (par rapport aux systèmes liés antérieurs comme C, C++, Java, etc.)
Et le potentiel de changements à la volée et d’itérations plus rapides :
L'une des idées clés est que le système doit continuer à fonctionner pendant les tests, en particulier pendant que des modifications sont apportées. Même les changements majeurs devraient être progressifs et ne prendre pas plus d’une fraction de seconde.
ce qui manque dans :
Si vous utilisez des langages à liaison précoce, comme le font la plupart des gens, vous vous enfermez dans ce que vous avez déjà écrit. Il ne sera plus possible de le reformuler facilement.
Étonnamment, ses réflexions sur la POO se limitaient à ceci :
La POO pour moi, ce sont les messages, la conservation et la protection locales, le masquage d'état et la liaison tardive de tout. Cela peut être fait en Smalltalk et en LISP.
Et rien sur l'héritage. Ce n'est pas la POO :
J'aurais aimé utiliser le terme « objet » pour ce sujet il y a longtemps, car il amène de nombreuses personnes à se concentrer sur la moindre des idées.
La grande idée qui manque aux langages OO modernes à typage statique :
La grande idée, ce sont les "messages"
Il croit qu'il faut se concentrer sur les messages, le couplage lâche et les interactions de modules plutôt que sur les éléments internes d'un objet :
La clé pour créer de bons systèmes évolutifs consiste à déterminer les mécanismes de communication entre les modules, et non à déterminer leurs propriétés et leur comportement internes.
Les langages typés statiquement lui semblent :
Je ne suis pas contre les types, mais je ne connais aucun système de types qui ne cause pas de douleur. J’aime donc toujours la saisie dynamique.
Certaines langues populaires utilisent aujourd'hui les idées de transmission de messages de Smalltalk, la liaison tardive et : в , в и dans Google .
Détruisez tout et créez quelque chose de meilleur
Alan a une théorie intéressante sur le développement de l'informatique :
Il me semble qu’il n’existe qu’un seul type d’informatique et que la science, c’est comme construire des ponts. Quelqu’un construit des ponts, quelqu’un les détruit et crée de nouvelles théories. Et nous devons continuer à construire des ponts.
À propos du LISP
Alan Kay croit Lisp
meilleur langage de programmation de tous les temps
Et que tout diplômé en informatique devrait l’étudier :
La plupart des personnes qui poursuivent des études en CS ne comprennent pas l'importance de Lisp. Lisp est l’idée la plus importante en informatique.
À propos de la bonne atmosphère et du bon contexte
Il se souvient souvent de l'atmosphère unique de и , où « la vision est plus importante que les objectifs » et « financer les personnes, pas les projets ».
Le point de vue vaut 80 points de QI.
Alan Kay dit :
L'histoire de l'ARPA/PARC démontre comment une combinaison de vision, de financement modeste, de contexte et de processus appropriés peut donner naissance comme par magie à de nouvelles technologies qui non seulement ont un impact sur la civilisation, mais créent également une valeur énorme pour la société.
Et c'est vrai. , dont beaucoup ont joué un rôle très important dans le développement de notre monde. Par exemple:
- Imprimantes laser
- Programmation orientée objet / Smalltalk
- Ordinateur personnel
- Ethernet / informatique distribuée
- Interface graphique / souris d'ordinateur / WYSIWYG
Et dans ont créé , qui est devenu l’ancêtre d’Internet.
PS .
Source: habr.com
