Als je nog nooit van Alan Kay hebt gehoord, heb je in ieder geval zijn beroemde citaten gehoord. Dit citaat uit 1971 bijvoorbeeld:
De beste manier om de toekomst te voorspellen, is door hem uit te vinden.
De beste manier om de toekomst te voorspellen is door hem uit te vinden.
Alan heeft een zeer kleurrijke carrière in de informatica. Hij ontving
We hebben binnen
Over softwareontwikkeling
Alan Kay gelooft dat de computerrevolutie nog moet komen (
het probleem is zwak, slecht schaalbare ideeën en hulpmiddelen, luiheid, gebrek aan kennis, enz.
Deze situatie is goed beschreven
Wat Andy geeft, neemt Bill weg
Andy gaf, Bill nam
Andy Grove, CEO van Intel, en Bill Gates, destijds CEO van Microsoft.
Het verbeteren van de huidige staat van ontwikkeling was het doel van het onderzoeksproject
In zijn opzienbarende rapport
Alan beschouwt internet, TCP/IP-protocollen, LISP-tolken,
Hij noemt het internet (TCP/IP) een van de weinige grootschalige softwareprojecten die correct zijn ontworpen, en het niveau van complexiteit is in evenwicht met het niveau van complexiteit (complicatie vs. complexiteit). Met minder dan 20 regels code functioneert het project als een levend, dynamisch systeem dat miljarden knooppunten kan ondersteunen, en is het sinds de eerste lancering in september 1969 nooit meer offline gegaan. We zijn simpelweg gestopt met het beschouwen van het internet als een normaal softwareproject dat door mensen is gemaakt:
Het internet is zo goed ontwikkeld dat veel mensen het behandelen als een natuurlijke hulpbron, zoals de Stille Oceaan, en niet als een product van menselijke arbeid. Wanneer hebben we voor het laatst zo’n stabiele, duidelijke en foutloze technologie gezien? Ter vergelijking: het internet is onzin. Het web is gemaakt door amateurs.
Over objectgeoriënteerd programmeren
Het eerste wat mij interesseerde was dat van hem
Ik zag objecten als biologische cellen en/of individuele computers in een netwerk die alleen via berichten konden communiceren.
en ervaring in wiskunde:
Mijn ervaring in de wiskunde deed me beseffen dat elk object meerdere algebra's kan hebben, dat ze gecombineerd kunnen worden tot families, en dit kan erg handig zijn.
Ideeën voor late binding en krachtige metafuncties van LISPa:
De tweede fase is het begrijpen van LISPa en het gebruiken van dat begrip om gemakkelijkere, kleinere, krachtigere structuren te creëren en later bindend te zijn.
En al snel begon Alan het idee te ondersteunen dat dynamische talen bestaan
Door late binding kunnen ideeën die later in het ontwikkelingsproces zijn ontstaan, met minder moeite in het project worden opgenomen (vergeleken met eerder gebonden systemen zoals C, C++, Java, enz.)
En het potentieel voor snelle veranderingen en snellere iteraties:
Een van de belangrijkste ideeën is dat het systeem tijdens het testen moet blijven werken, vooral als er wijzigingen worden aangebracht. Zelfs grote veranderingen moeten geleidelijk gebeuren en niet langer dan een fractie van een seconde duren.
die erin ontbreekt
Als je vroegbindende talen gebruikt, zoals de meeste mensen doen, sluit je jezelf op in wat je al hebt geschreven. Het zal niet langer mogelijk zijn om het gemakkelijk te herformuleren.
Verrassend genoeg beperkten zijn gedachten over OOP zich tot dit:
OOP voor mij is berichten, lokaal vasthouden en beschermen, verbergen door de staat en late binding van alles. Dit kan in Smalltalk en in LISP.
En niets over erfenis. Dit is niet de OOP
Ik wou dat ik de term 'object' al lang geleden voor dit onderwerp had gebruikt, omdat het ervoor zorgt dat veel mensen zich op de mindere ideeën concentreren.
Het grote idee dat moderne statisch getypeerde OO-talen missen:
Het grote idee is "berichten"
Hij gelooft in het focussen op berichten, losse koppelingen en module-interacties in plaats van op de binnenkant van een object:
De sleutel tot het creëren van goede schaalbare systemen is het uitwerken van de communicatiemechanismen tussen modules, en niet het uitwerken van hun interne eigenschappen en gedrag.
Statisch getypeerde talen lijken hem
Ik ben niet tegen types, maar ik ken geen enkel systeem dat geen pijn veroorzaakt. Dus ik hou nog steeds van dynamisch typen.
Sommige populaire talen gebruiken tegenwoordig de ideeën van Smalltalk voor het doorgeven van berichten, late binding en
Vernietig alles en creëer iets beters
Alan heeft een interessante theorie over de ontwikkeling van de informatica:
Het lijkt mij dat er maar één type computerwetenschap bestaat, en dat wetenschap zoiets is als het bouwen van bruggen. Iemand bouwt bruggen, en iemand vernietigt ze en creëert nieuwe theorieën. En we moeten bruggen blijven bouwen.
Over LISP
Alan Kay gelooft Lisp
beste programmeertaal aller tijden
En dat elke afgestudeerde informatica het zou moeten bestuderen:
De meeste mensen die een graad in CS volgen, begrijpen het belang van Lisp niet. Lisp is het belangrijkste idee in de informatica.
Over de juiste sfeer en context
Hij herinnert zich vaak de unieke sfeer in
Het gezichtspunt is 80 IQ-punten waard.
Alan Kay zegt:
Het ARPA/PARC-verhaal laat zien hoe een combinatie van visie, bescheiden financiering, de juiste context en het juiste proces op magische wijze nieuwe technologieën kan voortbrengen die niet alleen een impact hebben op de beschaving, maar ook enorme waarde voor de samenleving creëren.
En het is waar.
- Laserprinters
- Objectgeoriënteerd programmeren / Smalltalk
- Persoonlijke computers
- Ethernet / gedistribueerd computergebruik
- GUI / computermuis / WYSIWYG
En in
PS
Bron: www.habr.com