I have the same gripe and I think it’s just simply that when you are used to being able to just write code, everything else feels like it’s in the way.
Visual coding is a pain to change and move around quickly. It’s just clutter ultimately - if you know how to actually code.
from someone who can remember how they even got into programming:
it's because this is BS and just a toy, it's got no connection to the real world.
from the angle of someone trying to make some toy to teach programming, maybe in their head it's like: oh this is so simple and easy it should work perfectly for teaching
but from my experience, most of my learning came from "whats this?" "how do i make a thing like this?"
this doesn't provide a way to accomplish that or to promote curiosity
I think same applies to basic CS courses teaching bits and bytes, it's not really useful to know what bits and bytes are if you don't understand what they're even used for or why you should know what they are
however, this is just my subjective point of view, maybe it differs for others.
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.
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
For those wondering the difference with scratch, it's on the about page:
> About Snap!
> 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[1] lists, first class procedures, and first class continuations[2]. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.
Scratch already allows you to create custom Blocks and features lists. This seems like a perfect example of reinventing the wheel (and fragmenting development communities).
Actually there is a large historical overlap between the two communities, and they are each very friendly and collaborative and respectful towards each other, ideas feeding back and forth and improving both systems. The projects have different goals, but there is a lot of feedback between them.
Jens was on the Scratch Team, BYOB was presented at Scratch@MIT 2010 explicitly to merge ideas back in, and Berkeley has kept showing up at Scratch conferences (Amsterdam 2015, Bordeaux 2017) while the Scratch forums hosted BYOB/Snap! discussion for years.
Having NIH-syndrome, reinventing the wheel, and fragmenting is the opposite of how the Scratch and Snap! communities interact, when it's actually warm, friendly, and supportive, and giving credit where due.
Ideas that flowed both ways (documented, not just claimed):
BYOB => Scratch: Custom blocks (Scratch 2.0 took command blocks only, not reporters/lambda). Explicit goal stated on ScratchEd and in Snap! Wiki.
Scratch => Snap!: Browser rewrite timing influenced by Scratch 2.0 plans; Morphic framework via John Maloney; CC-licensed costumes/sounds still used under license.
Shared people: Jens (Scratch Team alum → Snap! lead), John Maloney (Scratch/Morphic → GP talks with Jens at Scratch2015AMS), Bernat Romagosa (Snap!, MicroBlocks, Snap4Arduino — present at Bordeaux and Snap!Cons).
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.
Visual coding is a pain to change and move around quickly. It’s just clutter ultimately - if you know how to actually code.
it's because this is BS and just a toy, it's got no connection to the real world.
from the angle of someone trying to make some toy to teach programming, maybe in their head it's like: oh this is so simple and easy it should work perfectly for teaching
but from my experience, most of my learning came from "whats this?" "how do i make a thing like this?"
this doesn't provide a way to accomplish that or to promote curiosity
I think same applies to basic CS courses teaching bits and bytes, it's not really useful to know what bits and bytes are if you don't understand what they're even used for or why you should know what they are
however, this is just my subjective point of view, maybe it differs for others.
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
> About Snap!
> 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[1] lists, first class procedures, and first class continuations[2]. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.
Jens was on the Scratch Team, BYOB was presented at Scratch@MIT 2010 explicitly to merge ideas back in, and Berkeley has kept showing up at Scratch conferences (Amsterdam 2015, Bordeaux 2017) while the Scratch forums hosted BYOB/Snap! discussion for years.
Having NIH-syndrome, reinventing the wheel, and fragmenting is the opposite of how the Scratch and Snap! communities interact, when it's actually warm, friendly, and supportive, and giving credit where due.
Ideas that flowed both ways (documented, not just claimed):
BYOB => Scratch: Custom blocks (Scratch 2.0 took command blocks only, not reporters/lambda). Explicit goal stated on ScratchEd and in Snap! Wiki.
Scratch => Snap!: Browser rewrite timing influenced by Scratch 2.0 plans; Morphic framework via John Maloney; CC-licensed costumes/sounds still used under license.
Shared people: Jens (Scratch Team alum → Snap! lead), John Maloney (Scratch/Morphic → GP talks with Jens at Scratch2015AMS), Bernat Romagosa (Snap!, MicroBlocks, Snap4Arduino — present at Bordeaux and Snap!Cons).
I'll have to add it to my list to go and check out any new updates/features they have.
I can NOT wait to get my little one into something like this!