Snap! (programming language)

(formerly Build Your Own Blocks) is a free block-based educational graphical programming language and online community.

Snap allows students to explore, create, and remix interactive animations, games, stories, and more, while learning about mathematical and computational ideas.

editor, and programs created in it, are web applications that run in the browser (like Scratch) without requiring installation.

[Note 2] It is built on top of Morphic.js,[2] a Morphic GUI, written by Jens Mönig as 'middle layer' between Snap!

's blocks are divided into eight groups: Motion, Looks, Sound, Pen, Control, Sensing, Operators, and Variables.

offers, but Scratch does not, include: Alonzo, the mascot of Snap!, bears the name of Alonzo Church, the inventor of a model of computation in which a universal function, represented by lambda, can create any function behavior by calling it on itself in various combinations.

and older desktop-based BYOB were both developed by Jens Mönig for Windows, OS X and Linux[3] with design ideas and documentation provided by Brian Harvey[4] from University of California, Berkeley and have been used to teach "The Beauty and Joy of Computing" introductory course in computer science (CS) for non-CS-major students.

runs on the major web-browsers on Windows, iOS, MacOS and Linux devices.

are morphs themselves, i.e. all buttons, sliders, dialog boxes, menus, entry fields, text rendering, blinking cursors etc.

All user interaction is triggered by events, which are passed on from the root element "the world" to its submorphs.

Three resizable columns, containing five regions, in Snap!'s IDE at startup