

Snap: A visual drag-and-drop programming language - danboarder
http://byob.berkeley.edu/

======
bcjordan
Yes! Way back, Snap was the first browser-compatible[1] block-based coding
environment I came across[2], and it got me really excited about the things
teaching programming on internet-connected touch devices could make possible.

For those interested, a couple of other neat projects with a similar focus on
visual programming in the browser—

Blockly
[https://developers.google.com/blockly/](https://developers.google.com/blockly/)
— fantastic subtle UI affordances for snapping, deletion, and a neat mostly-
block-world-only way of manipulating everything (including defining new
procedures). Growing set of apps out there which consume this library.

Droplet
[https://github.com/dabbler0/droplet](https://github.com/dabbler0/droplet) —
awesome animated transition from blocks to text, and back again. Extremely
flexible on the "what arbitrary code segment can constitute a draggable block"
side, has drag-to-multi-select and undo support. Uses ACE on the text side of
things

[1] having previously used Scratch and Etoys in a handful of rural schools on
XO laptops

[2] hey... I shared this page 804 days ago, and only 2 upvotes! Before its
time, or my crappy headline?

~~~
seanmcdirmid
> [2] hey... I shared this page 804 days ago, and only 2 upvotes! Before its
> time, or my crappy headline?

It depends on who is watching the new queue and how much competition there is;
e.g. this caught on while America was sleeping when overall activity is kind
of slow.

------
shritesh
SNAP! considers itself as Scheme disguised as Scratch and rightfully so.

We had our Intro to CS class with SNAP, which I hated at the beginning, but
towards the end, the professor used it to explain fundamental CS topics
(sorting, data structures, parallelism) that was approachable by all. For the
class projects, people that had no prior exposure to programming made some
amazing stuffs with it.

------
thunderbong
This is indeed very nice. Having Lists and Procedures really helps teach
children about computer programming. Using Scratch had this as quite a
challenge.

I was able to download the github repo and run it locally. I was wondering how
we can save projects on the disk and run them.

This would be a big help when schools don't have internet access.

------
rasur
I'm confused - this looks and sounds like Phratch but they don't mention
Pratch at all (although hint towards it by mentioning BYOB (Build You Own
Blocks) which is something that Phratch had).

EDIT: My bad, BYOB seems to be separate to Phratch, and they (Phratch) added
it to Scratch to create Phratch.
[http://www.phratch.com/](http://www.phratch.com/) \- Snap is a separate in-
browser implementation. I think I'm less confused now...

~~~
danboarder
Yes it is based on Scratch but extended with more features, including first
class lists, first class procedures, and continuations.

------
seanmcdirmid
They seem to have began overhauling Scratch's visual design in Snap
(background is flatter, more muted, but the blocks stay the same). I like it,
and hope they can eventually get around to redoing the block visual design as
well (right now, the mix of the two designs is a bit jarring).

~~~
ackalker
Too bad that for some reason in my browser (Chromium version 43.0.2357.65
(64-bit) on Arch Linux), HiDPI setup (which was added to Chromium very
recently), the fonts look extremely blurry, giving me the irresistible urge to
squeeze my eyelids to get things in focus. I experience no such blurriness
with other web apps (whether using plain HTML/CSS, SVG, HTML5 Canvas, etc.).

~~~
cycomachead
Yeah...it's a known issue, but a solution is apparently in the works? (low
priority though.)

------
glaberficken
This is great =). If you want to have some fun with another Scratch
derivative, play this (was in HN a while ago) [https://blockly-
games.appspot.com/maze/](https://blockly-games.appspot.com/maze/)

Minor anoyance on the Snap website: The tool-tips for the top bar buttons do
not show (at least not in chrome 43).

~~~
jschulenklopper
That URL with the slash at the end returned a 404. [https://blockly-
games.appspot.com/maze](https://blockly-games.appspot.com/maze) works.

------
IshKebab
This is cool but I always wish it wasn't just Logo. People get bored with Logo
fairly quickly in my experience.

~~~
jstout
Why is it 'just Logo'? Because it's got turtle commands?

------
ajdlinux
They're using this to teach an interdisciplinary computing course at my
university. I haven't played with it enough to form my own opinion on it, but
some of the academic staff here are pretty sceptical.

~~~
moenig
Oh, that's interesting, I'm curious about about the academic scepticism, can
you tell more about the university and the issues? Thanks!

~~~
ajdlinux
It was more faculty politicking than anything else. I'm not too familiar with
all the details, but basically - the course was initially proposed as an
introduction to "computational thinking" primarily aimed at non-CS majors.
Some of the faculty though seemed to want to transform it into the mainline
introduction to programming course and potentially replace our existing intro
to programming course (which is taught in Haskell).

The current intro to programming lecturer is pretty firmly of the belief that
GUI-based languages like Snap which are in many ways quite restrictive just
aren't appropriate for teaching CS majors who'll be progressing to C and other
languages in their 2nd year. Looks like he's winning the debate at the moment
and there aren't any current plans to change his course at least for the next
couple of years.

------
mentos
Unreal Engine 4's blueprints are a great example of visual programming.

