Squeak
   HOME

TheInfoList



OR:

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 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. 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 ...
. 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 attra ...
, 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, in ...
, SAP, 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, St ...
. 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 h ...
(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 tha ...
, 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 In computing, a visual programming language (visual programming system, VPL, or, VPS) is any programming language that lets users create programs by manipulating program elements ''graphically'' rather than by specifying them ''textually''. A ...
scripting in
Etoys EToy or EToys may refer to: * Etoy, Switzerland, a small town * Etoys (programming language), an educational programming language * eToys.com, a Dot-com era company/website * etoy, a conceptual art group * Electronic toys, typically built for and ...
, 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 info ...
(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 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 the source code, design documents, or content of the product. The open-source model is a decentralized so ...
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 activities ...
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 h ...
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 comp ...
, 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 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 communi ...
, 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 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 wa ...
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 De ...
. To enable inclusion of
Etoys EToy or EToys may refer to: * Etoy, Switzerland, a small town * Etoys (programming language), an educational programming language * eToys.com, a Dot-com era company/website * etoy, a conceptual art group * Electronic toys, typically built for and ...
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 comp ...
, 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 h ...
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 Alan ...
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. ...
. The current VM is a high performance dynamic translation system. The relevant code is maintained in th
OpenSmalltalk/opensmalltalk-vm
repository on GitHub.


Other Squeak virtual machines


CogVMRoarVMSqueakJSStack interpreter VMRSqueak/VMTruffleSqueak
ref>


See also

* List of open-source programming languages *
Alice (software) Alice is an object-based educational programming language with an integrated development environment (IDE). Alice uses a drag and drop environment to create computer animations using 3D models. The software was developed first at University of ...
*
Croquet Project Croquet OS is a web-based operating system for creating three-dimensional apps with multi-user functionalities that run simultaneously on any device. Croquet can be used for communication, online gaming environments such as massively multipl ...
*
Pharo Pharo is an open source, cross-platform implementation of the classic Smalltalk-80 programming language and runtime. It's based on the OpenSmalltalk virtual machine called Cog (VM), which evaluates a dynamic, reflective, and object-orient ...
* 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