www.wikidata.de-de.nina.az
Smalltalk ist ein Sammelbegriff einerseits fur eine dynamische im Original untypisierte objektorientierte Programmiersprache und andererseits fur eine vollstandige Entwicklungsumgebung die in den 1970er Jahren am Xerox PARC Forschungszentrum durch Alan Kay Dan Ingalls Adele Goldberg und andere entwickelt wurde Sie wurde allgemein unter dem Namen Smalltalk 80 freigegeben und hat die Entwicklung vieler spaterer Programmiersprachen wie etwa Objective C Java und Ruby beeinflusst Smalltalk wurde von Lisp mit seiner automatischen Speicherbereinigung und Simula mit seinem Klassen Konzept beeinflusst und gilt neben Simula 67 als eine der ersten objektorientierten Programmiersprachen SmalltalkBasisdatenErscheinungsjahr 1972 Entwicklung ab 1969 Designer Alan Kay Dan Ingalls Adele GoldbergEntwickler Alan Kay Dan Ingalls Adele Goldberg Ted Kaehler Scott Wallace Peter DeutschAktuelle Version ANSI Smalltalk 1 19 Mai 1998 Typisierung dynamischWichtige Implementierungen Pharo Squeak Cuis Haver GNU Smalltalk VisualWorks Dolphin Smalltalk Smalltalk X VA Smalltalk OOVMDialekte PharoBeeinflusst von Lisp SimulaBeeinflusste Objective C Java Ruby Self PHP 5 Logtalk Dylan AppleScript NewtonScript Python Groovy Scala Raku Common Lisp Object System Falcon Io Ioke Fancy StrongtalkBetriebssystem Windows Linux macOS uvm Lizenz anwendungsspezifischsmalltalk orgSmalltalk ist im Gegensatz zu Sprachen wie C oder Java eine rein objektorientierte Programmiersprache das heisst Daten wie Integer Character und ahnliche die in anderen objektorientierten Sprachen zum Teil als elementare Datentypen reprasentiert werden sind in Smalltalk ebenfalls uber Objekte und zugehorige Klassen realisiert Die Smalltalk Entwicklungsumgebung enthielt viele Ideen die spater mit der Macintosh und Atari TOS GEM und dann spater auch Windows Benutzeroberflache verbreitet wurden Verwendet wurde ein Grafikbildschirm mit verschiebbaren Fenstern Aufklappmenus und Schriften von verschiedener Grosse Eine Maus mit drei Tasten rot blau und gelb diente erstmals als zusatzliches Eingabegerat Das Model View Controller Konzept MVC spielte in der Smalltalk 80 Entwicklungsumgebung eine wesentliche Rolle Inhaltsverzeichnis 1 Wichtige Eigenschaften von Smalltalk 2 Geschichte und Bedeutung von Smalltalk 2 1 1970 1980 2 2 1980 1990 2 3 1990 2000 2 4 Seit 2000 3 Image Konzept 4 Typisierte Variante von Smalltalk 5 Ausdrucke Expressions 6 Zuweisungen 7 Blocke 8 Kontrollstrukturen 8 1 IF Anweisung 8 2 Schleifen 9 Collections 10 Programmbeispiel 11 Schreibweise 12 Implementierungen 13 Siehe auch 14 Literatur 15 Weblinks 16 EinzelnachweiseWichtige Eigenschaften von Smalltalk BearbeitenAlles in Smalltalk ist ein Objekt auch Zeichenketten Integer boolesche Werte Klassen definitionen ausfuhrbarer Code Stackframes der Speicher Codeblocke etc Objekte werden dadurch aktiviert dass man ihnen Nachrichten englisch messages schickt Dies fuhrt dazu dass die entsprechende Methode Funktion des Objekts ausgefuhrt wird Der gesamte Quelltext ist in der Regel offen und kann somit verandert werden Nur sehr wenige Methoden greifen auf echte Primitives der virtuellen Maschine zuruck Dynamische Bindung erst zur Laufzeit wird ermittelt welche Methode tatsachlich aufgerufen wird Eine fruhe statische Bindung wie dies bei der statischen Typisierung vorgesehen ist wurde in der Smalltalk Programmiersprache bewusst ausgespart Vererbung Jede Klasse ausser der Wurzelklasse Object ist von genau einer Oberklasse abgeleitet deren Verhalten sie erbt und beliebig erweitern kann keine Mehrfachvererbung Automatische Speicherbereinigung englisch garbage collection die nicht durch den Programmierer beeinflusst werden kann Ein Objekt existiert so lange wie es von anderen Objekten referenziert wird Smalltalkprogramme werden in Bytecode kompiliert der durch eine virtuelle Maschine ubersetzt wird Ursprunglich wurde der Bytecode zu nativem Maschinencode interpretiert kommerzielle Umgebungen arbeiten inzwischen fast ausschliesslich mit dynamischer Ubersetzung Die Programmierumgebung erlaubt Anderungen im Quelltext wahrend das Programm lauft und setzt diese unmittelbar wahrend der Laufzeit um Die Quelltexteingabe erfolgt in einem Klassenbrowser Moderne Refactoring Browser setzen sich allmahlich gegen einfache Klassenbrowser durch weil sie automatisierte Refactoring Funktionen unterstutzen und damit die Produktivitat nochmals erheblich steigern ahnlich wie sich Eclipse in der Java Welt etabliert hat Eine typische Eigenschaft im Vergleich zu nicht objektorientierten Sprachen ist dass die Kontrollstrukturen wie if then else for while nicht in die Sprache eingebaut sind Zum Beispiel wird eine IF Anweisung so ausgefuhrt indem eine ifTrue Botschaft an ein boolesches Objekt gesandt wird Als Parameter wird ein Block Anweisungsfolge ubergeben Lediglich in der Klasse True wird dieser Block ausgefuhrt In der Klasse False ist diese Methode zwar auch implementiert aber sie fuhrt den Block nicht aus Das gesamte System inklusive Entwicklungswerkzeugen wird in einem Image gespeichert Es gibt nur drei fest integrierte ausfuhrbare Funktionen Senden einer Botschaft an ein Objekt Zuweisen eines Objekts an eine Variable Ein Objekt als Ruckgabewert einer Methode liefernGeschichte und Bedeutung von Smalltalk Bearbeiten1970 1980 Bearbeiten In diese Zeit fallt die Entwicklung der ersten Versionen von Smalltalk 71 Smalltalk 72 Smalltalk 74 und Smalltalk 76 2 bis hin zum heute verbreiteten Standard Smalltalk 80 am Forschungszentrum Xerox PARC 1980 1990 Bearbeiten Die Programmierung mit Klassenbrowser und die Verwendung einer virtuellen Maschine zur Ausfuhrung stellte von Anfang an gewisse Mindestanforderungen an die Hardware Dies geschah zu einer Zeit in der die erschwinglichen Computer nicht uber grafische Benutzeroberflachen verfugten und die Rechenleistung nicht fur eine solche ausreichte Smalltalk war seiner Zeit voraus und konnte zu Beginn nur auf Workstations effektiv eingesetzt werden Im Ergebnis gab es daher nur wenige Smalltalk Entwickler dafur umso mehr C Programmierer Mit dem Aufkommen der grafischen Benutzeroberflachen im Mikrocomputerbereich entstand das objektorientierte C und da die meisten Entwickler C bereits kannten konnte sich C sehr schnell verbreiten sodass Smalltalk eine Nischenprogrammiersprache blieb Im Gegensatz zu C und C legte Smalltalk auch auf hohe Ausfuhrungsgeschwindigkeiten keinen besonderen Wert Alan Kay It s still fast enough for our neurons 1990 2000 Bearbeiten Anfang und Mitte der 1990er Jahre wurde Smalltalk in vielen Bereichen popular in denen es auf die Beherrschung von Komplexitat ankam z B bei Expertensystemen Verschiedene grosse Anbieter wie IBM begannen Smalltalk stark zu unterstutzen und in Grosskundenprojekten einzusetzen Es gab eine sprunghafte Zunahme verschiedener Implementierungen von Smalltalk Mit dem Internet Boom und dem davon profitierenden Java busste Smalltalk Ende der 1990er Jahre seine gerade aufkommende Popularitat jedoch wieder ein In Java wurden einige Konzepte von Smalltalk wie z B die virtuelle Maschine und der Garbage Collector ubernommen Die Syntax war jedoch wieder an C angelehnt Auch kamen erneut nicht objektorientierte Mittel zum Einsatz wie die Vermischung der Objektorientierung mit einfachen Datentypen und imperative Strukturen geringe Selbstbezuglichkeit und der Edit Compile Test Debug Zyklus mit Quellcode als reiner Textdatei etc Java bot dafur Normierung Aufstiegspfade fur C Programmierer und nicht zuletzt Allianzmoglichkeiten gegen die MS Windows Dominanz Zudem wurde es von Sun Microsystems kostenlos zur Verfugung gestellt Das Ende des kurzen Smalltalk Booms wurde durch den Niedergang der Firma ParcPlace unterstrichen die als Ausgrundung des Xerox PARC mit VisualWorks 3 heute bei Cincom 4 den direkten Nachfolger der Originalimplementierung anbot der die damals machtigste Smalltalk Entwicklungsumgebung darstellte Mit VisualWorks geschaffene Anwendungen liefen bereits 1991 bitkompatibel durch VM unter Windows Mac OS Classic Solaris und anderen Unix Systemen und konnte ab 1994 deren verschiedene Benutzeroberflachen mit Camelon View unabhangig vom Laufzeitsystem simulieren Ein Konkurrent zu VisualWorks war die auf Windows und OS 2 zugeschnittene Entwicklungsumgebung Smalltalk V spater Visual Smalltalk Enterprise genannt der Firma Digitalk 5 die zuletzt bei Cincom erhaltlich war 6 Obwohl Smalltalk sehr leicht zu erlernen nur wenige Sprachkonstrukte und zu debuggen ist selten ist eine zeitaufwendige explizite Neukompilierung und erstellung sowie ein Neustart des Programms erforderlich und das Problem mit der Ausfuhrungsgeschwindigkeit zum Teil durch effektivere Implementierungen zum Teil durch leistungsfahigere Hardware inzwischen gelost ist wird Smalltalk heute noch immer in wenigen Bereichen eingesetzt Einer der Grunde hierfur kann in der mangelnden Einheitlichkeit der Programmbibliotheken verschiedener Implementationen gesehen werden von denen bisher keine eine naturliche Dominanz wie die von Sun Microsystems fur Java entwickelt hat Nachdem ParcPlace als Player ausgeschieden war IBM sein Smalltalk Engagement zugunsten von Java eingestellt hatte und verschiedene zunachst erfolgversprechende Smalltalk Implementierungen eingestellt worden waren z B Dolphin Smalltalk 2007 gab es nur noch wenige uberzeugte Anhanger die an einen grossen Durchbruch glaubten Smalltalk blieb weiter ein Insiderthema Seit 2000 Bearbeiten In den letzten Jahren gibt es mit der Etablierung von freien Implementierungen eine Art Renaissance von Smalltalk Insbesondere das von ursprunglichen Smalltalk Erfindern entwickelte plattformubergreifende Squeak und das darauf aufbauende Croquet erhalten wachsende Unterstutzung aus Wissenschaft IT Industrie und einer grossen freien Entwickler Community Squeak wurde erstmals im September 1996 als erstes freies Smalltalk veroffentlicht Dan Ingalls Ted Kaehler John Maloney Scott Wallace und Alan Kay schreiben dass hier gegluckt sei was 1980 fehlschlug 7 Alan Kays Konzept einer interaktiven computer und netzwerkvermittelten Interaktion das Dynabook ist Bestandteil in der Softwareentwicklung fur das One Laptop per Child Projekt 8 Standardmassig werden auf den Schulerlaptops EToys auf Squeak basierende Bausteine installiert Mit Croquet wird mit dem Hintergrund des heutigen Wissensstands erneut eine Antwort auf die generelle Frage nach der optimalen Computer Mensch Schnittstelle gesucht In den 1980er Jahren war dies die erstmals mit Smalltalk implementierte zweidimensionale grafische Benutzeroberflache die ihre Verbreitung durch Apple und Microsoft fand Heute sehen Alan Kay und andere darin eine dreidimensionale plattformunabhangige vernetzte Multibenutzerumgebung in der Objekte fliessend zwischen den verschiedenen teilnehmenden Rechnern ausgetauscht werden konnen Die dazu notwendigen Eigenschaften besitzt nach Auffassung der Mitglieder des 2001 gestarteten und 2007 veroffentlichten Croquet Projektes speziell Squeak Smalltalk welches das ursprunglich zur Implementierung vorgesehene Java daher ersetzte 2008 startete das Pharo Projekt das auf der Basis von Squeak eine freie stabile Smalltalk Plattform bietet um weitere Anwendungsbereiche mit freiem Smalltalk zu erreichen Am 15 April 2019 wurde VisualWorks 8 3 2 von Cincom Systems veroffentlicht Cincom ubernahm VisualWorks 1999 von Objectshare 9 Image Konzept BearbeitenWahrend die meisten Programmiersprachen ihren Quellcode in Dateien verwalten die direkt uber einen Editor bzw eine Entwicklungsumgebung bearbeitet werden wurde das ursprungliche Smalltalk 80 von Xerox PARC mit einem Image Konzept 10 aufgebaut Dabei bildet die Virtuelle Maschine mit einer Source Datei und einer Image Datei nicht nur Quellcode sondern auch den gesamten Systemzustand Objekte mit Zustandsinformation ab Die Image Datei enthalt hierzu einen Snapshot des gesamten Systems Fur Einsteiger etwas verwirrend ist dass auch die Entwicklungsumgebung Compiler Editor Debugger in ihrem aktuellen Zustand gespeichert wird Beim erneuten Starten des Systems wird aus der Image Datei dann der Systemzustand der letzten Sitzung restauriert Image und Source Datei bilden ein festes Tandem welches auch immer gemeinsam gespeichert werden muss Die endgultige Auslieferung einer Anwendung wird dadurch etwas komplizierter da aus dem Image durch den Vorgang des Strippens alle nicht laufzeitrelevanten Anteile z B der Debugger entfernt werden mussen Moderne Varianten von Smalltalk weichen hiervon leicht ab indem z B bei ENVY eine eigene Verwaltung der Systemelemente dazwischen geschaltet wurde oder in Pharo der Quellcode mit Git verwaltet werden kann Der Umfang der Klassenbibliothek und die Komplexitat des Gesamtsystems welches durch das Image Konzept noch gesteigert wird erschwert den Einstieg fur Anfanger was ein Zitat von Joe Armstrong drastisch beschreibt You wanted a banana but what you got was a gorilla holding the banana and the entire jungle 11 Typisierte Variante von Smalltalk BearbeitenSmalltalk verfugt nicht uber ein statisches Typsystem Insbesondere findet man dort keine Typdefinitionen und Typannotationen an Variablen oder fur die Ein Ausgabeparameter von Methoden Demgemass finden auch keinerlei Typprufungen bei Wertzuweisungen statt wie dies fur typisierte Sprachen ublich ist und zwar weder dynamisch zur Laufzeit noch statisch zur Ubersetzungszeit Die Klassenhierarchie von Smalltalk darf nicht mit einer Subtypenhierarchie verwechselt werden auch wenn moderne objektorientierte Programmiersprachen oftmals Typ und Klassendefinitionen als einen einzigen Vorgang betrachten handelt es sich hier um unterschiedliche Konzepte und auch unterschiedliche Komponenten des Ubersetzers und des Laufzeitsystems einer Sprache Smalltalk verfugt hinsichtlich der Bildung und Prufung von Typen uber keine solche Komponente Es gibt allerdings Varianten von Smalltalk die uber ein statisches Typsystem verfugen so etwa Strongtalk Strongtalk ermoglicht die klassenunabhangige Definition von Typen in einer eigenen Typhierarchie und in der Folge auch die Annotation solcher Typen an Variablen und Methoden Ausdrucke Expressions BearbeitenAusdrucke haben folgende Form objekt nachricht Das heisst man sendet einem Objekt eine Nachricht Das Objekt antwortet mit einem Antwortobjekt Ausdrucke mussen mit einem Punkt getrennt werden Es gibt drei Arten von Nachrichten unare Nachrichten binare Nachrichten und Schlusselwort Nachrichten Unare Nachrichten haben keinen Parameter und bestehen aus einem Bezeichner objekt nachricht Eine binare Nachricht hat genau einen Parameter und besteht aus einem oder mehreren Sonderzeichen Vier Beispiele 1 3 100 200 vorname nachname 10 3 Die meisten arithmetischen Operationen sind in Smalltalk als binare Nachrichten implementiert Eine Schlusselwort Nachricht hat einen oder mehrere Parameter wobei vor den Parametern Doppelpunkte stehen objekt nachricht parameter Diese Schlusselwort Nachricht heisst nachricht und hat einen Parameter parameter objekt nachricht parameter1 nachricht parameter2 Diese Schlusselwort Nachricht heisst nachricht nachricht und hat zwei Parameter D h Parameter konnen bei Schlusselwort Nachrichten mitten in die Nachricht eingefugt werden Diese Besonderheit macht es moglich in Smalltalk besonders leicht lesbare Programme zu schreiben collection copyFrom 1 to 10 Das klingt wie ein Satz In Java wurde man das folgendermassen schreiben collection copyFromTo 1 10 Ausdrucke konnen kombiniert und mit Klammern geschachtelt werden Ohne Klammern werden Ausdrucke in folgender Reihenfolge ausgefuhrt Unare Nachrichten vor binaren Nachrichten vor Schlusselwort Nachrichten Bei gleichrangigen Nachrichten erfolgt die Auswertung von links nach rechts Sollen einem Objekt in Folge mehrere Nachrichten geschickt werden besteht die Moglichkeit diese Nachrichten mit einem Semikolon zu verketten objekt nachricht1 nachricht2 nachricht3Zuweisungen BearbeitenEine Zuweisung hat folgende Form variable ausdruck Zugewiesen wird in Smalltalk nur die Referenz auf ein Objekt Blocke BearbeitenBlocke sind Sequenzen von Zuweisungsanweisungen und Ausdrucken Sie werden durch eckige Klammern eingeschlossen Blocke konnen parameterlos sein oder auch Parameter aufweisen blockEins Anweisungen blockZwei einParameter Transcript show einParameter Blocke sind First Class Objekte Sie konnen als Argument ubergeben werden oder als Ruckgabewert eines Methodenaufrufs oder einer Blockevaluierung zuruckgeliefert werden Blocke halten eine Referenz auf ihren Kontext so dass bei deren Ausfuhrung umgebende Variablen erreichbar sind entsprechend ihrer statischen Sichtbarkeit Blocke entsprechen damit den Closures wie sie aus vielen funktionalen Sprachen z B Scheme bekannt sind Zur Ausfuhrung eines Blocks wird diesem eine Variante der value Nachricht geschickt wobei die Anzahl der mitgegebenen Parameter der Anzahl der Blockargumente entsprechen muss blockEins value blockZwei value Test Kontrollstrukturen BearbeitenDie Kontrollstrukturen werden mit booleschen Ausdrucken und Blocken implementiert Ein boolescher Ausdruck liefert nach der Auswertung ein boolesches Objekt Diesem wird dann eine Message zugesandt die als Parameter einen ausfuhrbaren Block hat Der Programmtext sieht aber ahnlich wie bei anderen Programmiersprachen aus so dass man wie dort einfach gewisse Kontrollstrukturen als gegeben anwenden kann Einige Beispiele IF Anweisung Bearbeiten aBoolean ifTrue ein Block mit Anweisungen oder einAusdruck ifTrue ein Block mit Anweisungen Das aus anderen Programmiersprachen bekannte else sieht folgendermassen aus aBoolean ifTrue ifFalse Schleifen Bearbeiten 10 timesRepeat Transcript show 1 to 10 do i Transcript show i printString ein Block der ein boolesches Objekt zuruckgibt whileTrue ein Block der ein boolesches Objekt zuruckgibt whileFalse ein Block der ein boolesches Objekt zuruckgibt whileTrue Block mit Schleifenrumpf ein Block der ein boolesches Objekt zuruckgibt whileFalse Block mit Schleifenrumpf Collections BearbeitenDie Smalltalkumgebungen sind mit einer grossen Klassenbibliothek ausgestattet Ein wichtiger allgemeiner Objekttyp Klasse sind die Collections d h Sammlungen von Objekten Die Klasse Collection steht an der Wurzel einer ganzen Hierarchie von Klassen Eine wichtige Arbeit die man mit einem Collection Objekt durchfuhren kann ist fur jedes Element der Collection einen Block von Anweisungen auszufuhren Andere Programmiersprachen brauchen hierfur spezielle Konstrukte Iteratoren aCollection do einElement einElement auszufuhrendeArbeitFurDiesesElement Es hat sich eingeburgert den Parameter als each zu bezeichnen sodass direkt klar ist was hierbei gemeint ist Bei Verwendung von mehreren Collections sollte man dem noch eine genaue Bezeichnung nachsetzten Iteriert man bspw uber alle x und y Werte aus zwei unterschiedlichen Collections xWerte do eachX yWerte do eachY map addPoint eachX withY eachY Programmbeispiel BearbeitenDas HelloWorld Beispiel sieht wie folgt aus Transcript show Hello World Transcript ist eine in jeder Smalltalkumgebung vordefinierte globale Variable die ein Objekt enthalt auf dem man Dinge protokollieren kann ein Ausgabefenster Diesem Objekt wird die folgende Nachricht geschickt show aString Ein bereits etwas komplexeres Beispiel Hello World do eachChar Transcript show eachChar asString cr gibt den Text Hello World vertikal aus Hello World ist ein String Zeichenkette Die Klasse dieses Objektes ist eine Unterklasse von Collection Ein String ist also eine Collection Sammlung von Zeichen Indem wir dem Objekt String die Nachricht aString do eachChar OperationenMitDiesemBuchstaben senden gehen wir alle Buchstaben Elemente des Strings einzeln durch Das Dictionary in Perl Hash in Java Map ist eine in Smalltalk haufig verwendete Datenstruktur d Dictionary new d at grun put green d at blau put blue d at rot put red Transcript show d at blau Alternativ konnen die Nachrichten auch wie bereits beschrieben verkettet werden d Dictionary new d at grun put green at blau put blue at rot put red Transcript show d at blau Auch das Dictionary ist eine Unterklasse von Collection Diese Datenstruktur entspricht dem assoziativen Array in anderen Programmiersprachen Schreibweise BearbeitenSmalltalk wird mit kleinem t geschrieben Haufig findet sich die falsche Schreibweise SmallTalk selbst auf den offiziellen IBM Webseiten wenn auch nicht durchgehend Implementierungen BearbeitenAmber Smalltalk plattformunabhangige Entwicklungsumgebung die auf JavaScript aufsetzt Cincom Smalltalk Smalltalk Dialekt der Firma Cincom Angeboten werden folgende Umgebungen ObjectStudio Entwicklungsumgebung fur Microsoft Windows mit COM und ODBC Schnittstellen VisualWorks multiplattformfahig eine kostenlose Version fur den privaten Einsatz ist verfugbar Cuis Smalltalk freies auf Ubersichtlichkeit getrimmtes Smalltalk System Haver Smalltalk eine Erweiterung von Cuis mit einem vollstandigen Modul System Dolphin Smalltalk Smalltalk Umgebung fur Windows GNU Smalltalk freies Smalltalk des GNU Projekts LittleSmalltalk freie Implementierung basierend auf Timothy A Budds Ideen LSW Vision Smalltalk proprietares Smalltalk fur Windows Pharo Programmiersprache eine nach softwaretechnischen Massstaben entwickelte Abspaltung von Squeak StepTalk GNUstep und Mac OS X Scripting Framework Squeak freie plattformunabhangige Implementierung Syx eine weitere freie Smalltalk Implementierung Smalltalk X Smalltalk der Firma eXept Software AG kostenlos verfugbar auch fur kommerzielle Projekte Smalltalk MT bei Object Connect oder Smalltalk MT bei Genify ein C naher Smalltalk Dialekt Strongtalk freie open source Smalltalk Implementierung fur Microsoft Windows VisualAge for Smalltalk Smalltalk Umgebung von IBM eingestellt der Nachfolger ist VAST OOVM Memento vom 6 Marz 2005 im Internet Archive 12 von Lars Bak et al Smalltalk Implementierung fur eingebettete Systeme die ohne darunterliegendes Betriebssystem auskommt und im laufenden Betrieb aktualisierbar ist Bluebook Implementationen von Smalltalk 80 in C von dbanay und rochus keller auf githubSiehe auch BearbeitenObjective C Self Programmiersprache Slate Programmiersprache Scratch Programmiersprache Literatur BearbeitenAdele Goldberg Smalltalk 80 The Interactive Programming Environment Addison Wesley 1983 ISBN 0 201 11372 4 Glen Krasner Smalltalk 80 Bits of History Words of Advice Addison Wesley 1983 ISBN 0 201 11669 3 Johannes Brauer Grundkurs Smalltalk Objektorientierung von Anfang an Eine Einfuhrung in die Programmierung 4 Auflage Springer Vieweg 2014 ISBN 978 3 658 00630 3 Sherman R Alpert Kyle Brown Bobby Woolf The Design Patterns Smalltalk Companion Addison Wesley Professional 1998 ISBN 0 201 18462 1 Mark J Guzdial Squeak Object Oriented Design with Multimedia Applications Prentice Hall 2000 ISBN 0 13 028028 3 Mark J Guzdial Kimberly M Rose Squeak Open Personal Computing and Multimedia Prentice Hall 2001 ISBN 0 13 028091 7 Gunther Vinek Objektorientierte Softwareentwicklung mit Smalltalk Springer Verlag 1997 ISBN 3 540 62558 5 Simon Lewis The Art and Science of Smalltalk Prentice Hall 1995 ISBN 0 13 371345 8 Chamond Liu Smalltalk Objects and Design iUniverse 2000 ISBN 1 58348 490 6 Peter P Bothner Wolf Michael Kahler Smalltalk Einfuhrung in die objekt orientierte Programmierung Vieweg Teubner 1998 ISBN 3 528 05700 9 Weblinks BearbeitenSTIC ist die Hersteller unabhangige Lobby Organisation Vortrag von Alan Kay auf der O Reilly Etech 2003 Presentation Smalltalk Bucher als PDF Dokumente zum HerunterladenEinzelnachweise Bearbeiten wiki squeak org Vgl Alan C Kay The early history of Smalltalk In ACM SIGPLAN notices Tagungsjournal Bd 28 No 3 Marz 1993 Association for Computing Machinery New York S 69 ff 2004 0924 2355 1999 0802 2121 Memento vom 5 Februar 2012 im Internet Archive PDF 3 9 MB VisualWorks in der englischsprachigen Wikipedia Cincom in der englischsprachigen Wikipedia Thomas Brey Heiko Wagner A moribund Smalltalk still alive and kicking In vs kb apis de 29 August 2008 abgerufen am 12 Januar 2023 englisch Informationen zu einem Vortrag auf der 16 ESUG Konferenz Amsterdam The Premiere Component Based Development Environment for Windows 9X and Windows NT Memento vom 23 Juli 2011 im Internet Archive auf cincomsmalltalk com englisch Back to the Future The Story of Squeak Memento vom 27 Januar 2007 im Internet Archive Alan Kay The 100 Laptop and Powerful Ideas Windleys Technometria 23 Februar 2006 computerwoche de terminology What is a Smalltalk image Abgerufen am 11 August 2022 englisch Crystal Villanueva The Banana and the Gorilla Problem In Medium 18 Februar 2021 abgerufen am 11 August 2022 englisch 008 JSJ V8 and Dart with Lars Bak and Kasper Lund Memento vom 15 Marz 2014 im Internet Archive WOODY2SHOES am 14 Marz 2012 Abgerufen von https de wikipedia org w index php title Smalltalk Programmiersprache amp oldid 233871860