From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search
Paradigm object-oriented
Appeared in 1996
Designed by Alan Kay, Dan Ingalls, Adele Goldberg
Developer Alan Kay, Dan Ingalls, Ted Kaehler, Scott Wallace, John Maloney, Andreas Raab, Mike Rueger
Stable release 3.10 (5 May 2008)
Typing discipline dynamic
Major implementations Squeak, Croquet
Influenced by Smalltalk, Lisp, Logo; Sketchpad, Simula; Self
Influenced Etoys, Tweak, Croquet, Scratch
Website http://www.squeak.org/
Screenshot of the Squeak VM running under X11.

The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers. Its development was continued by the same group at Walt Disney Imagineering, where it was intended for use in internal Disney projects. Some Squeak users[who?] refer to Squeak as a programming language rather than as a Smalltalk implementation. It is object-oriented, class-based, and reflective. Squeak is available for many platforms, and programs produced on one platform run bit-identical on all other platforms. The Squeak system includes code for generating a new version of the virtual machine (VM) on which it runs. It also includes a VM simulator written in itself (Squeak). For this reason, it is easily ported.



Dan Ingalls is one of the important contributors to the Squeak project. Ingalls wrote the paper "Back to the Future: the story of Squeak, a practical Smalltalk written in itself", as well as built the architecture for five generations of the Smalltalk language upon which Squeak is built. Squeak incorporates many of the elements Alan Kay proposed in the Dynabook concept, which he formulated in the 1960s. Kay is an important contributor to the Squeak project. Andreas Raab seems to have the most commits.

User interface frameworks

Squeak includes a number of user interface frameworks:

  • An implementation of Morphic, Self's graphical direct manipulation interface framework. This is Squeak's main interface.
  • Tile-based, limited visual programming scripting in Etoys, based on Morphic.
  • A new, experimental interface called Tweak. In 2001, it became clear that the Etoy architecture in Squeak had reached its limits in what the Morphic interface infrastructure could do. Hewlett-Packard researcher Andreas Raab proposed defining a "script process" and providing a default scheduling mechanism that avoids several more general problems.[1] The result was a new user interface, proposed to replace the Squeak Morphic user interface in the future. Tweak added mechanisms of islands, asynchronous messaging, players and costumes, language extensions, projects, and tile scripting.[2] Its underlying object system is class-based, but to users, during programming (scripting), it acts like it is prototype-based. Tweak objects are created and run in Tweak project windows.
  • MVC, derived from the original Smalltalk-80 user interface framework which first introduced and popularized the Model-View-Controller architectural pattern[3] (so named after the three core classes of the framework). Thus, the term "MVC" in the context of Squeak refers to both one of the available user interface frameworks and the pattern the framework follows. MVC is provided for programmers who wish to use this older type of interface.


Many Squeak contributors collaborate on the free and open source Croquet project, which is built on Squeak, and offers a networked, real time, collaborative workspace with 2D and 3D abilities.

Squeak is also used in the es operating system and for implementing the Scratch programming language for beginning programmers.


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 is some 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, has been released in May 2006 under the free and open source Apple Public Source License. It has been relicensed under the Apache License allowing inclusion in the One Laptop Per Child initiative.[4]

Pharo fork of Squeak

Unrest in the Squeak community led to a fork of the Squeak project into the Pharo project in 2008. The issues were mainly about three proposed changes:[citation needed]

  1. (Open development process) The development process for the Squeak main image was perceived as not open enough to all community members.
  2. (Clear MIT licencing) The licence of Squeak was doubted to be an Open Source licence, and it was doubted whether the licence of Squeak violated the rights of contributors who had never agreed to its terms.
  3. (Frequent updates) The release process of Squeak was perceived as too infrequent.
  4. (Slim stable core image) The main release of Squeak offered a wide code range of vastly varying quality, while some community members preferred to have a stable and slim platform which can then be extended.

In detail: Squeak Smalltalk was used with two different directions, as an implementation of EToys, which allows teaching children both programming and other subjects using computer programming (graphically). Pharo is now organized as a benevolent dictatorship of the community members who previously felt that they did not have enough influence. However, committing into the repository is open to everyone, including non-community members.

While Squeak faces some licence trouble because some of the code was never acknowledged by all of its contributors to be published as open source, Pharo has a policy that enforces every contributor to agree to publishing under the MIT Licence. Squeak is shipped under the Squeak licence, which is not an approved OSI open source licence.[5]

While Squeak kept stable releases for years, many community members needed code with integrated bugfixes faster than that. Especially the Seaside community had a fast update cycle and needed the language to react faster to bug fixes. Therefore, prior to Pharo, an unofficial release of Squeak was regularly released by Damien Cassou with recent bugfixes integrated. In a sense, Pharo emerged as the canonization of this process.

In Pharo, much unessential code was removed. Many packages that are integrated into the Squeak base distribution are optional in Pharo.

Pharo serves as the reference implementation of Seaside.[6]

See also


  1. http://tweakproject.org/ABOUT/FAQ/OriginalTweakMemo/
  2. http://tweakproject.org/TECHNOLOGY/Whitepapers/
  3. http://st-www.cs.uiuc.edu/users/smarch/st-docs/mvc.html
  4. http://laptop.media.mit.edu/laptopnews.nsf/2e76a5a80bc36cbf85256cd700545fa5/fd078b45d9ffd8e7852571f9005be555?OpenDocument
  5. Squeak Swiki: Squeak-L is not OSI compatible
  6. Seaside homepage: "Seaside 2.9 is current implemented on Pharo that serves as a reference implementation."

External links


cs:Squeak de:Squeak el:Squeak es:Squeak fr:Squeak ko:스퀵 ja:Squeak pl:Squeak ru:Squeak sk:Squeak sv:Squeak

Personal tools

Served in 0.560 secs.