Squeak is an
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
,
class-based, and
reflective programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming l ...
. It was derived from
Smalltalk-80 by a group that included some of Smalltalk-80's original developers, initially at
Apple Computer
Apple Inc. is an American multinational technology company headquartered in Cupertino, California, United States. Apple is the largest technology company by revenue (totaling in 2021) and, as of June 2022, is the world's biggest company ...
, then at
Walt Disney Imagineering
Walt Disney Imagineering Research & Development, Inc., commonly referred to as Imagineering, is the research and development arm of The Walt Disney Company, responsible for the creation, design, and construction of Disney theme parks and attr ...
, where it was intended for use in internal Disney projects. The group would later go on to be supported by
HP labs
HP Labs is the exploratory and advanced research group for HP Inc. HP Labs' headquarters is in Palo Alto, California and the group has research and development facilities in Bristol, UK. The development of programmable desktop calculators, ink ...
,
SAP
Sap is a fluid transported in xylem cells (vessel elements or tracheids) or phloem sieve tube elements of a plant. These cells transport water and nutrients throughout the plant.
Sap is distinct from latex, resin, or cell sap; it is a separ ...
, and most recently,
Y Combinator
Y Combinator (YC) is an American technology startup accelerator launched in March 2005. It has been used to launch more than 3,000 companies, including Airbnb, Coinbase, Cruise, DoorDash, Dropbox, Instacart, Quora, PagerDuty, Reddit, Str ...
.
Squeak runs on a
virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
(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
Alan Curtis Kay (born May 17, 1940) published by the Association for Computing Machinery 2012 is an American computer scientist best known for his pioneering work on object-oriented programming and windowing graphical user interface (GUI) d ...
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 f ...
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
Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of infor ...
(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 programmers who wished to use this older type of interface.
Uses
Many Squeak contributors collaborate on
Open Cobalt, a
free
Free may refer to:
Concept
* Freedom, having the ability to do something, without having to obey anyone/anything
* Freethought, a position that beliefs should be formed only on the basis of logic, reason, and empiricism
* Emancipate, to procur ...
and
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
virtual world
A virtual world (also called a virtual space) is a computer-simulated environment which may be populated by many users who can create a personal avatar, and simultaneously and independently explore the virtual world, participate in its activitie ...
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
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
image licensed under the
MIT License
The MIT License is a permissive free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license co ...
, 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
In contract law, an indemnity is a contractual obligation of one party (the ''indemnitor'') to compensate the loss incurred by another party (the ''indemnitee'') due to the relevant acts of the indemnitor or any other party. The duty to indemni ...
that prevented it from qualifying as true
free and open-source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
.
In 2006, Apple
relicensed Squeak twice. First, in May, Apple used its own
Apple Public Source License
The Apple Public Source License (APSL) is the open-source and free software license under which Apple's Darwin operating system was released in 2000. A free and open-source software license was voluntarily adopted to further involve the communit ...
, which satisfies the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985, to support the free software movement, with the organization's preference for software being distributed under copyleft ("s ...
's concept of a Free Software License and has attained official approval from the
Open Source Initiative
The Open Source Initiative (OSI) is the steward of the Open Source Definition, the set of rules that define open source software. It is a California public-benefit nonprofit corporation, with 501(c)(3) tax-exempt status.
The organization w ...
as an Open Source License. However, The Apple Public Source License fails to conform to the
Debian Free Software Guidelines
The Debian Free Software Guidelines (DFSG) is a set of guidelines that the Debian Project uses to determine whether a software license is a free software license, which in turn is used to determine whether a piece of software can be included in Deb ...
. 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 free software license originating at the Massachusetts Institute of Technology (MIT) in the late 1980s. As a permissive license, it puts only very limited restriction on reuse and has, therefore, high license co ...
, and finally in March 2010, the end result was released as Squeak 4.0, now under combined MIT and Apache licenses.
Squeak virtual machine
The ''Squeak virtual machine'' is a family of
virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized har ...
s (VMs) used in
Smalltalk
Smalltalk is an object-oriented, dynamically typed reflective programming language. It was designed and created in part for educational use, specifically for constructionist learning, at the Learning Research Group (LRG) of Xerox PARC by ...
programming language implementations.
They are an essential part of any Smalltalk implementation. All are
open-source software
Open-source software (OSS) is computer software that is released under a license in which the copyright holder grants users the rights to use, study, change, and distribute the software and its source code to anyone and for any purpose. Ope ...
. The current VM is a high performance dynamic translation system. The relevant code is maintained in th
OpenSmalltalk/opensmalltalk-vmrepository on GitHub.
Other Squeak virtual machines
CogVMRoarVMSqueakJSStack interpreter VMRSqueak/VMTruffleSqueakref>
See also
*
List of open-source programming languages
*
Alice (software)
*
Croquet Project
*
Pharo
*
Seaside (software)
Seaside, an acronym that stands for “Squeak Enterprise Aubergines Server with Integrated Development Environment,” is computer software, a web framework to develop web applications in the programming language Smalltalk. It is distributed as ...
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