Live data from Hacker News

Scratch is a big deal

bryanbraun.com

221–230 of 306 posts

Re: Scratch is a big deal

#221

I've spent a fair amount of time with Scratch, enough to say I understand the language pretty well. The primary game I've created during this study: https://scratch.mit.edu/projects/575241838/fullscreen/ Here you can design a level and let a friend pass it - destroy all the bricks. In Scrath you hit language limitations all the time. The Scratch designers say it is so to be friendly to beginners, however the need to…

This Scratch thing reminds me of Authorware. Fun and powerful if you are still at a point in life where you are terrified of coding with text. But after you outgrow it you regret not using those brain cells to learn conventional programming. (At least, I did.) I'm not saying it's without value, but I am saying it can lead to disappointment.

Re: Scratch is a big deal

#222

I like Scratch - my kid uses it and I worked briefly with the guy who made Blockly, the underlying visual programming toolkit - but the programming environment makes many things far too complicated with its singular focus on sprites. It's very, very difficult to do things as simple as display a number on screen. My 7yo was making a number guessing game, and to display a two-digit number we had to make two sprites tha…

I've always thought that number-guessing games were a first choice for introductory coding primarily because they're well suited to the standard library of most programming languages. Once you have standard I/O, you can write a number-guessing game. Scratch has different constraints than most languages, but I don't view that as a bad thing. Scratch takes what is normally a huge undertaking--sprites--and makes them as…

Back on my good ol C64 Basic I started with art. With the poke function you could put characters on the screen, change colors, etc. Put that in a goto loop and you've got a cool modern art machine.

The sound generator was quite rad too. 3-voice chords. Sines, triangle, etc waveforms.

My 12 year old self liked it a lot.

Re: Scratch is a big deal

#223

Earlier quoted context omitted.

QBASIC was also my intro to programming. I think in a way it’s a shame that kids now first see visuals rather than code. There’s something much more thrilling about seeing a bunch of written instructions become a game, than some sprites that already look a lot like the game start moving about. Another awesome QBASIC feature - the help section taught you everything you ever needed to know to learn every feature.

I was randomly messing around with a Chez Scheme REPL of all things recently. My 7 year old wanted to have a go. So I got here to do basic (+ 1 3) type stuff to add numbers. I think what made this work is I didn't explain anything, she did it, and if there was an error I would say why. She didn't question why the plus was at the beginning not in the middle like at school. I guess what I am getting the feeling of is "…

One-on-One learning like what you're describing is kind of the holy grail of all education, or the second-holy grail after finding ways of making students interested in things they don't yet know/understand (which is also the case most of the time in the parent-child bond, because kids are interested in whatever daddy and mommy do). This kind of enviroment takes the child from being a helpless ape to a functional human with intricate understanding of very complex rule sets (language, society, technology,...) in about 15 years.

But learning enviroments are typically the more inferior Many-To-One variant, so even if your child isn't confused by RPN, and even if (n-1)/n children aren't confused by RPN, the teacher must clarify it nonetheless for the 1/n student who is (or appears to be) confused, a book writer might have even less options and more constraints.

Basically, education is a very complex human-to-human Serialization-Deserialization problem. Knowledge isn't what's in the books, or the video lectures, or on github, all of those are just on-disk "dead" representations, the result of calling toString() on actual knowledge. Knowledge is all the intricate in-memory data structures built up in all the human brains that are currently living. The problem of teaching is : given a brain, reconstruct some of its internal data structures in another brain with an error not exceeding some threshold.

It's bad enough that you have to serialize the very rich and graph-like patterns in your brain into flat streams (words, pictures,sounds) to transmit it, it gets much worse when you have to do it for multiple brains simultaneously, because each brain parses streams differently. The more brains and\or the less you know about each brain, the worse your teaching performance and the uglier the representations you come up with to transmit your knowledge.

This isn't to say that teaching is easy when it's parent->child, just that (assuming reasonably healthy bond) it's as good as it ever gets. A single receiver who is extremely interested in whatever you have to say and will re-try on error a lot of times to understand it, that's the teaching problem on easy mode.

Re: Scratch is a big deal

#224

Earlier quoted context omitted.

Probably because his kid wanted to make a number guessing game? I feel like the last thing you would want from a children's programming language is "why would you want to do that? Go learn Java if that's the type of thing you want to make"

It seems like Scratch is made specifically for game development, since everything revolves around the concept of manipulating sprites. "Guess the number" is a game, but not the kind of game that this tool was made to create.

Hiscore tables in games are full of numbers.

Re: Scratch is a big deal

#225
post #2

One of my earliest memories of writing code was playing Gorillas, a QBASIC game, on my school's PC in the early 90s. My friends and I would tweak the source code to make the gravity stronger or weaker, or make other interesting mods to the projectiles. For me, it was a perfect introduction, because there was an already written, already playable program, and I could dive into the code little by little and explore. Scr…

Modifying gorillas? You and your and friends were rockstar programmers already. I remember looking at the source code and thinking "this must be black magic".

Thanks for bringing back the memories though. I looooved playing gorillas!

Re: Scratch is a big deal

#226
My son and I got a lot out of a similar iPad app called Tynker, which we both ended up liking better than Scratch, which he used at school. Tynker has a physics engine, which opens up all sort of great game possibilities (we made a cheapo Angry Birds). Also as referenced above, Tynker has a slightly richer language that gets rid of the need for some bad practices (e.g., functions can return values, you can declare local vars vs all-globals-all-the-time, etc). Having the tool work well on a tablet also travels really well, and is a simpler container than a browser window for a really young kid.

Re: Scratch is a big deal

#227

What age do you think I could start a gifted child with Scratch?

Gifted kids are all really different in their specific strengths. That said, for one with a well-expressed nerd gene, we started at age 6. I would start with an iPad app (slightly simpler container than a browser), maybe that gamifies the whole thing a bit with some easy on-ramps. For us that was Tynker and a bit of Hopscotch. It's pretty easy to tell whether you've got any sparks of interest on your hands, else no point in pushing it.

Re: Scratch is a big deal

#228
Scratch is overrated. The color blocks are a fantastic draw for getting a nonprofit funded, but for the children actually using it, the they're just an obstacle. Even at the youngest school ages, children grasp the grammatical concepts of programming effortlessly. It's the math that's the kicker--explaining modulus when they haven't gotten to division yet, binary & hex before they've fully grasped decimal, coordinate systems before they've learned negative numbers, etc...

IMHO, best modern tools for lern2code would be a tie between Lua/Love2d & p5.js.

And for 3rd place... you're going to think this is WAY OUT THERE... C--spare them the gcc esoterica of course--with sample project they can use as a scratchpad. Having types, but without all of the meta complexity of anonymous funcs, OOP, closures, dynamic typing, etc, takes a lot of the complexity (and frustration!) out of learning to program.

At the older & more social ages, the old web APIs were a wonderful stomping-ground. That avenue has since been narrowed-down & greatly so, for obvious reasons.

The Papert/LOGO/PARC stuff should be thrown into the fire. A military-industrial experiment on children; how quickly can we transform the random prole into a technician? Not that any of the researchers were "bad people" or even aware of it. It was a simple necessity of the times & typical "forest for the trees" situation. I think the numerical/visual/spatial primacy of this branch--trying to give kids a visual "feel" for mathematical representations before their brains are ready for the "real deal"--diverts focus away from many of the more "human" uses of the technology.

Re: Scratch is a big deal

#229
post #45

Earlier quoted context omitted.

Much of my coding was started with modifying the Minecraft & Wii internals and I would call that "modern software."

You're an outlier for sure. Wii internals sounds very hard.

Wii actually had a web browser and JavaScript API for the Wiimote controller. This comment made me remember a basic website I made for it back in the day. It was cool to use the Wiimote to interact with the page! The web games didn’t really take off though. I wonder if Wii emulators have the browser app? Video out broke on the Wii consoles in my family…

Re: Scratch is a big deal

#230
post #86

Earlier quoted context omitted.

If I remember correctly the early days were painful as well, with it being necessary to manually unpack the jar file, and work with deobfuscated decompiled code. I'm not sure what the state of it is nowadays, but I hope its more pleasant. My favourite game from a modding perspective is Kerbal Space Program. Just drop a Mono/.NET DLL into its GameData folder and you're good to go, and code completion works automatical…

I remember having to unpack the jar but I don't remember the function names being obfuscated or anything like that. Then again, this was a while ago.

If you used the Forge development environment, then it did the deobfuscation for you. They have it set up so well you basically don't even realize it happened.
Post reply on HN