Ausarbeitung - AG Softwaretechnik
Transcription
Ausarbeitung - AG Softwaretechnik
Alan Kay Historische Innovationen der Informatik Abbildung 1: Alan Kay "The best way to predict the future is to invent it." Proseminar WS 2005/06 AG Softwaretechnik Prof. Dr. Arnd Poetzsch-Heffter Betreuer: Markus Reitz Technische Universität Kaiserslautern von Annika Leveringhaus Wintersemester 2005/06 Inhaltsverzeichnis 1 Einleitung 3 2 Biographie 4 3 Ideen und ihre Umsetzung 3.1 3.2 3.3 3.4 4 Dynabook . . . . . . . . . . . . . . . . . . . . PersonalComputer . . . . . . . . . . . . . . . . Smalltalk . . . . . . . . . . . . . . . . . . . . 3.3.1 Besondere Eigenschaften von Smalltalk 3.3.2 Sprachkonstrukte in Smalltalk . . . . . Squeak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 . 6 . 7 . 8 . 9 . 10 4 Fazit 11 5 Zukunft 12 2 1 Einleitung "The best way to predict the future is to invent it." Frei übersetzt: Am besten lässt sich die Zukunft voraussagen, indem man sie selbst gestaltet. Dieses häufig genannte Zitat beschreibt Alan Kays Herangehensweise an seine Projekte sehr treffend. Er ist dem vorherrschenden Zeitgeist immer ein Stück voraus. Seine Ideen wurden besonders von seinen Arbeitgebern stets argwöhnisch betrachtet und als abgehoben abgetan. Wer hätte vor 40 Jahren, als Rechner mit der heutigen Leistungsfähigkeit eines Desktop-PC noch ganze Räume füllten, schon an Laptops gedacht? Seine Ideen sammelte Alan Kay in seinem Arbeitsumfeld, im Austausch mit Kollegen. Aber durch die Vielfalt seiner Kontakte und die geschickte Kombination mit seinen übrigen Interessen, vor allem Biologie und Musik, entwickelten sich daraus viel weiter reichende Visionen als ursprünglich von anderen motiviert. Während er an seiner Doktorarbeit schrieb, besuchte Alan Kay Seymour Papert, einen der Erfinder von LOGO. LOGO ist eine Programmiersprache, die Kindern durch ihre Einfachheit das kreative Denken und eigenständige Problemlösungen schmackhaft machen soll. Diese Art einen Computer zu nutzen übte eine große Faszination auf Alan Kay aus und eröffnete in seiner Gedankenwelt ganz neue Wege. Eine Vision war entstanden, deren Verwirklichung sich wie ein roter Faden durch sein Leben zieht. Aus ihr schöpfte er die Motivation für seine weiteren Projekte. Kays Aufmerksamkeit war auf eine neue Aufgabe für Computer gelenkt worden, an deren Umsetzung er bis heute arbeitet: Von nun an sah er im Computer die moderne Möglichkeit, Kindern Spaß und Eigenständigkeit beim Lernen zu vermitteln. Die Motivation für all seine weiteren Entwicklungen war, die vielfältige, interaktive Nutzbarkeit (auch für Laien) des Computers zu verbessern, um die Lernpsychologie zu unterstützen. Dem "Wissensdurst" der Kinder sollten keine Grenzen mehr gesetzt werden! Allerdings gelangte Alan Kay auch zu der Einsicht, dass Innovationen, die Kindern den Umgang mit Computern erleichtern sollten, ebenfalls sinnvoll bei unerfahrenen Erwachsenen einzusetzen sind. Letztlich bleibt zu sagen, dass Alan Kay viele innovative Ideen hat. Sie sind im Allgemeinen eine passende Kombination unterschiedlichster Eindrücke und deren Verknüpfungen. Bei der Umsetzung der Ideen in konkrete Projekte ist er meistens die treibende Kraft, entwickelt aber nie allein. Darum kann man nicht mit Sicherheit sagen: Folgendes hat Alan Kay erfunden . . . In dieser Ausarbeitung werden einige seiner Entwicklungen vorgestellt, seine Beteiligung daran aufgezeigt und erörtert, inwieweit sich seine Ideen zur Verbesserung der Mensch-Maschine-Interaktion in unseren heutigen Anwendungen erkennen lassen. 3 2 Biographie Diese Biographie enthält nur einige Eckdaten, welche für einen kurzen Überblick über Alan Kays Vision und deren Umsetzung relevant sind. • 1940 wurde Alan Kay in Springfield, Massachusetts, geboren. • 1961 absolvierte er eine Ausbildung zum Programmierer bei der US AirForce, wobei er zum ersten Mal mit Computern in direkten Kontakt kam. Dabei beobachtete er z.B., dass zwischen den Trainingslagern Dateien zusammen mit passenden Prozeduren verschickt wurden, statt aufwendige Konvertierroutinen für sie zu entwickeln. • 1966 schloss er seinen Bachelor in Mathematik und Biologie an der University of Colorado ab. • 1968 reichte er seine Master’s Thesis an der University of Utah ein, die den Titel "FLEX - A flexible extendable language" trug. FLEX ist eine abstrakte Programmiersprache mit ersten objekt-orientierten Zügen, die er aus Sketchpad (von Ivan Sutherland) und Simula übernahm, kombinierte und weiterentwickelte. • 1968 besuchte er Seymour Papert, einen der Erfinder von LOGO, einer Programmiersprache, deren Einfachheit Kindern Spaß am kreativen Denken bei eigenständigen Problemlösungen vermitteln sollte. Diese Begegnung ist als Schlüsselerlebnis und Motivation für alle weiteren Projekte zu sehen, weil er hierbei im Computer die moderne Möglichkeit erkannte, Kindern Spaß und Eigenständigkeit beim Lernen zu vermitteln. • 1969 gab Alan Kay im Computer Graphics Department an der University of Utah seine Doktorarbeit mit dem Titel "The Reactive Engine" ab. Es war sein erster Entwicklungsversuch eines Personal Computers, auf dem mit Hilfe von FLEX die MenschMaschine-Kommunikation über Text, aber auch auf graphischer Ebene möglich war. • 1969 gleich darauf wurde er als Professor ans Stanford Artificial Intelligence Laboratory, California, berufen. Neben seiner Arbeit dort entwickelte er erste Entwürfe zur Verwirklichung seiner Vision eines kindgerechten Computers. • 1972 ging er als Leiter der Learning Research Group zum Xerox PARC, California. In dieser Zeit entstanden unter seiner Mitwirkung verschiedene PCs und die Programmiersprache Smalltalk. • 1984 war er Fellow bei Apple Computer, wo er an der Entwicklung der PCs "Apple Lisa" und "Apple MacIntosh" mitarbeitete. Außerdem entwarf er "Squeak", eine Smalltalk-Implementierung. • Inzwischen ist Alan Kay unter anderem Professor an verschiedenen Universitäten und Präsident des von ihm gegründeten Viewpoints Research Intitute. Dort versucht man neue Methoden und Programme zu entwickeln, um mit Hilfe von PCs die Ausbildung von Kindern zu verbessern. Vor allem in der Lehre von Mathematik und Naturwissenschaften sehen die Forscher dieses Instituts noch große Defizite. 3 Ideen und ihre Umsetzung 3.1 Dynabook Seit seinem Besuch bei Seymour Papert hatte Alan Kay eine Idee, die ihn nicht mehr losließ. Er wollte Computer für alle zugänglich und leicht bedienbar machen. Insbesondere sah er im Computer die moderne Möglichkeit, Kindern Spaß und Eigenständigkeit beim Lernen zu vermitteln. In seinen Augen konnte diese Maschine der Lernpsychologie über Grenzen, die bisher aus Ermangelung passender Mittel gesetzt wurden, hinweg helfen. In Erinnerung an seine eigene Jugend und der darin vorherrschenden Ungeduld überlegte er sich, welchen Anforderungen ein kindgerechter Computer genügen müsse. Diesem fiktiven Computer gab er den Namen "Dynabook". 4 Zunächst war ihm intuitive Bedienbarkeit wichtig. Zum einfachen Gebrauch sollte keine langwierige Einführung mit langatmigen Erklärungen nötig sein. Die Kinder sollten sich mit dem Computer möglichst so verständigen können, wie sie es im Umgang mit Menschen gewohnt waren. Unverständliche Befehle über die Textkonsole sollten vermieden werden. Darum sollte die Tastatur nicht die einzige Schnittstelle für Benutzereingaben sein. Zu der Zeit war gerade die erste Computermaus vorgestellt worden, deren Erfolg jedoch auf sich warten ließ, weil es noch keine entsprechenden grafischen Benutzeroberflächen gab. Allerdings hatte Alan Kay schon bei seiner Doktorarbeit "The Reactive Engine", seinem ersten Entwicklungsversuch eines PersonalComputers, versucht, die Mensch-MaschineKommunikation nicht nur über Text laufen zu lassen, sondern auch auf graphischer Ebene zu ermöglichen. So kam ihm die Erfindung einer "graphischen Benutzerschnittstelle" sehr gelegen, da er sie einfach übernehmen konnte. Zudem kam es ihm in den Sinn, dass es noch intuitiver sei, wenn man direkt über Berührung des Bildschirms mit dem Computer kommunizieren könnte. Natürlich hatte er damals nur eine vage Vorstellung, wie ein solcher berührungssensitiver Bildschirm funktionieren und eingesetzt werden könne. Ein weiterer Grund, einen Computer nicht nur über die Textkonsole zu nutzen, war lernpsychologisch bedingt. Denn Alan Kay hatte erfahren, dass Kinder über die visuellen und auditiven Kanäle schneller und intensiver lernten. Es hilft also z.B. beim Englischvokabeln lernen, das Wort "apple" für "Apfel" nicht nur zu lesen, sondern auch vorgesprochen und ein Apfelbild vorgehalten zu bekommen. Dadurch kann das Gehirn unterschiedliche Verbindungen zu diesem Wort herstellen, sodass man es besser behalten kann. Alan Kay sah im Computer das Potential, genau diese Kombination aus Graphik, Audio-Dateien und sogar Animationen zu erreichen. In seinen Augen war dies eine der Voraussetzungen für eine attraktive Lernumgebung. Dadurch könnte das Interesse der Kinder besser gehalten werden und gleichzeitig würde die Effektivität beim Lernen steigern. Desweiteren sollte das Dynabook dem Wissensdurst der Kinder gerecht werden können. Alan Kay schwebte vor, dass Kindern in ihrem Lerneifer nie wieder von außen Grenzen gesetzt werden sollten, solange das Wissen irgendwo vorhanden war. Um das zu verwirklichen, wollte er nicht nur die Mensch-Maschine-Kommunikation verbessern, sondern in das Dynabook eine Schnittstelle nach außen für die Kommunikation mit anderen Computern einbauen, um an so viele Informationen wie möglich zu kommen. Das Dynabook sollte also auf jeden Fall netzwerkfähig sein. Die Idee dazu entstand aus dem ARPAnet, das zu dieser Zeit genutzt wurde, um die Forschungseinrichtungen Stanford Research Institute, University of Utah, University of California in Los Angeles und die University of California in Santa Barbara zu vernetzen. Gerade Kinder werden sehr leicht ungeduldig, wenn sie warten müssen, und verlieren das Interesse. Darum plante Alan Kay für das Dynabook einen besonders leistungsfähigen Prozessor ein. Durch schnelle Reaktionen des PC hoffte er die Aufmerksamkeit der Kinder zu fesseln und sie für die Aufgaben zu begeistern, die sie mit Hilfe dieser Maschine spielerisch bewältigen konnten. Alan Kays Vision war, dass man das Dynabook immer und überall nutzen kann. Um das zu garantieren, musste es tragbar sein. Da der konzeptionelle Entwurf vorerst vor allem für Kinder gedacht war, durfte es nach Kays Berechnungen nicht mehr als 1kg wiegen. Außerdem brauchte es ein handliches Format, sodass es sich in den Schultaschen bequem verstauen ließ. Er wollte einen MiniPC entwickeln; ungefähr von der Größe eines Buchs. Um dies zu verwirklichen, musste in sehr viel kleineren Dimensionen gedacht werden. Schon damals kursierten erste Ideen für den Bau eines Flachbildschirms, die Kay in seine Entwürfe miteinbezog. In seinen Entwürfen für das Dynabook kombinierte Alan Kay äußerst extravagante An- 5 forderungen für damalige Zeiten. Trotzdem strebte er letztlich ein finanziell erschwingliches Produkt an. Denn nur so würde es im alltäglichen Leben Einzug halten und auch zu den Kindern gelangen. Schließlich hatte er diesen Computer in erster Linie für sie konzeptioniert! Bereits 1970 begann Alan Kay seine Entwürfe umzusetzen. Seine Entwicklung sollte KiddiKomp heißen und ausreichend zahlreich produziert werden, als dass man dadurch zu verschiedenen verwertbaren Erfahrungsberichten über die GUI kommen konnte. Diese wollte er dann bei der Weiterentwicklung des Notebooks miteinbeziehen. Mit leichten Abweichungen vom ursprünglichen Entwurf schloss er seine Arbeiten an diesem MiniPC 1971 ab. Der Abbildung 2: Dynabook Prototype miniCom, wie Kay ihn nun nannte, nutzte bereits Smalltalk(s.Kapitel 3.2)! Allerdings verweigerte man ihm bei XEROX die finanziellen Mittel den MiniCom tatsächlich zu bauen. 3.2 PersonalComputer In den folgenden Jahren sowohl bei Xerox PARC als auch bei Apple setzte Alan Kay viel daran seine Vision des Dynabook mit Hilfe anderer Wissenschaftler und Entwickler Stück für Stück umzusetzen. Mit jedem neuen Produkt sah er sein Ziel einen kleinen Schritt näher rücken. Obwohl jedes Mal nur Einzelheiten verändert wurden, blieb Kay zuversichtlich und ersann neue Entwürfe für die nächste Verbesserung. Unter anderem hat er an folgenden Entwicklungen mitgearbeitet: 1973 wurde der "Xerox Alto" vorgestellt, der im Forschungszentrum von Xerox PARC entwickelt worden war. Er war der erste PersonalComputer, privat jedoch kaum erschwinglich. Darum wurde er vor allem in der Forschung eingesetzt. Serienmäßig wurde er mit einer 2,5 MB Wechselfestplatte und 128 KB RAM (Hauptspeicher) produziert, der allerdings auf 512 KB erweiterbar war. Dies war damals eine erstaunlich hohe Speicherkapazität für einen Computer dieser Größe. Vergleicht man jedoch diese Daten mit den 2048 MB Festplatten neuer PCs von heutzutage, erkennt man eine enorme Steigerung. Alan Kays Ideen sind in diesem PC an verschieAbbildung 3: Xerox Alto denen Stellen deutlich zu erkennen. Bereits dieser PC war netzwerkfähig und hatte eine neu entwickelte, leistungsfähigere CPU. Für die GUI wurde beim Alto eine Bitmap-Grafik verwendet, wobei jedes Pixel je nach Farbtiefe durch unterschiedlich viele Bits dargestellt wird. Der Benutzer konnte mit Hilfe einer Maus mit drei Tasten über Menüs oder Icons das gewünschte Programm auswählen. 6 1983 wurde die "Apple Lisa" vom Hause Apple zum Verkauf freigegeben. Sie war der erste kommerzielle Computer und etwas billiger als ihr Vorgänger-PC vom Xerox PARC. Für Privatpersonen war sie allerdings noch immer kaum erschwinglich, weshalb sie nur schwer verkäuflich war. Sie kam vor allem in Büros zum Einsatz. Bei ihr war eine 5 MB Festplatte eingebaut und 512 KB RAM, der auf 1 MB erweiterbar war. Um dem Benutzer mehr Komfort zu bieten, hatte man bei ihr die GUI besser ausgefeilt, Nebenläufigkeit von Prozessen ermöglicht und ihr zusätzlich ein Diskettenlaufwerk eingebaut, mit dem problemlose Datenübertragung auch ohne Netzwerk ermöglicht wurde. Abbildung 4: Apple Lisa Schon im Jahr darauf, 1984, warf Apple den LisaNachfolger "Apple MacIntosh" auf den Markt. Es war der erste PC, der billig genug war, um auch in private Haushalte Einzug zu halten. Inzwischen hatte Alan Kay eine Stelle bei Apple bekommen. So konnte er auf die Entwicklung des MacIntosh wieder mehr Einfluss nehmen. Im Gegensatz zum Vorgängermodell war der MacIntosh sehr kompakt; eine Kiste mit einem Griff oben dran, allerdings vom Format her noch weitaus zu unhandlich um an das Dynabook heranzureichen. Man näherte sich mit kleinen Schritten Kays Vision. Der MacIntosh hatte keine Festplatte und nur noch 128 KB RAM, Abbildung 5: Apple MacIntosh was zu Gunsten der Preissenkung in Kauf genommen worden war. Gebootet wurde er, indem man vor dem Einschalten die Bootdiskette in das integrierte Diskettenlaufwerk schob. Außerdem hatte er einen Port für ein externes Diskettenlaufwerk, Tastatur, Maus, Modem, Drucker und Lautsprecher. Natürlich hatte auch er eine GUI, um die Bedienung für den Benutzer intuitiver zu gestalten. Beim Verkauf wurden zusätzlich die Programme MacPaint und MacWrite mitgeliefert. 3.3 Smalltalk Die Programmiersprache Smalltalk wurde Anfang der 70er Jahre am Xerox Palo Alto Research Center(Xerox PARC) von der Learning Research Group entwickelt. Die Leitung dieser Forschergruppe hatte Alan Kay 1972 übernommen. Smalltalk-72 war die erste veröffentlichte Implementierung. Allerdings folgten nahezu alle zwei Jahre weitere Versionen mit verschiedenen Erweiterungen. Unter dem Namen Smalltalk-80 wurde 1983 schließlich die Version herausgegeben, die die Grundlage der heutigen Implementierungen bildet. Diese sind auf http://www.smalltalk.org/ aufgelistet. Alan Kay hatte sich die Verwirklichung seiner Vision eines Dynabooks zum Ziel gemacht. Zur Umsetzung der verschiedenen Anforderungen, die er an diesen Computer stellte, musste zum einen die Hardware verbessert und zum anderen neue Software entwickelt werden. Mit Smalltalk nahm er in erster Linie die Software in Angriff. Beim Design versuchte er einfache Bedienbarkeit, simple Sprachkonstrukte und große Flexibilität miteinander zu kombinieren. Angeblich wurde der Name Smalltalk gewählt, um auf genau diese Einfachheit hinzuweisen. Außerdem achtete er darauf, ein ausdrucksstarkes und reaktionsschnelles System zu entwickeln. Denn all das sind Voraussetzungen für das Dynabook. Die Aufmerksamkeit der Öffentlichkeit erregten damals jedoch nicht die Konzepte der Sprache, sondern die Eigenschaften des Smalltalk-Systems. Das System wurde auf einem Desktoprechner implementiert. An diesen waren (neben der üblichen Tastatur) eine Maus mit drei 7 Tasten - rot, blau und gelb - als zusätzliches Eingabegerät und ein hochauflösender Grafikbildschirm mit verschiebbaren Fenstern, Aufklappmenüs und Schriften verschiedener Größe angeschlossen. 3.3.1 Besondere Eigenschaften von Smalltalk Smalltalk wird oft als Ursprung oder Katalysator für viele, heute wie selbstverständlich genutzte Entwicklungen bezeichnet. Um das zu verstehen muss man wissen, welche neuen und entscheidenden Konzepte bei Smalltalk implementiert wurden. • Smalltalk war die erste rein objektorientierte Sprache. Objektorientierte Elemente gab es zuvor noch bei Simula. Rein objektorientiert bedeutet, dass alle Datenstrukturen wie Zeichenketten, Integer, Boolesche Werte, Klassen(-definitionen), ausführbarer Code, Stack-Frames, der Speicher, Codeblöcke etc. Objekte sind. Objekte bestehen aus einer Menge von Daten, die den Zustand des Objektes kennzeichnen, und einer Menge von Methoden, die natürlich wiederum selbst Objekte sind. • Smalltalk unterstützt Reflexion. Denn Reflexion ist die Möglichkeit einer Programmiersprache, zur Laufzeit Informationen über die Struktur und das Verhalten des Programms selbst herauszufinden bzw. abzuändern, was dadurch gegeben ist, dass sowohl die Sprache selbst als auch ihre Entwicklungsumgebung komplett in Smalltalk implementiert ist. Da zur Definition des Smalltalk-Systems Smalltalk-Objekte genutzt wurden und quasi der gesamte Quelltext offen ist, kann der Programmierer sowohl die Sprache selbst als auch die Entwicklungsumgebung erweitern. • Bei der Programmierung in Smalltalk müssen den Programmelementen nicht explizit Typangaben zugeordnet werden. Ausdrücke und Methoden werden implizit getypt, indem ihre Typen durch Typinferenzmechanismen während der Laufzeit bestimmt werden. Eine Zuweisung sieht dann so aus: aVariable := anExpression. Praktischerweise ist Smalltalk damit typsicher: es ist unmöglich, ein Programm durch Verwendung einer unverstandenen Nachricht zum Absturz zu bringen. Es ist sogar möglich, mit unvollständigen Klassen zu arbeiten, d.h. man kann die Klassen Methode für Methode entwickeln und zwischendurch compilieren und debuggen. Dies führt zu kurzen Entwicklungszyklen und lässt Entwickler besonders produktiv programmieren. • Die Entwicklungsumgebung von Smalltalk ist sehr ausgereift. Dem Entwickler stand schon damals eine graphische Entwicklungsumgebung mit Editoren, Browsern, Debugger, GUI Builder etc. zu Verfügung. Dabei konnte er mit verschiebbaren Fenstern und Aufklappmenüs sehr komfortabel arbeiten. All diese Werkzeuge sind in Smalltalk implementiert, sodass sie ein Programmierer ohne große Probleme erweitern und seinen Bedürfnissen anpassen kann. • Das Smalltalk-System hat eine sehr große, in Smalltalk implementierte Klassenbibliothek. Mit dem Klassenbrowser der Entwicklungsumgebung kann durch die Klassenhierarchie navigiert werden. Hierin kann der Programmierer Klassen und ihre Methoden erstellen. Jede Klasse, abgesehen von der Wurzelklasse Object, ist von genau einer Oberklasse abgeleitet, deren Verhalten sie erbt und beliebig erweitern kann. Es ist also wie in Java keine Mehrfachvererbung möglich. Da in Smalltalk jede Datenstruktur ein Objekt ist, gibt es konsequenterweise für jede Datenstruktur auch eine Klasse. So findet man in der Klassenbibliothek sowohl Klassen für (in Java und C z.B primitive) Datentypen wie Boolean, aber auch eine besonders ausgereifte Hierarchie von Collections(z.B. Set, SortedCollection, Array). 8 • Wie Java läuft Smalltalk auf einer virtuellen Maschine (VM), die man auf unterschiedlichen Plattformen implementieren kann. Da die VM in C geschrieben ist, ist sie leicht auf andere Plattformen zu portieren. Beim Kompilieren werden Smalltalkprogramme in Bytecode übersetzt, der durch die VM ausgeführt wird. Darum laufen Smalltalk-Programme ohne jegliche Änderung auf jedem System, für das eine virtuelle Maschine existiert. Ursprünglich wurde der Bytecode interpretiert; kommerzielle Umgebungen arbeiten inzwischen fast ausschließlich mit dynamischer Übersetzung. • Der Garbage Collector sorgt für die automatische Speicherbereinigung. Sobald ein Objekt von keinem anderen mehr referenziert wird, kann es überschrieben werden. Dadurch muss sich der Programmierer nicht mehr um die Speicherverwaltung kümmern, was besonders für Laien eine Erleichterung mit sich bringt. • Das Verbreitungskonzept von Smalltalk basiert auf einem fast ganz offenen Quelltext. Dadurch kann jeder das System seinen Anforderungen ganz nach Belieben anpassen. Im Zuge dessen sind im Laufe der Jahre die unterschiedlichsten Implementierungen entstanden; sowohl Open Source als auch kommerzieller Art. Viele der aufgeführten Punkte kommen uns heutzutage bekannt oder gar selbstverständlich vor. Als Smalltalk entwickelt wurde, waren dies jedoch Neuerungen. VM und Garbage Collector werden nach wie vor ähnlich in Java genutzt. Von der impliziten Typisierung ist man allerdings eher wieder abgekommen, weil diese Freiheit auch viele Schwierigkeiten und Missverständnisse bei der Benutzung von Variablen mit sich bringen kann. 3.3.2 Sprachkonstrukte in Smalltalk Es gibt nur drei eingebaute ausführbare Konstrukte: • Senden einer Botschaft an ein Objekt: In Smalltalk werden Objekte dadurch aktiviert, dass man ihnen Nachrichten schickt. Dies führt dazu, dass die entsprechende Methode des Objekts ausgeführt wird. Dafür nutzt man einen Ausdruck der Form: anObject message. Hat man einem Objekt auf diese Weise eine Nachricht geschickt, antwortet es mit einem Antwortobjekt. Jeder Ausdruck muss mit einem Punkt beendet werden. • Zuweisen eines Objekts an eine Variable: Um einem Objekt eine Variable zuzuweisen, ist folgende Form nötig: aVariable := anExpression. Zuweisungen werden ebenfalls mit einem Punkt abgeschlossen. • Ein Objekt als Rückgabewert einer Methode liefern: Methoden wie in Java gibt es in Smalltalk nicht. Sie werden durch Blöcke dargestellt. Blöcke sind Sequenzen von Zuweisungsanweisungen und Ausdrücken, die durch eckige Klammern eingeschlossen werden. Sie müssen keine Parameter enthalten. Ein Block ohne Parameter: block := [ Anweisungen ] Ein Block mit Parameter: blockPar := [ :einParameter | Anweisungsfolge ] Um einen Block ohne Parameter auszuführen gibt es eine parameterlose Methode. Blöcken mit Parametern müssen beim Aufruf Werte mitgegeben werden. blockPar value 9 Kontrollstrukturen werden in Smalltalk durch boolesche Ausdrücke und Blöcke implementiert. Ein boolescher Ausdruck liefert nach der Auswertung ein boolesches Objekt, dem daraufhin eine Nachricht zugesandt wird. Dieser Nachricht wird als Parameter ein ausführbarer Block von Anweisungen mitgegeben. • Eine bedingte Anweisung wird ausgeführt, indem eine ifTrue:-Nachricht an ein boolesches Objekt gesandt wird, das z.B. nach der Auswertung eines Ausdrucks geliefert worden ist. Dabei wird ein Block von Anweisungen als Parameter übergeben. if-Anweisung: (ein Ausdruck, der ein boolesches Objekt zurückgibt) ifTrue: [ ein Block ] if-then-else-Anweisung: (ein Ausdruck, der einen Boolean zurückgibt) ifTrue: [ ein Block ] ifFalse: [ ein anderer Block ] • In Smalltalk ist auch die Möglichkeit gegeben Schleifen zu implementieren. Bei while-Schleifen wird ebenfalls eine Nachricht mit einem Block als Parameter an ein boolesches Objekt gesandt: [ ein Block, der ein boolesches Objekt zurückgibt ] whileTrue: [ ein anderer Block ] [ ein Block, der ein boolesches Objekt zurückgibt ] whileFalse: [ ein anderer Block ] Für for-Schleifen müssen Integer als Laufgrenzen angegeben werden: Anzahl timesRepeat: [ ein Block ]. Startwert to : Endwert do : [ :Laufvariable | Anweisungsfolge ]. Eine wichtige allgemeine Klasse sind die Collections. Sie verwalten eine Sammlung von Objekten. Die Klasse Collection steht in der großen Klassenbibliothek von Smalltalk an der Wurzel einer ganzen Hierarchie von solchen Klassen. Es ist sehr einfach für jedes Objekt der Collection einen Block von Anweisungen auszuführen. Andere Programmiersprachen brauchen hierfür spezielle Konstrukte (Iteratoren). aCollection do: [ :einElement | auszuführendeArbeitFürDiesesElementMit: einElement ] 3.4 Squeak Squeak ist eine Open-Source Implementierung von Smalltalk-80 für Nutzer aller Altersklassen, ob Computerlaien oder Experten, und ist als mögliche Evaluationsstufe des ursprünglichen Smalltalk zu sehen. Wie das Konzept von Smalltalk vorgibt, ist diese Implementierung plattformunabhängig. Zunächst wurde es von Alan Kay und einigen seiner Kollegen im kommerziellen Rahmen bei Apple entwickelt und genutzt, inzwischen wird es aber auch zur Arbeit mit Kindern eingesetzt, z.B. in der Open Charter School, Los Angeles. Squeak ist ein weiterer Versuch der Idee des Dynabooks softwaretechnisch einen Schritt näher zu kommen. Unter http://squeakland.org/ findet sich die Entwicklungsumgebung für Kinder, Eltern und Lehrer. Hier können Kinder spielerisch physikalische Grundgesetze 10 entdecken und testen. Die Squeakumgebung fördert durch Menüs und Hilfen die intuitive Nutzbarkeit. Kinder müssen nicht textuell programmieren, sondern können Objekte malen und diesen konkrete Attribute und Methoden zuweisen. Die verschiedenen Benutzer können sich in der Squeakumgebung über ihre Erfahrungen austauschen und gegenseitig helfen. Alan Kay macht mit dieser Implementierung deutlich, in welche Richtung sich die Mensch-Machine-Interaktion wenden könnte, um die Fähigkeiten eines Computers tatsächlich auszunutzen. Mit Sqeakland macht er den Anfang, indem er Kindern mathematische und naturwissenschaftliche Gegebenheiten auf eine neue, besonders anschauliche Weise präsentiert. Eine Umgebung in der sie unterschiedliche Situationen austesten und selbst erfahren können. 4 Fazit Alan Kay wirkte an vielen Projekten wie z.B. Laptop, Tablet-PC, ARPAnet, Client-ServerModell, Laserdrucker oder 3D-Graphik persönlich mit oder gab den Anstoß dazu. Besonders hervorgetan hat er sich während seiner Forscherkarriere jedoch durch die Entwicklung von Personal Computern, der objektorientierten Programmierung und der GUI(Graphical User Interface) mit überlappenden und verschiebbaren Fenstern, aufklappbaren Menüs und Icons. Der PC machte Computer erst der breiten Masse zugänglich und durch die GUI wurde die Bedienung der PCs sehr viel intuitiver. 1968 nach seinem Besuch bei Seymour Papert, dem Erfinder von LOGO, hatte Alan Kay seine Vision des Dynabook entwickelt. Ursprünglich ein kindgerechter Computer, an den er revolutionäre Anforderungen stellte. Ein Art interaktives Buch sollte es werden; tragbar, mit berührungssensitivem Flachbildschirm, reaktionsschnell und mit Netzwerkanschluss. Aber dennoch sollte das Produkt preiswert bleiben, damit es sich für den alltäglichen Gebrauch durchsetzen konnte. Schnell war klar, dass die Entwicklung eines solchen Computers nicht nur im Interesse von Kindern lag. Einen intuitiv bedienbaren Personal Computer, wie es das Dynabook sein sollte, würde man viel leichter unter den Computerlaien, ob Kinder oder Erwachsene, verbreiten können, als die zur damaligen Zeit existenten Rechner. Das Dynabook sollte ein persönliches, dynamisches Medium für jedermann sein, in dem man alle seine persönlichen Dokumente, Texte, Sounds, Bilder und Animationen speichert; ein interaktives Tagebuch. Zudem sollte man über das Dynabook mit anderen in Kontakt treten können, um Wissen auszutauschen. Und wie sieht es heutzutage aus? Konnte Alan Kay sein Dynabook verwirklichen? Betrachtet man die Industrienationen, so stellt man fest, dass in fast jedem Haushalt ein PC steht. Auch an Schulen und Universitäten stehen für die Auszubildenden zugängliche Cluster. Inzwischen kann kaum einer seine Ausbildung abschließen, ohne dabei an einem Computer gearbeitet zu haben. Demnach hat sich Alan Kays Vision, was die Verbreitung angeht, zumindest in den Industrienationen schon gut durchgesetzt. Nicht nur PCs sind häufig zu finden. Gerade für Geschäftsleute, die häufig herumreisen, sind Laptops sehr attraktiv. Diese kommen zumindest der äußeren Gestalt eines Dynabook sehr nahe. Flach und kompakt, sodass sie leicht im Aktenkoffer transportierbar sind. Leistungsstark und finanziell trotz allem für Privatnutzer erschwinglich. Seit einigen Jahren hat jeder die Möglichkeit sich Zugang zum Internet zu verschaffen, wo er einen großen Wissenspool vorfindet. Allerdings ist hier jeder frei einzustellen, was immer er will. Darum sollte nichts ungeprüft übernommen werden! Mit den Jahren wurde der Zugang immer billiger, sodass es sich zunehmend mehr Leute leisten können, online zu sein. Außerdem ist inzwischen nicht mehr unbedingt ein Kabel nötig, um sich ins Internet einzuwählen. Mit W-Lan und entsprechenden Access-Points in den Städten oder auch bei Freunden, am Arbeitsplatz oder an der Universität ist der Benutzer noch ungebundener. Diese Ungebundenheit entspricht ebenfalls Alan Kays Konzept für das Dynabook. Schließlich sollte man es quasi überall uneingeschränkt nutzen können. Sogar der berührungssensitive Bildschirm ist heutzutage weit verbreitet im Einsatz, z.B. bei Kundenautomaten von Banken oder Bahn. Eine andere 11 Form ist in den Tablet-PC integriert. Hierbei kann man mit einem speziellen Stift auf den Bildschirm schreiben oder malen. Der Computer speichert die Linien und zeigt sie dem Benutzer an. So kann man z.B. einen Vortrag mit Beamer und Tablet-PC genauso halten wie mit Overhead-Projektor und Folien und nachträglich noch etwas handschriftlich einfügen. Die Leistungsfähigkeit von Computern im Allgemeinen hat sich in den letzten 40 Jahren enorm gesteigert und steigert sich weiterhin nach Moore’s Law. Die Prozessoren werden immer schneller und es scheinen sich immer neue Wege zu finden, um die Speicherkapazität zu verbessern. In Programmen wie Microsoft PowerPoint lässt sich die Vereinigung von Animationen, Sound, Text und Bildern besonders eindrücklich vorführen. Im Allgemeinen lässt sich ein PC als komfortable Schreibmaschine, Fernseher, Stereoanlage und Buch gleichzeitig nutzen. Damit sind die besten Voraussetzungen für die von Alan Kay gepriesene interaktive Nutzbarkeit gegeben. Das Dynabook, wie es sich Alan Kay vorstellt, existiert aber noch lange nicht. In hardwareund softwaretechnischer Hinsicht sind viele gute Voraussetzungen geschaffen. Seiner Ansicht nach mangelt es vor allem am Verständnis der Leute von Mensch-Maschine-Interaktion. Seine Vision war es, ein persönliches, dynamisches Medium zu schaffen, eine Art interaktives Tagebuch, über das man jedoch auch auf Ressourcen von außerhalb zugreifen kann. Über das Dynabook soll nicht nur Wissensaustausch stattfinden, sondern verschiedene Probleme und Meinungen diskutiert werden. Es soll Kindern eine spielerische Lernumgebung bieten. Dabei liegt Alan Kay vor allem die Förderung der naturwissenschaftlichen Fächer am Herzen. Es gilt dabei die multimediale Kombination geschickt für anschauliche Simulationen zu nutzen; ähnlich seinen Ansätzen bei Squeak. Doch bis diese Fähigkeiten des Computers tatsächlich ausgeschöpft werden und er nicht länger als multimedialer Ersatz gebraucht wird, muss sich noch viel an der Beziehung vom Menschen zum Rechner ändern. Wie Alan Kay sagt: "Die Computer-Revolution kommt erst noch!" 5 Zukunft Alan Kays großes neues Projekt heißt Croquet. Croquet stellt eine multimediale 3D Welt dar, in der sich mehrere Leute bewegen und miteinander arbeiten können sollen. Dabei können sie sich gegenseitig in Gestalt von Avataren sehen. Außerdem werden die Applikationen, an denen die verschiedenen Benutzer arbeiten, oder Texte, die sie lesen entsprechend für andere sichtbar markiert. Mit Hilfe dieser Metaphern zur Kommunikation will man die Interaktion zwischen den verschiedenen Benutzern fördern. Ganz nach Belieben sollen Benutzer in Croquet neue Welten kreieren können, in die sie durch Portale von der einen in die nächste Welt kommen können. Diese Portale können entweder für jeden offen und zugänglich sein oder mit einem Passwort belegt, sodass nicht jeder hereinkommt. Es können aber auch bestehende Welten geändert werden, selbst wenn dort gerade Besucher sind. Croquet soll irgendwann wie das Internet genutzt werden. Auch hier kann man verschiedene Fenster öffnen und mit anderen kommunizieren, wie in dem bisher bekannten World Wide Web, aber in einer 3D Welt! Die Entwickler hoffen auf eine intuitivere Nutzbarkeit, dadurch dass die virtuelle Welt der realen immer mehr angepasst wird. Die derzeitigen Entwicklungen sind allerdings noch nicht ganz zum Einsatz bereit. Vor allem ist diese 3D Welt ein großer Aufwand für die Graphikkarte, weshalb alles sehr langsam läuft. 12 Abbildungsverzeichnis 1 2 3 4 5 Alan Kay . . . . . . Dynabook Prototype Xerox Alto . . . . . Apple Lisa . . . . . . Apple MacIntosh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6 6 7 7 Literatur [1] Gasch, Scott: Alan Kay. <http://ei.cs.vt.edu/~history/GASCH.KAY.HTML>1 [2] Wikipedia: Alan Kay. <http://de.wikipedia.org/wiki/Alan\_Kay>1 [3] The Book & The Computer: Interview "The Dynabook Revisited". <http://www.honco.net/os/kay.html>1 [4] Wikipedia: Dynabook. <http://en.wikipedia.org/wiki/Dynabook>1 [5] Smalltalk.org: Inventing the Future of IT!. <http://www.smalltalk.org/main/>1 [6] Alan Kay: The Early History of Smalltalk. <http://www.smalltalk.org/smalltalk/TheEarlyHistoryOfSmalltalk\ _Abstract.html>1 [7] Wikipedia: Smalltalk. <http://de.wikipedia.org/wiki/Programmiersprache\_Smalltalk>1 [8] Kathrin Walenta: Smalltalk. <www.wi.uni-muenster.de/pi/lehre/SS04/SeminarProgrammiersprachen/ Smalltalk.pdf>1 [9] Squeak: <http://www.squeak.org/>1 [10] Squeakland: <http://squeakland.org/>1 [11] Croquet: <http://www.opencroquet.org/index.html>1 [12] Marcus Denker, Markus Gälli: Von kleinen und großen Erfindern. <http://www.heise.de/ct/04/07/216/>1 [13] Lessmöllmann, Annette: Der SchulspaßmacherDer Schulspaßmacher. <http://zeus.zeit.de/text/2002/47/P-Alan\_Kay>1 [14] Viewpoints Research Institute: <http://www.viewpointsresearch.org/about.html>1 [15] Java and Smalltalk syntax compared: <http://www.chimu.com/publications/JavaSmalltalkSyntax.html>1 1 Links überprüft am 24.02.2006 14