Squeak

from Wikipedia, the free encyclopedia
Squeak

Squeak.svg
Basic data

developer The Squeak Community
Publishing year 1996
Current  version 5.3-19436
( May 3, 2020 )
operating system Windows , Linux , macOS , RISC OS etc. a.
programming language C.
category object-oriented programming language
License MIT license , partly Apache license 2.0
German speaking Yes
squeak.org , squeak.de

Squeak is a dialect of the Smalltalk programming language and a development environment . It was developed by a working group at Apple Computer that included some of the original Smalltalk-80 developers such as Alan Kay , Dan Ingalls, and others. a. belonged. This group continued this development at Walt Disney Imagineering , where Squeak should be used for internal projects. Squeak is being further developed today by a worldwide free community, with the 3-dimensional multi-user environment Croquet based on Squeak being an important branch of this further development, which is supported by original Smalltalk 80 developers, well-known scientific institutes and IT companies. Since 2009 the further development has been continued in the Open Cobalt project.

Squeak enables computer simulations that children can develop and carry out themselves. The development of Squeak was sponsored for a time by the company "Walt Disney Imageneering", because Squeak was supposed to be a tool to help preschool children learn. It was expressly not about bringing children into contact with technology at an early age.

Rapid reprogramming and improvement of the existing one at any time is advantageous. In addition, Squeak does not require an abstract programming language, but can be controlled graphically using simple options. The graphical user interface is called Morphic in Squeak .

Etoys

Example of the auto simulation described

Squeak was expanded mainly by Alan Kay to be usable by children. That part of Squeak is called Etoys.

Using the example of an auto simulation, the input in Etoys is illustrated below: First, the child creates a graphic object, e.g. B. a car. Then it draws another object, e.g. B. a colored street. Finally, all that remains to be done is to set the appropriate logical conditions so that the car can drive independently on this colored road. After entering the conditions, the child can then start the simulation and observe which results his logical instructions produce. The trial-and-error process enables children to visually and thus immediately perceive logical connections between instruction and reaction.

The simulation created can then also be saved in the Smalltalk language . The written programs are clearly summarized in folders (the so-called changeset) to enable the simulations developed by the children to be easily exchanged with one another.

100 dollar laptop

Squeak is available on student laptops as part of the One-Laptop-Per-Child ("$ 100 Laptop") project . The student laptops are to be provided with a basic set of so-called EToys in order to be able to give the students an age-appropriate introduction to logical thinking and programming from the beginning . Squeak was relicensed under the free Apache license for the student laptop .

history

Squeak's design largely follows the books by Adele Goldberg and David Robson (known as the Blue Book ) and by Glen Krasner ( Green Book ). There the Smalltalk programming environment is defined, which Squeak offers with a few variations, such as an additional different syntax.

The plan to develop Squeak arose in December 1995. The aim was to develop software that could teach users without requiring much prior knowledge.

Squeak was first published in September 1996 as the first free small talk. Dan Ingalls , Ted Kaehler , John Maloney , Scott Wallace and Alan Kay write in "The Story of Squeak" that they felt that it was working out what failed in 1980. Three weeks later, the first Unix port was published by Ian Piumerta . Until today (as of March 2010) it is continuously developed. The most important development during this time has been the modularization of the code parts, which solves some problems that arise from replacing programs with changesets .

With version 4.0, which is functionally equivalent to version 3.10.2, the step towards licensing under the MIT license was completed for a long time , with parts remaining under the Apache license 2.0 . Previously, a proprietary Apple license was used. Further developments of the software made during the relicensing process have been integrated in version 4.1.

In 2008 Pharo was published as a fork by Squeak.

construction

The basis was the Apple Smalltalk 80 implementation, which, however, consisted largely of 68020 assembler, which was not portable. In order to achieve portability, the programming language C was used, which was appreciated by the authors for its portability, but which they nevertheless did not like. So they first built a translator called SmaCC that could translate a subset of Smalltalk code into C code so that one could enjoy the portability of C code without having to write the language.

This structure allows the code, which has been translated and executed once with a C compiler, to interpret itself, which makes it easier to search for errors in the interpreter.

The memory management is very complex for the sake of effectiveness, since emphasis was placed on the fact that an integer variable should only occupy 32 bits in the memory. Special rules have also been introduced for other object classes in order to reduce memory consumption. Therefore, it must first be checked for each object whether it is an integer or any other object, for which a bit of each reference is used. Therefore Squeak can only calculate integers up to 31 bits as real integers from the processor.

See also

literature

  • 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 , pp. 318–326 , doi : 10.1145 / 263698.263754 (English, PDF at CiteSeer ).
  • A. Goldberg, D. Robson: Smalltalk-80: The Language and Its Implementation. Addison-Wesley, Reading, MA 1983.
  • G. Krasner (Ed.): Smalltalk-80, Bits of History, Words of Advice. Addison-Wesley, Reading, MA, 1983.
  • A. Black, S. Ducasse, S. Nierstrasz, D. Pollet: Squeak by Example. Square Bracket Associates, 2007 (squeakbyexample.org)

Web links

Commons : Squeak  - collection of images, videos and audio files

Individual evidence

  1. files.squeak.org . (accessed on May 25, 2020).
  2. The p_4984 Open Source Project on Open Hub: Languages Page . In: Open Hub . (accessed on September 26, 2018).
  3. Squeak.org: Squeak / Smalltalk. Retrieved May 25, 2020 .
  4. Wiki of the OLPC project: "Squeak"
  5. Wiki of the OLPC project: "Etoys"
  6. cf. Announcement of the OLPC project from September 30, 2006: "OLPC News (September 30, 2006)" ( Memento from March 11, 2007 in the Internet Archive )
  7. ^ Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, Alan Kay: Back to the Future. The Story of Squeak, A Practical Smalltalk Written in Itself. (No longer available online.) 1997, archived from the original on May 15, 2008 ; Retrieved January 23, 2014 (about the history of Squeak).
  8. Pharo Open Source Smalltalk - Home. December 18, 2008, accessed May 25, 2020 .
  9. Mark Guzdial, Kim Rose: Squeak. Prentice Hall, 2002, ISBN 0-13-028091-7 , pp. 185 ff.