Squeak is a free implementation of the Smalltalk programming language .


Squeak is a dynamic programming environment, originally designed for educational applications. It is a powerful implementation of the Smalltalk language , based on a virtual machine written largely in Smalltalk itself.

Squeak is the result of work initially carried out at Xerox PARC , then at Apple and finally at Disney Interactive by a team formed around Dan Ingals and Alan Kay .

Originally designed for young or novice audiences in computer science, it is today the subject of several contributions that go beyond the framework of education itself. Among others, Croquet, a complete 3D environment project or Kedama, a multi-agent simulation tool.

Squeak and education

Squeak is the heir of the Logo in the approach he proposes to the interaction computer-education. It falls within the theoretical frameworks of developmental psychology and the ideas of psychologists such as Baldwin , Piaget or Vygotski . It is a micromonde-type computing environment .

Alan Kay , one of the founding fathers of Squeak, designer of the Dynabook , and follows the lead Papert and Minsky to offer a programming environment for children: the idea of this tool is to offer a large area of freedom , In which children can express their ideas and explore their consequences (see also constructivism , theory of activity ).

One of the special aspects of the Squeak environment is the concept of E-Toys, a concretization, in the form of drawings that one creates oneself, of the notion of object .

Squeak was selected to be part of the One Laptop per Child project .

Technical aspects

Squeak is entirely programmed in Squeak, dialect of Smalltalk . The underlying virtual machine is written in Slang (a less object oriented subset of Smalltalk) and then translated into C by a Squeak program and compiled for the targeted platform.

In Squeak, we find an implementation of Morphic , the graphical architectural structure of direct manipulation of Object programming language Self . Morphic is an alternative to the traditional Smalltalk-80 Model View Controller (MVC), which is still available in Squeak.

On the other hand, Squeak is multimedia-oriented. It integrates wav, mp3, flash, midi, voice and sound synthesizers, 2D and 3D APIs, character recognition, but also manages the network: server and web browser, XML support , Email reader, etc.

Based on a virtual machine mechanism , Squeak has been ported to many platforms. It is available on GNU / Linux , Microsoft Windows , BSD , Apple Mac OS X , BeOS , AmigaOS , as well as some personal assistants .

Development environment

Squeak offers a development environment that includes tools similar to those found in all Smalltalk environments (object inspector, class browsers, refactoring tools), but some of which are more original:

  • Refactoring Browser : allows you to easily view all Squeak source code stored in packets, classes, protocols and methods.It has functions for code transformations:
    • Renaming a class , method, or variable automatically reflected on all instances of the name of that class in the source code.
    • One-click creation of accessors when adding an instance variable.
    • Extraction of a part of a method in another method (factorization of the code).
  • Method Finder : allows to find a method in all the code by giving it a list of parameters (order not necessary) and an expected result. Examples:
MethodFinder methodFor: #( ('Squeak is a programming environment' 6) 'Squeak')
Returned result:
'(data1 truncateTo: data2) '
→ You must use the method truncateTo:to have the beginning of a string.
MethodFinder methodFor: #( #(#(4 2 3 1)) #(1 2 3 4))
Returned result:
'(data1 asSortedArray) (data1 sort) '
→ There are two methods for sorting an array.
  • Workspace : allows you to train by typing Smalltalk commands and seeing their results immediately.
  • Browser for unit testing, browser for package version management, etc.