Wenn Sie noch nie von Alan Kay gehört haben, haben Sie zumindest seine berühmten Zitate gehört. Zum Beispiel dieses Zitat aus dem Jahr 1971:
Der beste Weg, die Zukunft vorherzusagen, besteht darin, sie zu erfinden.
Der beste Weg, die Zukunft vorherzusagen, besteht darin, sie zu erfinden.
Alan hat eine sehr abwechslungsreiche Karriere in der Informatik. Er erhielt
In unserer
Über Softwareentwicklung
Alan Kay glaubt, dass die Computerrevolution noch bevorsteht (
Das Problem sind schwache, schlecht skalierbare Ideen und Tools, Faulheit, mangelndes Wissen usw.
Beschreibt diese Situation gut
Was Andy gibt, nimmt Bill weg
Andy gab, Bill nahm
Andy Grove, CEO von Intel, und Bill Gates, damals CEO von Microsoft.
Ziel des Forschungsvorhabens war es, den aktuellen Entwicklungsstand zu verbessern
In seinem aufschlussreichen Bericht
Alan denkt über das Internet, TCP/IP-Protokolle, LISP-Interpreter,
Er nennt das Internet (TCP/IP) eines der wenigen großen Softwareprojekte, das korrekt konzipiert wurde und dessen Komplexitätsgrad im Gleichgewicht mit dem Komplexitätsgrad (Komplikation vs. Komplexität) steht. Mit weniger als 20 Codezeilen arbeitet das Projekt als lebendiges, dynamisches System, das Milliarden von Knoten unterstützen kann, und ist seit seinem ersten Start im September 1969 nie offline gegangen. Wir haben einfach aufgehört, das Internet als ein normales, von Menschen geschaffenes Softwareprojekt zu betrachten:
Das Internet ist so weit entwickelt, dass viele Menschen es wie eine natürliche Ressource wie den Pazifischen Ozean und nicht wie ein Produkt menschlicher Arbeit behandeln. Wann haben wir das letzte Mal eine so stabile, klare und fehlerfreie Technologie gesehen? Im Vergleich dazu ist das Web Unsinn. Das Web wurde von Amateuren erstellt.
Über objektorientierte Programmierung
Das erste, was mich interessierte, war seins
Ich stellte mir Objekte wie biologische Zellen und/oder einzelne Computer in einem Netzwerk vor, die nur über Nachrichten kommunizieren konnten.
und Erfahrung in Mathematik:
Durch meine Erfahrung in der Mathematik wurde mir klar, dass jedes Objekt mehrere Algebren haben kann, die zu Familien zusammengefasst werden können, was sehr nützlich sein kann.
Ideen für späte Bindung und leistungsstarke Metafunktionen von LISPa:
Die zweite Phase besteht darin, LISPa zu verstehen und dieses Verständnis zu nutzen, um einfachere, kleinere und leistungsfähigere Strukturen zu erstellen und später zu binden.
Und bald begann Alan, die Idee dynamischer Sprachen zu unterstützen
Durch die späte Bindung können Ideen, die später im Entwicklungsprozess aufkamen, mit weniger Aufwand in das Projekt integriert werden (im Vergleich zu früher gebundenen Systemen wie C, C++, Java usw.).
Und das Potenzial für spontane Änderungen und schnellere Iterationen:
Eine der Kernideen besteht darin, dass das System während des Testens, insbesondere während der Durchführung von Änderungen, weiterhin funktionieren soll. Auch größere Veränderungen sollten schrittweise erfolgen und nicht länger als den Bruchteil einer Sekunde dauern.
was fehlt
Wenn Sie, wie die meisten Menschen, frühbindende Sprachen verwenden, dann beschränken Sie sich auf das, was Sie bereits geschrieben haben. Eine einfache Umformulierung wird nicht mehr möglich sein.
Überraschenderweise beschränkten sich seine Gedanken zu OOP auf Folgendes:
OOP bedeutet für mich Nachrichten, lokales Halten und Schützen, State Hiding und spätes Binden von allem. Dies kann in Smalltalk und in LISP erfolgen.
Und nichts über Vererbung. Das ist nicht das OOP
Ich wünschte, ich hätte für dieses Thema schon vor langer Zeit den Begriff „Objekt“ verwendet, da er dazu führt, dass sich viele Menschen auf die untergeordneten Ideen konzentrieren.
Die große Idee, die modernen statisch typisierten OO-Sprachen fehlt:
Die große Idee sind „Nachrichten“
Er glaubt daran, sich auf Nachrichten, lose Kopplung und Modulinteraktionen zu konzentrieren und nicht auf das Innere eines Objekts:
Der Schlüssel zur Schaffung guter skalierbarer Systeme liegt in der Ausarbeitung der Kommunikationsmechanismen zwischen Modulen und nicht in der Ausarbeitung ihrer internen Eigenschaften und ihres Verhaltens.
Statisch typisierte Sprachen erscheinen ihm
Ich bin nicht gegen Typen, aber ich kenne kein Typsystem, das keine Schmerzen verursacht. Deshalb mag ich immer noch dynamisches Tippen.
Einige beliebte Sprachen verwenden heute die Message-Passing-Ideen, die späte Bindung usw. von Smalltalk
Zerstöre alles und erschaffe etwas Besseres
Alan hat eine interessante Theorie über die Entwicklung der Informatik:
Mir kommt es so vor, als gäbe es nur eine Art von Informatik, und Wissenschaft sei wie Brückenbau. Jemand baut Brücken, und jemand zerstört sie und schafft neue Theorien. Und wir müssen weiterhin Brücken bauen.
Über LISP
Alan Kay glaubt Lisp
beste Programmiersprache aller Zeiten
Und dass jeder Informatik-Absolvent es studieren sollte:
Die meisten Leute, die einen Informatikabschluss anstreben, verstehen die Bedeutung von Lisp nicht. Lisp ist die wichtigste Idee in der Informatik.
Über die richtige Atmosphäre und den richtigen Kontext
Er erinnert sich oft an die einzigartige Atmosphäre in
Der Standpunkt ist 80 IQ-Punkte wert.
Alan Kay sagt:
Die ARPA/PARC-Geschichte zeigt, wie eine Kombination aus Vision, bescheidener Finanzierung, dem richtigen Kontext und Prozess auf magische Weise neue Technologien hervorbringen kann, die nicht nur Auswirkungen auf die Zivilisation haben, sondern auch einen enormen Wert für die Gesellschaft schaffen.
Und das ist die Wahrheit.
- Laserdrucker
- Objektorientierte Programmierung / Smalltalk
- Persönliche Computer
- Ethernet / verteiltes Rechnen
- GUI / Computermaus / WYSIWYG
Und in
PS
Source: habr.com