Squeak is an
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impleme ...
,
class-based
Class-based programming, or more commonly class-orientation, is a style of object-oriented programming (OOP) in which inheritance occurs via defining ''classes'' of objects, instead of inheritance occurring via the objects alone (compare prototyp ...
, and
reflective
Reflection is the change in direction of a wavefront at an interface between two different media so that the wavefront returns into the medium from which it originated. Common examples include the reflection of light, sound and water waves. The ...
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
Smalltalk is a purely object oriented programming language (OOP) that was originally created in the 1970s for educational use, specifically for constructionist learning, but later found use in business. It was created at Xerox PARC by Learni ...
-80 by a group that included some of Smalltalk-80's original developers, initially at
Apple Computer
Apple Inc. is an American multinational corporation and technology company headquartered in Cupertino, California, in Silicon Valley. It is best known for its consumer electronics, software, and services. Founded in 1976 as Apple Computer Co ...
, then at
Walt Disney Imagineering
Walt Disney Imagineering Research & Development, Inc.—commonly referred to as Walt Disney Imagineering, Imagineering, or WDI—is the research and development arm of The Walt Disney Company, responsible for the creation, design, and construc ...
, where it was intended for use in internal Disney projects. The group later was 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, 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
Daniel Henry Holmes Ingalls Jr. (born 1944) is a pioneer of object-oriented computer programming and the principal architect, designer and implementer of five generations of Smalltalk environments. He designed the bytecoded virtual machine that m ...
, 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 who pioneered work on object-oriented programming and windowing graphical user interface (GUI) design. At Xerox ...
is an important contributor to the Squeak project, and Squeak incorporates many elements of his proposed
Dynabook
The KiddiComp concept, envisioned by Alan Kay in 1968 while a PhD candidate, and later developed and described as the Dynabook in his 1972 proposal "A personal computer for children of all ages", outlines the requirements for a conceptual porta ...
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
In philosophy, the self is an individual's own being, knowledge, and values, and the relationship between these attributes.
The first-person perspective distinguishes selfhood from personal identity. Whereas "identity" is (literally) same ...
's graphical
direct manipulation interface framework. This is Squeak's main interface.
* Tile-based, limited
visual programming
In computing, a visual programming language (visual programming system, VPL, or, VPS), also known as diagrammatic programming, graphical programming or block coding, is a programming language that lets users create programs by manipulating prog ...
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 divides the related program logic into three interconnected elements. These elements are:
* the model, the internal representat ...
(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
Open Cobalt is a free and open-source software platform for constructing, accessing, and sharing virtual worlds both on local area networks or across the Internet, with no need for centralized servers.
The technology makes it easy to create deepl ...
, a
free and
open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
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
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
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
The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software ...
.
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
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 ...
clause that prevented it from qualifying as true
free and open-source software
Free and open-source software (FOSS) is software available under a license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term encompassing free ...
.
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 commu ...
, 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. The organisation supports the free software movement, with the organization's preference for software being distributed ...
's concept of a Free Software License and has attained official approval from the
Open Source Initiative
The Open Source Initiative (OSI) is a California public benefit corporation "actively involved in Open Source community-building, education, and public advocacy to promote awareness and the importance of non-proprietary software".
Governance
The ...
as an Open Source License. However, The Apple Public Source License fails to conform to the
Debian Free Software Guidelines
''The Open Source Definition'' (OSD) is a policy document published by the Open Source Initiative. Derived from the Debian Free Software Guidelines written by Bruce Perens, the definition is the most common standard for open-source software. ...
. 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
The Croquet Project is a software project that was intended to promote the continued development of the Croquet open-source software, open-source software development kit to create and deliver collaborative multi-user online application software ...
*
Pharo
Pharo is a Cross-platform software, cross-platform implementation of the classic Smalltalk-80 programming language and runtime system. It is based on the OpenSmalltalk virtual machine (VM) named Cog, which evaluates a dynamic, Reflective progr ...
*
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 fr ...
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