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