
Snap: Build Your Own Blocks - DyslexicAtheist
https://snap.berkeley.edu/
======
sandov
As a 13 year old, I learned to program in Small Basic, a Microsoft educational
version of Basic. There was a pdf[1] that explained the basic concepts of
programming in 69 pages. I loved it.

I don't think I would've even liked programming had I used Scratch (or Snap)
instead of Small Basic. Scratch feels too dumbed-down, limited and clunky.

Maybe Scratch is good enough for 5-9 year olds, but for older kids, I think
nowadays Javascript + HTML5 canvas is much better. Javascript lets you see
your creation in the browser, which feels like the "real world", because it
is. Additionally, it lets you do basically anything you can imagine in a
browser. And you code using regular text, which feels much better than colored
boxes.

And Small Basic is still better than Scratch I think, even though it seems
kind of abandoned by Microsoft.

[1] (notice: direct downlad)
[http://download.microsoft.com/download/9/0/6/90616372-C4BF-4...](http://download.microsoft.com/download/9/0/6/90616372-C4BF-4628-BC82-BD709635220D/Introducing%20Small%20Basic.pdf)

~~~
lacker
Even better than the browser is the apps that bluetooth-connect to Legos, so
that you can build something with Legos and write a program that operates the
motors and sensors. That feels even more like the "real world" because it is
;-)

------
lacker
I have tried this and basically all of the kids-programming methods I can
find. It’s hard for something to be a good solution “for kids” nowadays if you
can’t run it on an iPad. The interface just ends up being much slower and
clunkier so it’s harder to stay engaging. There are a number of iPad-based
programming introductions, like Tynker and the various LEGO-based apps, that
are the best ones IMO.

~~~
dgellow
Do kids care about clunky interfaces? Genuine question, I have zero experience
dealing with kids. It's just that I remember that when I was myself a kid I
would be attracted by any interface (physical or virtual) with a lot of
buttons and toggles to play with.

~~~
MattRix
I feel like clunky is fine, but a lot of these kids programming apps are not
just clunky, they're finicky. Weird mouse hit zones, massive slowdowns,
glitches, crashes, lost data, etc. Even the "good" ones have most of these
issues.

------
KhoomeiK
What differentiates this from MIT Scratch?

~~~
figbert
Exactly my question! Seems to me like they are pretty similar products – to
the point of "clone" status, as the two editors have the same blocks in the
same colors and seem to be functionally identical. The only difference I can
see is that the advanced features of Snap! appear to be only slightly more
accessible than those of Scratch (plus the change of "sprite" to "costume,"
and Gobo's growth of a horn and extra foot).

~~~
Gaelan
Snap was originally a scratch fork back when both of them were written in
smalltalk, but they’ve both since gone through independent rewrites.

------
aglionby
Though both Scratch and Snap are open source, I can't see any documentation
for building on top of either of them. If you're interested in building
something in this space, Blockly [1] is essentially the same and has some
great docs for working with it (no affiliation).

[1]
[https://developers.google.com/blockly](https://developers.google.com/blockly)

~~~
TheAsprngHacker
Here is a list of Snap! extensions if they are of any use to you as
references:
[https://snap.berkeley.edu/extensions](https://snap.berkeley.edu/extensions)

Scratch 3 runs on a modified version of Blockly.

------
wyxuan
FYI they teach this curriculum for AP CS Principles students. I haven't heard
many positive experiences with this though.

~~~
pirocks
I took a SNAP based course in high school before it was part of AP CS
principles. I would have preferred if they used scratch. SNAP seemed to have
bugs if you wrote non-trivial programs. I tried to write a checkers min-max
ai, but it kept on spitting out panics/exceptions at me.

------
dang
Related from 2015:
[https://news.ycombinator.com/item?id=9591460](https://news.ycombinator.com/item?id=9591460)

