Last updated at 8:15 pm UTC on 30 December 2021
Projects as described in the Squeak 3.2 -- 2002 README file
- A project is a coherent subset of the image that can be filed out (swapped out) into a file to be filed in (swapped in) at a later time to save on memory usage.
- A project is a World with its own changeset to keep track of its own morph hierarchy and code changes.
- "A project is everything you see on a screen" 
- Projects are similar to pages on the internet 
- Projects can be considered to be Squeak components.
- Smalltalk-78 already had projects
A project is entered by sending the message #enter to it.
In the code a project object is loaded with
Project current openViewAndEnter: aProject
More see ProjectLoading
- A MorphicProject fills the screen with a PasteUpMorph and its Morphs.
- You can save a project with its World Morph and submorphs to a file or a server by choosing an option of the World menu. A pr file is generated. To pass the project on you only need this '.pr' file. (from an email by Andreas Raab) [This works only in certain versions of Squeak]
- An Etoys Player may be associated with the World PasteUpMorph of a project. The script of the player is run when the project is opened.
Projects in Squeak are a kind of hierarchical multiple-desktop setup, where subprojects of a project are displayed as thumbnails in little windows on the desktop, which when clicked, enter the displayed subproject. The main desktop menu allows you to navigate among all the projects in the image.
Use of projects
A suggestion how to use projects: You might have a project called 'X' and then another project called 'X explanations' where you keep the explanations (open browsers, workspaces and notes about project 'X'). And maybe a third project called 'X tests' where tests are constructed.
Note that in Pharo and Cuis projects have been removed. However there is an add-on for Cuis and also for Pharo which adds it again (all projects have the same change set)
 Dan Ingalls writes in The Squeak Image: Projects are used to capture and switch the entire display state. Therefore they store much of the state (When are the deferred UI messages processed? or ScheduledControllers, Transcript, and Display depth).
 Squeak 3.8.1 release notes
Projects are separate worlds within Squeak, similar to pages on the Internet. In fact active projects can be shared over the internet just like web pages. We have included a number of demonstration projects in the 'Worlds of Squeak' window. Other projects may be found by selecting the 'FIND' button under the Navigator tab at the bottom of the screen.
A project object with the objects it collaborates with (they are held in instance variables):