Aviva Directory » Computers & Internet » Programming » Snap!

Snap! is a blocks-based graphical programming language and online community, similar to, but more advanced than Scratch.

Features found in Snap! that are not present in Scratch include expressions using nested functions, consisting of one or more anonymous functions, each represented by a block with one or more empty slot parameters, available for a higher-order function. Snap! also includes lists that are first class, first class sprites, offering prototype-oriented, instance-based classless programming, as well as nestable sprites. Snap! programs may also be coded to mainstream languages, such as C, JavaScript, and Python. Snap! is implemented in JavaScript through an HTML5 Canvas API, allowing it to run on most of the major web browsers.

Used primarily for educational purposes, the Snap! editor and the programs created with it are web applications that run in a browser, without requiring installation.

The Snap! screen is organized in three resizable columns with five regions: the block group selector, the blocks palette, the main area, and the stage area, with the sprite selector showing sprite thumbnails beneath it.

Much like Scratch, graphical results of the scripts running in the scripts area are shown in the interactive and resizable stage area. Blocks can be dragged from the blocks palette into the scripts area, where they are associated with a selected sprite.

Blocks are sorted into eight groups: motion, looks, sound, pen, control, sensing, operators, and variables.

Scripts, costumes, or sounds associated with a selected sprite are shown in the main area, depending on the tab selected by the user.

Created in 2011 by Jens Mönig, with assistance from Brian Harvey from the University of California at Berkeley, the language system was originally desktop-based and known as BYOB. The source code for the earlier desktop version is available under a license that allows its modification for non-commercial uses, and may be downloaded from the UC Berkely website and elsewhere.

The source code for Snap! is available under the Affero General Public License, and available from GitHub or within Snap! itself.

Snap! and its derivatives are the focus of resources listed in this category. User groups, forums, tutorials, and guides are also appropriate.



Recommended Resources

Search for Snap! on Google, Bing, or Yahoo!