Content deleted Content added
MouseCursor (talk | contribs) italicize all exclamation marks Tag: Reverted |
No edit summary |
||
(5 intermediate revisions by 4 users not shown) | |||
Line 4:
{{Infobox programming language
| name = Snap''!''
| logo = [[File:Snap
| logo size = 90PX
| paradigm = [[Object-oriented programming|object-oriented]], [[educational programming language|educational]], [[Event-driven programming|event-driven]]
Line 10:
| designer = [[Brian Harvey (lecturer)|Brian Harvey]] and [https://github.com/jmoenig/ Jens Mönig]
| developer = [https://github.com/jmoenig/ Jens Mönig]
| latest release version = 10.
| latest release date = {{Start date and age|2025|
| typing = [[Type system|dynamic]]
| implementations =
Line 17:
| dialects =
| influenced by = [[Scratch (programming language)|Scratch]], [[Scheme (programming language)|Scheme]], [[Logo (programming language)|Logo]], [[Smalltalk]], [[APL (programming language) | APL]]
| influenced = [[Scratch (programming language)|Scratch]], BeetleBlocks, NetsBlox, Dragme IDE, [[Turtlestitch]]
| operating system = [[Cross-platform]]
| license = [[Affero General Public License|AGPL]]
Line 24:
}}
'''Snap''!''''' (formerly Build Your Own Blocks) is a free block-based [[List of educational programming languages|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. While inspired by [[Scratch (programming language)|Scratch]], Snap''!'' has many advanced features. The Snap''!'' editor, and programs created in it, are [[web application]]s that run in the browser (like [[Scratch (programming language)|Scratch]]) without requiring [[Installation (computer programs)|installation]].{{#tag:ref|BYOB, Snap''!''{{'}}s predecessor, was a modification of Scratch and could export projects as [[Portable Executable|Windows executables]].|group=Note}} It is built on top of ''Morphic.js'',<ref name="morphic_js">{{cite web |last1=Mönig |first1=Jens |title=morphic.js |url=https://github.com/jmoenig/morphic.js/blob/master/morphic.txt |website=GitHub |accessdate=7 June 2023}}</ref> a [[Morphic (software)|Morphic]] GUI, written by Jens Mönig as 'middle layer' between Snap
==User interface==
Line 43:
| bgcolor="#0E9A6C"| || Pen || Write, draw, or<br />stamp on stage || bgcolor="#C88330"| || Variables || Variables, lists,<br />including lists of lists, lists of blocks, etc
|}
[[File:Snap
Snap''!'''s blocks are divided into eight groups: Motion, Looks, Sound, Pen, Control, Sensing, Operators, and Variables. The layout of these groups in the block group selector is shown in the table below.
Line 59:
==Mascot==
[[File:Snap
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. The mascot is a modified version of Gobo from [[Scratch (programming language)|Scratch]], with permission of the Scratch Team. Because Alonzo Church's work is called [[lambda calculus]], the mascot's hair is shaped as the Greek letter [[lambda]].
Line 77:
==History==
The web-based Snap''!'' and older desktop-based BYOB were both developed by Jens Mönig for [[Microsoft Windows|Windows]], [[OS X]] and [[Linux]]<ref>{{cite web|url=http://scratch.mit.edu/users/Jens|title=Scratch - Imagine, Program, Share|website=scratch.mit.edu|access-date=21 May 2017}}</ref> with design ideas and documentation provided by [[Brian Harvey (lecturer)|Brian Harvey]]<ref>{{cite web|url=https://people.eecs.berkeley.edu/~bh/|title=HomePage for Brian Harvey (bh@cs.Berkeley.EDU)|website=people.eecs.berkeley.edu/~bh/|access-date=19 January 2019}}</ref> 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.<ref>{{cite web|url=http://inst.eecs.berkeley.edu/~cs10/fa11/|title=UC Berkeley EECS - CS10 : The Beauty and Joy of Computing - Fall 2011|website=inst.eecs.berkeley.edu|access-date=21 May 2017}}</ref> Jens was a member of the Scratch Team before creating ''Snap
==License==
The source code of Snap''!'' is [[Affero General Public License|GNU Affero General Public License]] (AGPL) licensed and is hosted on [[GitHub]].<ref>{{cite web|url=https://github.com/jmoenig/Snap/|title=jmoenig/Snap|website=GitHub|access-date=21 May 2017}}</ref> The earlier, desktop-based 3.x version's code is available under a license that allows modification for only non-commercial uses and can be downloaded from the UC Berkeley website<ref>{{cite web|url=http://snap.berkeley.edu/|title=Snap
==Platforms==
Snap
Supported web-browsers such as
Line 94:
==Implementation==
Snap''!'' is built on top of ''Morphic.js'',<ref name="morphic_js">{{cite web |last1=Mönig |first1=Jens |title=morphic.js |url=https://github.com/jmoenig/morphic.js/blob/master/morphic.txt |website=GitHub |accessdate=7 June 2023}}</ref> a [[Morphic (software)|Morphic]] GUI, which serves as 'middle layer' between Snap
All things visible in Snap''!'' are morphs themselves, i.e. all buttons, sliders, dialog boxes, menus, entry fields, text rendering, blinking cursors etc. are created with morphic.js rather than using HTML DOM elements. Snap
All user interaction is triggered by events, which are passed on from the root element "the world" to its submorphs. Dropping a morph causes it to become embedded in a new 'owner' ('parent') morph. In Morphic the preferred way to run an animation is to register it with the World by adding it to the World's animation queue. The World steps each registered animation once per display cycle independently of the Morphic stepping mechanism.
==Recognition==
Snap''!'' has been recognized by the Logo Foundation,<ref>{{cite web|url=http://el.media.mit.edu/logo-foundation/what_is_logo/history.html|title=Logo History|website=el.media.mit.edu|access-date=21 May 2017}}</ref> and reviewed in an online magazine for programmers.<ref>{{cite web|url=http://www.i-programmer.info/news/98-languages/8628-visual-language-snap-version-40-released.html|title=Visual Language Snap
==Notes==
Line 114:
{{Video game engines |state=collapsed}}
{{DEFAULTSORT:Snap
[[Category:American children's websites]]
[[Category:Educational programming languages]]
|