Squeak is an
object-oriented,
class-based, and
reflective programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
. It was derived from
Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at
Apple Computer, then at
Walt Disney Imagineering, where it was intended for use in internal Disney projects. The group later was supported by
HP Labs,
SAP, and most recently,
Y Combinator
Y Combinator, LLC (YC) is an American technology startup accelerator and venture capital firm launched in March 2005 which has been used to launch more than 5,000 companies. The accelerator program started in Boston and Mountain View, Californi ...
.
Squeak runs on a
stack virtual machine (VM), allowing for a high degree of portability. The Squeak system includes code for generating a new version of the VM on which it runs, along with a VM simulator
written in Squeak.
Developers
Dan Ingalls, an important contributor to the Squeak project, wrote the paper upon which Squeak is built, and constructed the architecture for five generations of the Smalltalk language.
Alan Kay is an important contributor to the Squeak project, and Squeak incorporates many elements of his proposed
Dynabook concept.
User interface frameworks
Squeak includes four
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine fro ...
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 novel, 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. This resulted in 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. 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.
* A
model–view–controller (MVC) interface was the primary UI in Squeak versions 3.8 and earlier. It derived from the original Smalltalk-80 user interface framework which first introduced and popularized the MVC architectural pattern. MVC takes its name from 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 still provided for those wishing to use this older type of interface.
Uses
Many Squeak contributors collaborate on
Open Cobalt, a
free and
open source virtual world
A virtual world (also called a virtual space or spaces) is a Computer simulation, computer-simulated environment which may be populated by many simultaneous users who can create a personal Avatar (computing), avatar and independently explore th ...
browser and construction toolkit built on Squeak.
The first version of
Scratch was implemented in Squeak.
OpenQwaq, a virtual conferencing and collaboration system, is based on Squeak.
Squeak is also used in the Nintendo ES operating system.
License
Squeak 4.0 and later may be downloaded at no cost, including source code, as a prebuilt
virtual machine image licensed under the
MIT License
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
, with the exception of some of the original Apple code, which is governed by the
Apache License.
Squeak was originally released by Apple under its own ''Squeak License''. While source code was available and modification permitted, the Squeak License contained an
indemnity clause that prevented it from qualifying as true
free and open-source software.
In 2006, Apple
relicensed Squeak twice. First, in May, Apple used its own
Apple Public Source License, which satisfies the
Free Software Foundation's concept of a Free Software License and has attained official approval from the
Open Source Initiative as an Open Source License. However, The Apple Public Source License fails to conform to the
Debian Free Software Guidelines. To enable inclusion of
Etoys in the
One Laptop Per Child project, a second relicensing was undertaken using the Apache License. At this point, an effort was also made to address the issue of code contributed by members of the Squeak community, which it was not in Apple's power to unilaterally relicense.
For each contribution made under the Squeak License since 1996, a relicensing statement was obtained authorizing distribution under the
MIT license
The MIT License is a permissive software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts very few restrictions on reuse and therefore has high license compatibility.
Unl ...
, and finally in March 2010, the result was released as Squeak 4.0, now under combined MIT and Apache licenses.
See also
*
Alice (software)
*
Croquet Project
*
Pharo
*
Seaside (software)
References
External links
*
{{Authority control
Programming languages
Apple Inc. software
Class-based programming languages
Disney technology
Dynamic programming languages
Dynamically typed programming languages
Educational programming languages
Free educational software
Programming languages created by women
Smalltalk programming language family
Software using the MIT license
Visual programming languages
High-level programming languages
Multi-paradigm programming languages
Cross-platform free software
Programming languages created in 1996
1996 software