Squeak

Last updated
Squeak
Squeak.svg
Original 1996 logo by Tim Rowledge [1]
Squeak 51 morphic interface screenshot.png
Screenshot of the Squeak–Smalltalk Morphic user interface.
Paradigm object-oriented
Designed by Alan Kay, Dan Ingalls, Adele Goldberg
Developers The Squeak Community
First appeared1996;28 years ago (1996)
Stable release
"202312181441". / December 20, 2023;4 months ago (2023-12-20)
Typing discipline Dynamic
Platform Cross-platform
OS Cross-platform: Unix-like, macOS, iOS, Windows, more
License MIT, Apache
Filename extensions .image, .changes, .sources, .st
Website www.squeak.org
Major implementations
Squeak, Croquet
Dialects
Croquet, Newspeak, Pharo
Influenced by
Smalltalk, Lisp, Logo; Sketchpad, Simula; Self
Influenced
Etoys, Tweak, Croquet, Scratch

Squeak is an object-oriented, class-based, and reflective programming language. 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 would later go on to be supported by HP Labs, SAP, and most recently, Y Combinator.

Contents

Squeak runs on a 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 [2] written in Squeak.

Developers

Dan Ingalls, an important contributor to the Squeak project, wrote the paper [3] 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 frameworks:

Uses

Many Squeak contributors collaborate on Open Cobalt, a free and open source virtual world browser and construction toolkit built on Squeak.

The first version of Scratch was implemented in Squeak. [7]

OpenQwaq, a virtual conferencing and collaboration system, is based on Squeak. [8]

Squeak is also used in the Nintendo ES operating system. [9]

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, 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 [10] and has attained official approval from the Open Source Initiative [11] 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, and finally in March 2010, the result was released as Squeak 4.0, now under combined MIT and Apache licenses. [12]

See also

Related Research Articles

<span class="mw-page-title-main">Alan Kay</span> American computer scientist (born 1940)

Alan Curtis Kay is an American computer scientist best known for his pioneering work on object-oriented programming and windowing graphical user interface (GUI) design. At Xerox PARC he led the design and development of the first modern windowed computer desktop interface. There he also led the development of the influential object-oriented programming language Smalltalk, both personally designing most of the early versions of the language and coining the term "object-oriented." He has been elected a Fellow of the American Academy of Arts and Sciences, the National Academy of Engineering, and the Royal Society of Arts. He received the Turing award in 2003.

<span class="mw-page-title-main">Smalltalk</span> Object-oriented programming language released first in 1972

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 Learning Research Group (LRG) scientists, including Alan Kay, Dan Ingalls, Adele Goldberg, Ted Kaehler, Diana Merry, and Scott Wallace.

In computing, a virtual machine (VM) is the virtualization or emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve specialized hardware, software, or a combination of the two. Virtual machines differ and are organized by their function, shown here:

<span class="mw-page-title-main">Model–view–controller</span> Software design pattern

Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are:

SableVM was a clean room implementation of Java bytecode interpreter implementing the Java virtual machine (VM) specification, second edition. SableVM was designed to be a robust, extremely portable, efficient, and fully specifications-compliant Java Virtual Machine that would be easy to maintain and to extend. It is now no longer being maintained.

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 community from which much of Darwin originated.

VisualAge is a family of computer integrated development environments from IBM, which supports multiple programming languages. VisualAge was first released in October 1993 and was discontinued April 30, 2007 and its web page removed in September 2011. VisualAge was also marketed as VisualAge Smalltalk, and in 2005, Instantiations, Inc. acquired the worldwide rights to this product. IBM has stated that XL C/C++ is the followup product to VisualAge.

Morphic is an interface construction environment which uses graphical objects called "Morphs" for simplified GUI-building which allow for flexibility and dynamism. It was originally created for Self, but later, was ported to other programming languages like Squeak, JavaScript, Python, and Objective-C.

<span class="mw-page-title-main">Dan Ingalls</span> American computer scientist

Daniel Henry Holmes Ingalls Jr. 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 made Smalltalk practical in 1976. He also invented bit blit, the general-purpose graphical operation that underlies most bitmap computer graphics systems today, and pop-up menus. He designed the generalizations of BitBlt to arbitrary color depth, with built-in scaling, rotation, and anti-aliasing. He made major contributions to the Squeak version of Smalltalk, including the original concept of a Smalltalk written in itself and made portable and efficient by a Smalltalk-to-C translator.

The Croquet Project is a software project that was intended to promote the continued development of the Croquet open-source software development kit to create and deliver collaborative multi-user online applications. Croquet is implemented in Squeak Smalltalk.

Apache Harmony is a retired open source, free Java implementation, developed by the Apache Software Foundation. It was announced in early May 2005 and on October 25, 2006, the board of directors voted to make Apache Harmony a top-level project. The Harmony project achieved 99% completeness for J2SE 5.0, and 97% for Java SE 6. The Android operating system has historically been a major user of Harmony, although since Android Nougat it increasingly relies on OpenJDK libraries.

Jikes Research Virtual Machine is a mature virtual machine that runs programs written for the Java platform. Unlike most other Java virtual machines (JVMs), it is written in the programming language Java, in a style of implementation termed meta-circular. It is free and open source software released under an Eclipse Public License.

Tweak is a graphical user interface (GUI) layer written by Andreas Raab for the Squeak development environment, which in turn is an integrated development environment based on the Smalltalk-80 computer programming language. Tweak is an alternative to an earlier graphic user interface layer called Morphic. Development began in 2001.

Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.

<span class="mw-page-title-main">VirtualBox</span> Open-source x86 virtualization application

Oracle VM VirtualBox is a hosted hypervisor for x86 virtualization developed by Oracle Corporation. VirtualBox was originally created by InnoTek Systemberatung GmbH, which was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010.

<span class="mw-page-title-main">Open Cobalt</span> Software for creating virtual worlds

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.

<span class="mw-page-title-main">Pharo</span>

Pharo is a 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, and object-oriented programming language with a syntax closely resembling Smalltalk-80. It is free and open-source software, released under a mix of MIT, and Apache 2 licenses.

<span class="mw-page-title-main">DrGeo</span>

GNU Dr. Geo is an interactive geometry software that allows its users to design & manipulate interactive geometric sketches, including dynamic models of Physics. It is free software, created by Hilaire Fernandes, it is part of the GNU project. It runs over a Morphic graphic system. Dr. Geo was initially developed in C++ with Scheme scripting, then in various versions of Smalltalk with Squeak, Etoys_(programming_language) for One Laptop per Child Pharo then Cuis-Smalltalk.

<span class="mw-page-title-main">Amber Smalltalk</span>

Amber Smalltalk, formerly named Jtalk, is an implementation of the programming language Smalltalk-80, that runs on the JavaScript runtime of a web browser. It is designed to enable client-side development using Smalltalk. The programming environment in Amber is named Helios.

Ted Kaehler is an American computer scientist known for his role in the development of several system methods. He is most noted for his contributions to the programming languages Smalltalk, Squeak, and Apple Computer's HyperCard system, and other technologies developed at Xerox PARC.

References

  1. "Tim: Squeak Smalltalk" . Retrieved 2016-02-28.
  2. Miranda, Eliot; Béra, Clément; Gonzalez Boix, Elisa; Ingalls, Dan (2018). "Two decades of smalltalk VM development: live VM development through simulation tools". Proceedings of the 10th ACM SIGPLAN International Workshop on Virtual Machines and Intermediate Languages (PDF). ACM Digital Library. pp. 57–66. doi:10.1145/3281287.3281295. ISBN   9781450360715. S2CID   53116661. Archived (PDF) from the original on 2022-10-09. Retrieved 2020-11-09.
  3. Ingalls, Dan; Kaehler, Ted; Maloney, John; Wallace, Scott; Kay, Alan (1997). "Back to the Future: the story of Squeak, a practical Smalltalk written in itself". ACM SIGPLAN Notices. 32 (10). ACM Digital Library: 318–326. doi: 10.1145/263700.263754 .
  4. "Tweak: OriginalTweakMemo". Tweakproject.org. 2001-07-06. Archived from the original on 2011-10-02. Retrieved 2011-06-12.
  5. "Tweak: Whitepapers". Tweakproject.org. Archived from the original on 2011-10-02. Retrieved 2011-06-12.
  6. Burbeck, Steve (1997-04-04). "How to use Model-View-Controller (MVC)". St-www.cs.uiuc.edu. Archived from the original on 2009-08-01. Retrieved 2011-06-12.
  7. "Scratch". wiki.squeak.org. Retrieved 2022-03-23.
  8. "Moving Immersive Collaboration Forward". 3 May 2011.
  9. Sheffield, Brandon (2007-12-04). "Inside Nintendo's ES Open-Source Operating System". Game Developer . Retrieved 2024-03-05.
  10. "FSF's Opinion on the Apple Public Source License (APSL) 2.0". Gnu.org. 2011-05-07. Retrieved 2011-06-12.
  11. "Clarification of the APSL: Press Releases OS Clarifies The Status Of The APSL". Opensource.org. 1999-03-17. Retrieved 2011-06-12.
  12. "Squeak 4.0 released - now under MIT/Apache license". The H Open. 2010-03-16. Retrieved 2011-06-12.