Live data from Hacker News

Λ Snap – An inviting programming language for kids and adults for CS study

snap.berkeley.edu

41–50 of 55 posts

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#41
post #5

Snap is designed to be more expressive and powerful than Scratch. But I find debugging them is very painful. Changing the name of a variable or block for example, could create “holes” in the calling sites but the system can or cannot report an error and fails silently. Snap is IMO more flaky and the team seems more eager to add features than polish the existing ones or make the system mor robust and stable.

They've fixed surprisingly many of the quirks, but my biggest gripe with Snap is that they don't like to add documentation with new features. A lot of the older content has a nice "help..." context menu option with a description of what it does (which is often out of date itself, e.g. the "split" and "join" by blocks feature isn't shown on those blocks), and newer blocks have the context menu option... but nothing pops up.

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#42
post #28

Any name that you can't type is going to be a problem.

> Any name that you can't type is going to be a problem. Fortunately the name is Snap! so typing it isn't much of a problem. (With the !, which was stripped from the submission title and when most people write about it.)

The logo has a lambda in front, and I assume that's where the "Λ" came from in the title of the post. But I don't see it in any of the text on their site.

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#43

Earlier quoted context omitted.

> Any name that you can't type is going to be a problem. Fortunately the name is Snap! so typing it isn't much of a problem. (With the !, which was stripped from the submission title and when most people write about it.)

The logo has a lambda in front, and I assume that's where the "Λ" came from in the title of the post. But I don't see it in any of the text on their site.

Correct, it's not part of the name, which is just "Snap!".

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#44
post #7

I've been spending a lot of time with my nephews working on Scratch and Snap. They also attend local classes and their teachers switched from Snap to this which is way simpler and stickier with my nephews: https://www.microsoft.com/en-us/makecode

Yeah, my nephew loved scratch but he's endlessly devoted to make code. I got him a little Gameboy thing that can play the games he builds, and he keeps sending me games of his and then mercilessly mocking me for not being good at them :( A couple years ago I went through Flexbox Froggy with him out of curiosity, and the really interesting thing was that he was able to complete all the levels but only by dictating to…

Roughly how old was your nephew when he started using MakeCode?

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#45
post #39
post #5

Snap is designed to be more expressive and powerful than Scratch. But I find debugging them is very painful. Changing the name of a variable or block for example, could create “holes” in the calling sites but the system can or cannot report an error and fails silently. Snap is IMO more flaky and the team seems more eager to add features than polish the existing ones or make the system mor robust and stable.

> Changing the name of a variable or block for example, could create “holes” in the calling sites WTF. Isn't the whole point of visual programming that you are NOT bound by the limitations of text as a medium? A block refers to a specific variable. It shouldn't matter what it's called, it shouldn't matter if what it's called changes, it should still refer to the same variable even after renames.

That one is a bit more defensible for variables, when you rename variables, it gives you "rename" or "rename all". "rename" renames the variable, leaving uses of it the same, "rename all" also renames where you used it. Deleting a variable leaves the blocks that references it in place but they'll throw an error if called (IIRC this is useful if you wanted to switch from a global to local variable or vice versa).

Now, custom blocks have a different issue, where deleting one just severs any code that was using it (so if you had some custom blocks in a program: [on start] -> a -> b -> c, deleting the definition for b will mean c no longer gets called). There's now a block to delete custom blocks, so you can make self-destructing code.

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#46
post #21

Question (serious) - Why teach kids programming anymore?

Why build pine wood derby cars? Why paint pictures? Or take photographs? Why memorize poetry? Why build things with Legos?

Because it makes your brain think through problems, breaking them down to the point you can build a solution from the smallest pieces. AI may be a big part of the future, but we need to maintain our own human creativity and problem solving skills, and learning the tools that are available will help us to build and create useful things throughout our lives.

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#47
post #23

> inviting My first attempt to place a statement (play sound at Hz) failed with a Type Error. Android Chrome.

It's an odd quirk of Snap that they never cleaned up. Some blocks have a "friendly" error message. Delete a variable and uses of it get "Hmmm... a variable of name 'name' does not exist in this context". That one just regurgitates the JS error when it should say "You need to add and select a sound to play a sound".

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#48
post #38
post #9

I don't love graphical programming environments like this and Scratch and I can't quite put my finger on why I find them so unattractive. A big part of it is that you can, to some degree, learn programming from this. But you absolutely cannot learn software engineering from this.

I learned to program from block programming, starting out when I was 12. I'm now a full-time developer and funded startup founder. You absolutely can learn complex concepts from simple primitives, and there is a large underground community pushing the limits of languages like Scratch. See for example Linux running on RISC-V running on Scratch: https://turbowarp.org/1201938491

In my experience, there’s no better way to learn more complex programming techniques or tools than running into a brick wall with the simple tools you’re familiar with, spending a ton of time on an unreasonably irritating solution, only to realize that you’re running into a classic [n] problem and some clever person figured out a simple logical trick to address it. I mean, it can be enraging but that knowledge tends to stick.

Though I doubt that happens much anymore.

Re: Λ Snap – An inviting programming language for kids and adults for CS study

#49

Earlier quoted context omitted.

Yeah, my nephew loved scratch but he's endlessly devoted to make code. I got him a little Gameboy thing that can play the games he builds, and he keeps sending me games of his and then mercilessly mocking me for not being good at them :( A couple years ago I went through Flexbox Froggy with him out of curiosity, and the really interesting thing was that he was able to complete all the levels but only by dictating to…

Roughly how old was your nephew when he started using MakeCode?

I think four for scratch junior with help, and then make code at six? He wasn't able to use either of them independently at first, it's a learning process.

But it's different for every kid! He was a very early reader and he's autistic, one of the markers of his presentation of which is being ahead of some developmental benchmarks and behind on others. If you have the resources, those kids coding clubs are all over these days and they do a great job of making it a fun, social activity for a certain type of dorky kid.

Post reply on HN