It was derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers.
Its development was continued by the same group at Walt Disney Imagineering, where it was intended for use in internal Disney projects.
Squeak is available for many platforms, and programs produced on one platform run bit-identical on all other platforms.
The Squeak system includes code for generating a new version of the virtual machine (VM) on which it runs. It also includes a VM simulator written in itself (Squeak).
For this reason, it is easily ported.
Dan Ingalls, an important contributor to the Squeak project, wrote the paper and constructed the architecture for five generations of the Smalltalk language upon which Squeak is built.
Squeak incorporates many of the elements Alan Kay proposed in the Dynabook concept, which he formulated in the 1960s. Kay is an important contributor to the Squeak project.
Squeak includes a number of user interface 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 new, 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.
The result was 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.
In Squeak versions 3.8 and earlier, the MVC interface. It is derived from the original Smalltalk-80 user interface framework which first introduced and popularized the model-view-controller architectural pattern (so named after 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 was provided for programmers who wished to use this older type of interface.
Many Squeak contributors collaborate on Open Cobalt, a free and open source virtual world browser and construction toolkit application which is built on Squeak.
Squeak is also used in the es operating system and for implementing the Scratch programming language for beginning programmers. In May 2011 the OpenQwaq virtual conferencing and collaboration system based on Squeak, an open source release of Teleplace, was announced on the Teleplace blog.
Smalltalk, the language, is:
- Dynamically Typed
- Strongly Typed
- Garbage Collected
- Purely Object-Oriented
- Open Source
- Squeak's virtual machine is developed using Squeak itself. It is possible to execute and debug Squeak inside Squeak
- Squeak can be used for Web Application Development.
- See the Croquet project and Balloon for examples of Interactive 3D in Squeak
- Squeak has superb multi-media potential
- Squeak is internationalised! It supports Unicode and Localization for multi-lingual applications.
- Squeak is a persistent environment - when you save your image, every thing right down to the position of windows and text is saved.
- Squeak itself is an IDE. You can code, run and debug in the same environment.
- Squeak uses incremental compiling - once you've saved your code, it's ready to run
Squeak 4.2 Released
Squeak 4.2 has been released after nine months in development. 4.2 is cleaner and faster than 4.1, with a significant number of fixes and enhancements to the class-library, such as an API for accessing the operating system stdio. There were low-level core improvements too, such as the new microsecond-precision internal clock and legacy MVC support. IDE productivity is higher with the text-editor enhancements, and a new gesture for efficiently resizing and moving windows. Squeak 4.2 is compatible with the next-generation Cog VM.
Squeak 4.0 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.
Originally, Apple actually released Squeak under a license called the "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. The Apple Public Source License, as it turns out, fails to pass the third standard that Free and Open Source Software licenses are held to: the Debian Free Software Guidelines promulgated by the Debian project, an influential volunteer-run GNU/Linux distribution. 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 end result was released as Squeak 4.0, now under combined MIT and Apache licenses.
Below is a list of the most popular projects in Squeak. There is also a larger list available on SqueakSource.
- Monticello is a packaging system for Squeak (similar to CVS and Store for VisualWorks)
- SqueakMap is a world-wide catalog of packages developed in Squeak
- SqueakSource is the Squeak SourceForge that supports distributed development
Differences between the above explained in this posting
- SUnit Tests are Unit Testing controls built-in to the environment.
- Refactoring Browser is a powerful Smalltalk Browser which allows the programmer to perform various automated refactorings on Smalltalk source code such as renaming variables and methods
- Magma is an implementation of an OODB (object oriented database) in Smalltalk
- Squeakland is the main access point for Squeak and education
- Etoy is a powerful script-based environment to learn sciences and maths
- Scratch is a new programmable toolkit that enables kids to create their own games, animated stories, and interactive art -- and share their creations with one another over the Net. Scratch builds on the tradition of Logo and LEGO/Logo, but takes advantage of new computational ideas to make it easier to get started with programming (lowering the floor) and extend the range of what kids can create and learn (raising the ceiling).
- ComiKit is a toolkit for children that uses a visual programming language based on comic strips. With ComiKit you can create interactive games and stories featuring animated characters. ComiKit is a result of research on visual programming at Linköping University.
Web Application Development.
- Seaside is a framework for developing sophisticated dynamic web applications by using Continuations and a URL code to preserve application state on the code stack, even across different browsers, dramatically easing the complexity of web application development.
- AIDA/Web is web application framework and server for complex web applications with REST-like Urls and MVC separation of domain model from presentation and with integrated user/security management.
- SmallWiki2 is a wiki based on Seaside
- ShoreComponents is a set of useful components for Seaside
Innovative New Media and New Interfaces.
- Croquet is a 3D peer-to-peer authoring environment for simultaneous team content development of interconnected simulations, models, and simulated environments
- Sophie is a digital media assembly tool to combine images, text, video, and audio into a single multimedia document such as slideshows, presentations and annotated videos.
- Tweak is a media authoring environment for children of all ages. It's Morphic redone from scratch, to add flexibility, more powerful abstractions, and clarity of code.
- Morphic is a direct-manipulation User Interface (UI) construction kit based on display trees. It works with graphical objects called Morphs. It replaces the original Model View Controller graphics toolkit of Smalltalk-80.
- wxSqueak is a Squeak interface to the wxWidgets GUI library, meaning that a platform's native GUI widgets are used.
- Quoth is a dynamic, interactive fiction system with an eye toward musical livecoding
- ODECo is an easy tool kit for making 2-D & 3-D dynamics simulation based on ODE http://www.ode.org, a physics motion simulator (download the SqueakFest '04 image for windows and linux for the 2D simulation)
- NetMorph is a visual mobile agent system. In the environment, network-enabled morphs (art, media, and/or widgets) can move freely across the World (desktops of various networked computers) to lead to new kinds of collaboration.
- Weather On Display is in many ways the finest weather instrument available today. From sensors at your site, local weather information is processed and displayed in an intuitive and accurate manner. If you watch the weather, you will love Weather On Display.
- Open Agument. Created in the 1960's by Dr. Douglas Engelbart and his imaginative team at Stanford Research Labs (SRI), Augment is one of the most groundbreaking and important historical artifacts of the software industry. Many of today's desktop and network computing innovations can be traced back to the original Augment system.
Bleeding Edge Projects.
- Traits is a project to add Aspect Oriented attributes (or Mix-ins) to Smalltalk
- BabyUML is a laboratory to explore new programming disciplines that simplify and twist UML and other constructs to demonstrate how they help bridge the gap between programmer and the objects running in the computer focusing on the run time objects; the classes that specify them are moved to the background
- Spoon is a project to create applications from a tiny, minimal core that dynamically grows its class library as the classes are used
- Exupery is a project to improve Bytecode compilation and execution
- Package Universes are an approach to supporting no-hassle installs via a package loader.