Squeak

From Organic Design wiki
Revision as of 02:54, 25 January 2011 by Nad (talk | contribs) (The Squeak Interpreter)

Squeak is a modern, open source full-featured implementation of the powerful Smalltalk programming language and environment. Squeak is highly-portable - even its virtual machine is written entirely in Smalltalk making it easy to debug, analyse, and change. Squeak is the vehicle for a wide range of projects from multimedia applications, educational platforms to commercial web application development.

One aspect of the Squeak implementation that is of importance to us at Organic Design is that it unifies the run-time and development environments - i.e. there's just one persistent object environment that's always "running".

Another aspect important to us is self containment, this unified runtime environment contains all the Squeak source for the system itself, and this is changeable from within the Squeak environment.

About Squeak

Squeak may be downloaded at no cost, including all its source code. Unlike other languages, Squeak is distributed in a prebuilt virtual machine image form rather than bootstrappable source code.

There has been much debate as to whether the Squeak license qualifies as free software or not, due to the presence of an indemnity clause in the original Squeak License. Version 1.1 of the environment, originally released on October 1997 under the Squeak License, then released in May 2006 under the free and open source Apple Public Source License, then in 2008 relicensed again under the Apache License allowing inclusion in the OLPC initiative. Many of the Squeak community were still unhappy with the licencing and in 2008 a fork of Squeak called Pharo was created to have a Smalltalk that is under an official open-source licence. However in 2010, Squeak too was cleaned and licensed under the same MIT licence as Pharo.

The Squeak Interpreter

The current Squeak interpreter combines a classic ST-80 interpreter with a simple yet efficient 32-bit direct-pointer object memory, and incremental garbage collector. It also includes a BitBlt graphics system that supports 1-, 2-, 4-, and 8-bit indexed colors, as well as 16- and 32-bit rgb colors, plus a "warp drive" that supports fast rotations and other affine transformations, as well as simple anti-aliasing. Other notable, and equally portable, abilities of Squeak include 16-bit sound input and output, and support for sockets and internet access.

That design, and adhering, for better or worse, to the image model (the entire state of Squeak is manifest in an image file), yielded a system of extreme portability and sharability. Any image file will run on any interpreter even if it was saved on very different hardware, with a very different OS, or no OS! Squeak's portability and sharability, plus its malleability (since it is all in Smalltalk, a competent Smalltalker can change anything about it), has aroused much interest in the academic community, and what I will call the "independent" computer science community. By this phrase, I include people who are not so interested in one language or OS over another, but who have some passion (numerical analysis, graphics, distributed computing, music synthesis, O-O education, etc.) and want a system that can provide the most flexible and immediate command over experiments in their field of interest.

See also