6 ms·
Snap: Build Your Own Blocks
- dang 7y agoRelated from 2015: https://news.ycombinator.com/item?id=9591460 https://news.ycombinator.com/item?id=9591460
- KhoomeiK 7y agoWhat differentiates this from MIT Scratch?
- applecrazy 7y agoIt has some really cool and advanced FP and lambda calculus features.
- cellular 7y agoHaha!
- figbert 7y agoExactly 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 7y agoSnap was originally a scratch fork back when both of them were written in smalltalk, but they’ve both since gone through independent rewrites.
- TheAsprngHacker 7y agoThe Snap! mascot is named Alonzo after Alonzo Church, and the "horn" is a lambda to symbolize Snap!'s functional programming features. I just checked, and both Alonzo and Gobo have three feet. "Sprite" and "costume" are distinct concepts in both Scratch and Snap!. A costume is a texture, and a sprite is an actor associated with state such as a current costume, as well as program logic.
- cycomachead 7y agoThe advanced features are there - like making API requests, Lambdas and real custom blocks/functions. Beyond, that you can write in JS to extend Snap! within itself.
- TheAsprngHacker 7y agoSnap! is explicitly based on Scratch and started out as a fork, BYOB. Snap! was rewritten from the ground up. Snap!'s motto is "First class everything," and taking inspiration from Scheme, it supports first-class lists, first-class functions, and other types of data. Snap! had user-defined functions before Scratch added them, and unlike in Scratch, user-defined functions can return values in Snap!. Snap! also supports script-local variables.
- jawns 7y agoThere is an "About" page https://snap.berkeley.edu/about https://snap.berkeley.edu/about that explains this in detail, but you have to go looking for it. Since it's immediately obvious from the banner that there's some relationship between Snap and Scratch, the homepage should give a short summary. At a minimum, I would present the first paragraph from the "About" page in a prominent place on the homepage: > Snap! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and first class continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.
- lacker 7y agoI 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.
- tlarkworthy 7y agoCan you try my Android game https://corepox.net/ https://corepox.net/ and give me advice on how to improve it. I am very much trying to communicate computational thinking concepts without being too overtly educational, but it's not perform any well and I need help.
- inshadows 7y ago(Only watched a video trailer.) More gunz! E.g. homing missiles, proximity mines, etc.
- tlarkworthy 7y agook, but its a programming game so you can't really grok it unless you play it. But thats important info for the marketing.
- dgellow 7y agoDo 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.
- pirocks 7y agoI remember being a kid. Clunky interfaces didn't bother me, but maybe things change, since I was exposed to clunky interfaces first.
- wyxuan 7y agoFYI they teach this curriculum for AP CS Principles students. I haven't heard many positive experiences with this though.
- pirocks 7y agoI 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.
- applecrazy 7y agoThey also teach Snap! in intro to programming courses at Berkeley.
- aglionby 7y agoThough 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
- ngmc 7y agoIt's definitely possible but the Scratch Blocks [1] wiki [2] is indeed a little sparse. VEXcode Blocks [3] seem to be a successful product, so somebody must have figured it out. [1] https://github.com/llk https://github.com/llk [2] https://github.com/LLK/scratch-blocks/wiki https://github.com/LLK/scratch-blocks/wiki [3] https://www.vexrobotics.com/vexcode-blocks https://www.vexrobotics.com/vexcode-blocks
- TheAsprngHacker 7y agoHere 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.
- sandov 7y agoAs 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-4628-BC82-BD709635220D/Introducing%20Small%20Basic.pdf http://download.microsoft.com/download/9/0/6/90616372-C4BF-4...
- lacker 7y agoEven 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 ;-)