Visual Language Snap! Version 4.0 Released
Written by Sue Gee   
Tuesday, 26 May 2015

Snap! is a free, browser-based educational programming language  inspired by Scratch. This month it reached Version 4.0.

snapbanner

Like Scratch, Snap! is a visual, blocks based programming language. It was written by Jens Mönig and Brian Harvey at the University of California at Berkeley and its original name, Build Your Own Blocks (BYOB) indicates one of the main ways in which it goes beyond Scratch, which limits users to its supplied blocks. It also has features from Scheme - first class lists, first class procedures, and continuations, capabilities - making it suitable for a serious introduction to computer science for high school or college students.

 

snapscreen

 

The language was first released in 2011 when it was used for an introductory course in CS for non-CS-major students at Berkeley called the Beauty and Joy of Computing (BJC). The 2013 revision of the BJC curriculum was adopted as an AP CS Principles Course and Berkeley offers a six-week summer professional development course for teachers intending to teach it.

 

For developers who want to access the source code, Snap! is free software that can be redistributes and/or modified under the terms of the GNU Affero General Public License.  

In his Release Notes for Version 4.0 on GitHub, Jens Mönig tells devs that the way it takes a block grammar from Scratch and combines it with Scheme’s dynamically typed and lexically scoped variables, first-class lists, lambda (closures), first-class continuations and proper tail recursion, enables them to create their own control structures (loops, catch/throw, higher-order functions such as map/filter/reduce) without having to worry about stack overflows. Noting that Snap supports nested sprites and lets programmers turn arbitrary JavaScript code into graphical blocks. he explains:

Its “codification” mechanism can transcompile graphical scripts into arbitrary textual code, offering a two-way transition between blocks and text.

The  new features in the new version complete Snap's core language features and support: 

  • user-defined procedures ("Build Your Own Blocks")
  • lambda, including full closures ("Rings")
  • first-class continuations (call/cc)
  • tail-call optimization 

So while Snap! is a suitable language for introductory computer science, it may also be  of interest in some production or prototyping environments.

snap

Banner


Firefox 1.0 Released 20 Years Ago
10/11/2024

A news item with the headline "Firefox browser takes on Microsoft" from 20 years ago has attracted renewed attention. It was originally published on the BBC News website on November 9th, 2004 rec [ ... ]



Flutter Forked As Flock
05/11/2024

One of developers who worked on the Flutter team at Google has created an open-source form of the framework. Matt Carroll says Flock will be "Flutter+", will remain constantly up to date with Flutter, [ ... ]


More News

 

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 25 May 2015 )