Squeak
Encyclopedia
The Squeak programming language
Programming language
A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

 is a Smalltalk
Smalltalk
Smalltalk is an object-oriented, dynamically typed, reflective programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human–computer symbiosis." It was designed and created in part for educational use, more so for constructionist...

 implementation. It is object-oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

, class-based
Class (computer science)
In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

 and reflective
Reflection (computer science)
In computer science, reflection is the process by which a computer program can observe and modify its own structure and behavior at runtime....

.

It was derived directly from Smalltalk-80 by a group at Apple Computer
Apple Computer
Apple Inc. is an American multinational corporation that designs and markets consumer electronics, computer software, and personal computers. The company's best-known hardware products include the Macintosh line of computers, the iPod, the iPhone and the iPad...

 that included some of the original Smalltalk-80 developers. Its development was continued by the same group at Walt Disney Imagineering
Walt Disney Imagineering
Walt Disney Imagineering is the design and development arm of the Walt Disney Company, responsible for the creation and construction of Disney theme parks worldwide...

, 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
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 (VM) on which it runs. It also includes a VM simulator written in itself (Squeak). For this reason, it is easily ported.

Developers

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
Alan Kay
Alan Curtis Kay is an American computer scientist, known for his early pioneering work on object-oriented programming and windowing graphical user interface design, and for coining the phrase, "The best way to predict the future is to invent it."He is the president of the Viewpoints Research...

 proposed in the Dynabook
Dynabook
The Dynabook concept, created by Alan Kay in 1968, described what is now known as a laptop computer or a tablet or slate computer with nearly eternal battery life and software aimed at giving children access to digital media...

 concept, which he formulated in the 1960s. Kay is an important contributor to the Squeak project.

User interface frameworks

Squeak includes a number of user interface frameworks:
  • An implementation of Morphic
    Morphic (software)
    The name "Morphic" was taken from the Greek word "morph", its morphs taking on the role of "forms", the basic graphical building blocks in earlier Self systems and in Smalltalk MVC....

    , Self's graphical direct manipulation interface
    Direct manipulation interface
    In computer science, direct manipulation is a human-computer interaction style which involves continuous representation of objects of interest, and rapid, reversible, incremental actions and feedback. The intention is to allow a user to directly manipulate objects presented to them, using actions...

     framework. This is Squeak's main interface.
  • Tile-based, limited visual programming
    Visual programming language
    In computing, a visual programming language is any programming language that lets users create programs by manipulating program elements graphically rather than by specifying them textually. A VPL allows programming with visual expressions, spatial arrangements of text and graphic symbols, used...

     scripting in Etoys
    EToys (Programming Language)
    Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.Etoys is a media-rich authoring environment with a scripted object model for many different objects that runs on different platforms and is free and open source.- Brief...

    , 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
    Prototype-based programming
    Prototype-based programming is a style of object-oriented programming in which classes are not present, and behavior reuse is performed via a process of cloning existing objects that serve as prototypes. This model can also be known as classless, prototype-oriented or instance-based programming...

    . 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
    Model-view-controller
    Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .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.

Uses

Many Squeak contributors collaborate on Open Cobalt
Open Cobalt
Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area networks or across the Internet, without any requirement for centralized servers....

, a free
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...

 and open source  virtual world
Virtual world
A virtual world is an online community that takes the form of a computer-based simulated environment through which users can interact with one another and use and create objects. The term has become largely synonymous with interactive 3D virtual environments, where the users take the form of...

 browser and construction toolkit application which is built on Squeak.

Squeak is also used in the es
Es (operating system)
es is a computer operating system developed originally by Nintendo and since 2008 by Google. The operating system runs natively on x86, and includes a kernel written in C++...

 operating system and for implementing the Scratch
programming language for beginning programmers. In May 2011 the OpenQwaq
OpenQwaq
OpenQwaq is open source computer software for immersive collaboration, which enables organizations to implement online 3D virtual world workspaces for their specific needs...

 virtual conferencing and collaboration system based on Squeak, an open source release of Teleplace, was announced on the Teleplace blog.

License

Squeak 4.0 may be downloaded at no cost, including source code, as a prebuilt virtual machine
Virtual machine
A virtual machine is a "completely isolated guest operating system installation within a normal host operating system". Modern virtual machines are implemented with either software emulation or hardware virtualization or both together.-VM Definitions:A virtual machine is a software...

 image licensed under the MIT License
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

, with the exception of some of the original Apple code, which is governed by the Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

.

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
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...

.

In 2006, Apple relicensed Squeak twice. First, in May, Apple used its own Apple Public Source License
Apple Public Source License
The Apple Public Source License is the open source and free software license under which Apple's Darwin operating system was released. A free software and open source license was voluntarily adopted to further involve the community from which much of Darwin originated.The first version of the Apple...

, which satisfies the Free Software Foundation
Free Software Foundation
The Free Software Foundation is a non-profit corporation founded by Richard Stallman on 4 October 1985 to support the free software movement, a copyleft-based movement which aims to promote the universal freedom to create, distribute and modify computer software...

's concept of a Free Software License and has attained official approval from the Open Source Initiative
Open Source Initiative
The Open Source Initiative is an organization dedicated to promoting open source software.The organization was founded in February 1998, by Bruce Perens and Eric S. Raymond, prompted by Netscape Communications Corporation publishing the source code for its flagship Netscape Communicator product...

 as an Open Source License. The Apple Public Source License
Apple Public Source License
The Apple Public Source License is the open source and free software license under which Apple's Darwin operating system was released. A free software and open source license was voluntarily adopted to further involve the community from which much of Darwin originated.The first version of the Apple...

, as it turns out, fails to pass the third standard that Free and Open Source Software
Free and open source software
Free and open-source software or free/libre/open-source software is software that is liberally licensed to grant users the right to use, study, change, and improve its design through the availability of its source code...

 licenses are held to: the Debian Free Software Guidelines
Debian Free Software Guidelines
The Debian Free Software Guidelines 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 Debian...

 promulgated by the Debian
Debian
Debian is a computer operating system composed of software packages released as free and open source software primarily under the GNU General Public License along with other free software licenses. Debian GNU/Linux, which includes the GNU OS tools and Linux kernel, is a popular and influential...

 project, an influential volunteer-run GNU/Linux distribution. To enable inclusion of Etoys
EToys (Programming Language)
Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.Etoys is a media-rich authoring environment with a scripted object model for many different objects that runs on different platforms and is free and open source.- Brief...

 in the One Laptop Per Child project, a second relicensing was undertaken using the Apache License
Apache License
The Apache License is a copyfree free software license authored by the Apache Software Foundation . The Apache License requires preservation of the copyright notice and disclaimer....

. 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
MIT License
The MIT License is a free software license originating at the Massachusetts Institute of Technology . It is a permissive license, meaning that it permits reuse within proprietary software provided all copies of the licensed software include a copy of the MIT License terms...

, and finally in March 2010, the end result was released as Squeak 4.0, now under combined MIT and Apache licenses.

See also

  • Open Cobalt
    Open Cobalt
    Open Cobalt is a free and open source software platform for constructing, accessing, and sharing virtual world both on local area networks or across the Internet, without any requirement for centralized servers....

  • Croquet project
    Croquet Project
    The Croquet Project was an international effort to promote the continued development of the Croquet open source software development kit for creating and delivering deeply collaborative multi-user online applications....

  • OpenQwaq
    OpenQwaq
    OpenQwaq is open source computer software for immersive collaboration, which enables organizations to implement online 3D virtual world workspaces for their specific needs...

  • Seaside
  • Scratch
  • Alice
    Alice (software)
    Alice is a freeware object-oriented educational programming language with an integrated development environment . Later versions are implemented in Java. Alice uses a drag and drop environment to create computer animations using 3D models...

  • Etoys
    EToys (Programming Language)
    Etoys is a child-friendly computer environment and object-oriented prototype-based programming language for use in education.Etoys is a media-rich authoring environment with a scripted object model for many different objects that runs on different platforms and is free and open source.- Brief...

  • Pharo
    Pharo
    Pharo is a fork of Squeak, an implementation of the object-oriented, dynamically typed, reflective programming language Smalltalk.Appearing in 2008, Pharo focuses on removing unessential code from Squeak and serves as the reference implementation of Seaside, a web application framework for...

  • List of open-source programming languages

External links


Books

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK