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 .
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 .
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.