Squeak

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Squeak
Squeak.svg
Entwickler The Squeak Community
Aktuelle Version 4.4
(31. Dezember 2012)
Betriebssystem Windows, Linux, Mac OS X, u. a.
Kategorie objektorientierte Programmiersprache
Lizenz MIT-Lizenz, teilweise Apache-Lizenz 2.0
Deutschsprachig Als Add-on
squeak.org, squeak.de

Squeak ist eine Open-Source-Implementierung der Programmiersprache Smalltalk samt der für diese Sprache üblichen Entwicklungsumgebung. Sie wurde von einer Arbeitsgruppe bei Apple Computer entwickelt, zu der auch einige der ursprünglichen Smalltalk-80 Entwickler wie Alan Kay, Dan Ingalls u. a. gehörten. Diese Gruppe setzte diese Entwicklung bei Walt Disney Imagineering fort, wo Squeak für interne Projekte eingesetzt werden sollte. Squeak wird heute von einer weltweiten freien Gemeinschaft weiterentwickelt, wobei die auf Squeak aufbauende 3-dimensionale-Multinutzerumgebung Croquet ein wichtiger Zweig dieser Weiterentwicklung ist, der von ursprünglichen Smalltalk-80-Entwicklern, namhaften wissenschaftlichen Instituten und IT-Unternehmen unterstützt wird. Seit 2009 wird die Weiterentwicklung nunmehr im Open Cobalt Projekt fortgeführt.

Squeak ermöglicht Computer-Simulationen, welche Kinder selbst entwickeln und durchführen können. Gefördert wurde die Entwicklung von Squeak zeitweise durch das Unternehmen „Walt Disney Imageneering“, da Squeak unter anderem ein Hilfsmittel sein sollte, Vorschulkindern beim Lernen zu helfen. Dabei ging es ausdrücklich nicht darum, Kinder früh mit Technik in Berührung zu bringen.[1]

Vorteilhaft ist die schnelle und jederzeitige Neuprogrammierung und Verbesserung des Vorhandenen. Zudem erfordert Squeak keine abstrakte Programmiersprache sondern lässt sich durch einfache Optionen grafisch steuern. Die grafische Benutzeroberfläche heißt in Squeak Morphic.

E-Toys[Bearbeiten]

Squeak wurde vor allem von Alan Kay erweitert, um von Kindern benutzbar zu sein. Diesen Teil von Squeak nennt er E-Toys.

Beispiel für die beschriebene Autosimulation.

Am Beispiel einer Autosimulation soll nachfolgend die Eingabe in E-Toys verdeutlicht werden: Zunächst erstellt das Kind ein grafisches Objekt, z. B. ein Auto. Danach zeichnet es ein weiteres Objekt, z. B. eine farbige Straße. Schließlich müssen nur noch die entsprechenden logischen Bedingung gesetzt werden, damit das Auto auf dieser farbigen Straße selbständig fährt. Nach Eingabe der Bedingungen kann das Kind dann die Simulation starten und beobachten, welche Resultate seine logischen Anweisungen hervorbringen. Durch das Versuch-und-Irrtum-Verfahren werden Kinder befähigt, logische Zusammenhänge zwischen Anweisung und Reaktion bildlich und somit unmittelbar wahrzunehmen.

Die erstellte Simulation kann dann ebenfalls in der Sprache Smalltalk gespeichert werden. Dabei werden die geschriebenen Programme übersichtlich in Ordner zusammengefasst (das sogenannte Changeset), um einen leichten Austausch der von den Kindern entwickelten Simulationen untereinander zu ermöglichen.

100-Dollar-Laptop[Bearbeiten]

Squeak ist im Rahmen des Projektes „100-Dollar-Laptop“ auf den Schülerlaptops verfügbar.[2] Die Schülerlaptops sollen dabei mit einer Grundausstattung von sog. EToys versehen werden, um den Schülern von Anfang an den altersgerechten Einstieg in logischem Denken und Computerprogrammierung geben zu können.[3] Für den Schülerlaptop wurde Squeak unter der freien Apache-Lizenz relizenziert.[4]

Geschichte[Bearbeiten]

Der Entwurf von Squeak folgt in weiten Teilen den Büchern von Adele Goldberg und David Robson (bekannt als Blue Book) sowie von Glen Krasner (Green Book). Dort wird die Smalltalk-Programmierumgebung definiert, die Squeak mit einigen Variationen, etwa einer zusätzlichen anderen Syntax, bietet.

Der Plan, Squeak zu entwickeln, entstand im Dezember 1995. Dabei sollte eine Software entwickelt werden, die Benutzer lehren kann, ohne viel Vorwissen zu fordern.

Squeak wurde erstmals im September 1996 als erstes freies Smalltalk veröffentlicht. Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace und Alan Kay schreiben in,[5] dass sie fühlten, dass hier glückte, was 1980 fehlschlug. Drei Wochen später wurde die erste UNIX-Portierung von Ian Piumerta veröffentlicht. Bis heute (Stand März 2010) wird es kontinuierlich weiterentwickelt. Die wichtigste Entwicklung in dieser Zeit ist die Modularisierung der Code-Teile gewesen, die einige Probleme löst, die durch den Austausch von Programmen durch Changesets entstehen.

Mit der zur Version 3.10.2 funktional äquivalenten Version 4.0 wurde, lange Zeit vorbereitet, der Schritt zur Lizenzierung unter der MIT-Lizenz vollzogen, wobei Teile unter der Apache-Lizenz 2.0 verblieben. Zuvor wurde eine eigene von Apple stammende Lizenz verwendet. Während des Relizenzierungsprozesses vorgenommene Weiterentwicklungen der Software wurden in Version 4.1 integriert.

Aufbau[Bearbeiten]

Als Grundlage diente die Apple-Smalltalk-80-Implementierung, die allerdings über weite Strecken aus 68020-Assembler bestand, der nicht portierbar war. Um Portierbarkeit zu erreichen, verwendete man die Programmiersprache C, die bei den Autoren zwar wegen der Portierbarkeit geschätzt war, die man aber trotzdem nicht gern mochte. Darum baute man zuerst einen Übersetzer, der SmaCC genannt wurde, der eine Untermenge von Smalltalk-Code in C-Code übersetzen konnte, sodass man die Portierbarkeit von C-Code genießen konnte, ohne die Sprache schreiben zu müssen.

Dieser Aufbau erlaubt dem einmal mit einem C-Compiler übersetzten und ausgeführten Code, sich selbst zu interpretieren, was das Suchen nach Fehlern im Interpreter erleichtert.

Das Speichermanagement ist zugunsten der Effektivität sehr komplex, da Wert darauf gelegt wurde, dass eine Integervariable nur 32 Bit im Speicher belegen solle. Auch für weitere Objektklassen wurden Sonderregeln eingeführt, um den Speicherverbrauch zu verringern. Daher muss für jedes Objekt erst einmal geprüft werden, ob es ein Integer ist oder irgendein anderes Objekt ist, wofür ein Bit jeder Referenz benutzt wird. Daher kann Squeak nur Ganzzahlen bis 31 Bit als echte Ganzzahlen vom Prozessor berechnen lassen.[6]

Siehe auch[Bearbeiten]

Weblinks[Bearbeiten]

 Commons: Squeak – Sammlung von Bildern, Videos und Audiodateien

Literatur[Bearbeiten]

  •  Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, Alan Kay: Back to the future: the story of Squeak, a practical Smalltalk written in itself. In: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications. Association for Computing Machinery, New York, NY 1997, ISBN 0-89791-908-4, S. 318–326, doi:10.1145/263698.263754 (PDF bei CiteSeer).
  • Goldberg, A. and Robson, D., Smalltalk-80: The Language and Its Implementation, Addison-Wesley, Reading, MA,1983.
  • Krasner, G., ed., Smalltalk-80, Bits of History, Words of Advice, Addison-Wesley, Reading, MA,1983.
  • Black, A. and Ducasse, S. and Nierstrasz, S. and Pollet, D., Squeak by Example, Square Bracket Associates, 2007 squeakbyexample.org

Einzelnachweise[Bearbeiten]

  1. Homepage der Squeak Foundation
  2. Wiki des Projektes OLPC: „Squeak“
  3. Wiki des Projektes OLPC: „Etoys“
  4. vgl. Mitteilung des Projektes OLPC vom 30. September 2006: „OLPC News (30. September 2006)“
  5. Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, Alan Kay: Back to the Future. The Story of Squeak, A Practical Smalltalk Written in Itself. 1997, archiviert vom Original am 15. Mai 2008, abgerufen am 23. Januar 2014 (englisch, über die Geschichte von Squeak).
  6. Squeak, Mark Guzdial, Kim Rose, 2002 bei Prentice Hall, ISBN 0-13-028091-7, Seiten 185 ff.