Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
What's New in Scratch 2.0 (scratch.mit.edu)
156 points by rpsubhub on May 10, 2013 | hide | past | favorite | 47 comments


My son is finally make his space shooter the way he envisioned because of the new clone sprite action. Exciting times ahead, here is a pic of him getting down last night:

https://pbs.twimg.com/media/BJ3OudQCQAALZCc.jpg:large


Tell your son to put the lamp _behind_ the screen. It will bless his eyes.


He already has the programmer lean. I see many good things in his future.


First time I've seen him sit like that


Slim jims and everything.

I'm looking at an empty beer bottle and a nutrigrain wrapper.


I had to implement some unsatisfying hacks to make my Scratch shooter work as well! If I remember correctly I was manually duplicating the master projectile and I had to register each projectile against each enemy.


Using Alice 2.2 (which also doesn't allow cloning/instantiation) my students had a similar issue, and solved it by using what they called "Megaman logic".

Megaman could apparently only shoot N bullets at once (3 or 5, I forget). Thus, they only ever had 5 bullet objects, iterated through a list to see if the bullet was shot or not, and only let you fire if there was a spare bullet.

I thought it was very clever. Sounds like you did much of the same thing.


Just so! I had three projectiles (rock1, rock2, rock3) and they shared a global "fire selector" that operated as a sort of mutex.

https://www.evernote.com/shard/s4/sh/90b814fd-df52-4fcf-9127...


Im not sure if clone works as expected though. He has a laser beam and it listens for a 'shoot' broadcast. When it hears it, a clone of 'myself' is made, it is placed behind the ship, and a loop moves it to the left. However, if 'shoot' is broadcasted multiple times, new clones are not made and the same laser beam is placed behind the ship. Maybe we'll put the clone logic on the broadcast portion and not on the laser itself. Programming is fun, I can't wait to nudge him to try that approach


One trick some people used was moving to several positions and "stamping".


Completely unrelated, but how old is that computer? Is it PPC or Intel? How well is it holding up?


It is an intel (I don't know the exact specs because he is using it right now). It is mainly a browser/netflix/homework/science project machine, he does, however, game on it. And I mean WINE game. Simpsons Hit and Run, Starwars Battlefront 1 & 2, he is really into Spore now a days. He does play Simcity 4000 or whatever the old one is from time to time. I was considering an upgrade or giving him my 13 macbook pro when I get something new. We've had it for 3 years and I can't ask of more from something that I got for 200$ on craigslist. Its funny because while he has a very capable computer on his desk in his room, he would much rather do every task on the iPad.


I honestly wasn't expecting you to see this and respond, so thanks a lot! I'm working on some machine lifetime prediction stuff for work, so it helps to hear about real-world cases.


It's a 2ghz core2duo with 2gb ram. Another impressive feature is the wireless speed. He streams HD video from the basement with no problem, while my newer computer struggles from time to time. This has been a great computer for him.


Whoa, totally misunderstood. This isn't a client you install anymore? Bonkers.


Yeah, we were searching for a good bit before we found the FAQ. It says that a downloadable version will come this summer


One important thing that's new in Scratch 2.0 under the hood is the transition from the .SB file format (a rather complex SmallTalk object store) to a ZIP based bundle containing all required media along with JSON encoded scripts. The upshot of this is that consuming Scratch files in other apps should be a lot easier.

That said, one downside of Scratch 2.0 (at least in my view) is the migration to a Flash based editor/playback engine. And I don't entirely blame MIT for this, because Scratch 2.0 has been under development for quite a long time. Five years ago, Flash maybe seemed more appropriate than it is now.


Actually, there is at least one web-standards-based playback engine - http://wiki.scratch.mit.edu/wiki/Sb2.js

Although the content-creation tool sadly remains in Flash.


Flash sucks, but I'll take it over the old Java applet any day.


I dunno, the latter is much more stable in my experience.


I've talked with the Scratch team and I believe they went with Flash to serve the many schools with low-end machines and older browsers.


I used Scratch to teach my son how to program at 9; and now, at 11, he's doing JS/HTML/CSS at a beginner level.

We used the scratch programming for teens [1] book.

-----

[1]: http://www.amazon.com/gp/aw/d/1598635360/


2.0 may have been a long time in the making, but I just bought the Scratch Adventure book for my kids last week, which uses 1.4, unaware of the pending update. When I went to the site to download Scratch, it was down while preparing for the 2.0 release. I thought it was a pretty ironic introduction to programming, always new shiny objects.


Indeed! Don't let that stop them from having fun, though.

For the book, you can still download 1.4:

http://info.scratch.mit.edu/scratch_1.4_download

And all the games should still work in the new 2.0 interface too; it's an overhaul of the development environment, with backwards compatibility. (I'm updating the book now for 2.0, I edited it.)


I'm really glad to hear that! My 9 yr old daughter and I just finished going through this book on 1.4 and had a lot of fun. Do you happen to know if any of the projects will be different? I'd certainly buy a new copy again for additional projects.


We'll have some entirely new Scratch books with "harder" projects in the Fall, I hope. Physics simulations, geometry, math and science-oriented projects, not just games.

Some great new authors working on those, and not just Scratch too, but some "real languages".

But sadly, the 2nd edition of Super Scratch will probably just be an update to stay relevant, not an overhaul.

I hope that Edmond, the author of that first edition, will write a second book, but that depends on his time. You can check out some of his other Scratch projects here: http://scratch.mit.edu/users/LEAD/


That's great news! I appreciate it and I'll keep an eye out for those books.


Great, glad it's backwards compatible.


I'd love it if anyone could give a good head to head on Scratch 2.0 vs. Snap! 4.0[1] (the new name for BYOB, Berkley's Scratch spin-off). I realize that Snap is aimed more teaching high school/college CS, but they're seeming to converge a bit.

I don't have a CS class this year, so I haven't set aside enough time to dig into the latest versions of Snap or Scratch. If anyone has any insight to share, it'd be greatly appreciated.

[1] http://snap.berkeley.edu


From a purely technical perspective, the biggest difference is that the Berkeley team (Snap) re-implemented in JavaScript, and MIT (Scratch 2.0) in Flash. The former also uses XML as a format, the latter JSON (in 2.0).

Like you say, Snap's main difference is it makes some more advanced CS concepts more overt, primarily for use as a teaching tool for older students. To this end, it doesn't have the deep social integration that Scratch does: remixing and sharing are a big part of Scratch.

But that isn't to say that Scratch isn't suitable for high school or college level courses - Harvard's been using Scratch in the first week of it's intro CS class for several years now, with great success. The advantage of Snap is that transitioning from it to pure coding can be less of a leap, due to support for things like recursion, procedures, and continuations.

The Lifelong Kindergarten's remit at MIT means that they tend to place emphasis on a certain age range. In addition to Snap there's also an offshoot of Scratch targeted at very young children (Scratch Jr, which I think is developed by Tufts).


So Smalltalk is gone?! :(


Thank you!


Since Snap doesn't rely on Flash, it nominally works on an iPad.


It does, kind of, didn't try it our extensively but I got things to happen.


Requires an "always on" Internet connection.

Coupled with the Flash front end, that doesn't make me hugely happy.


Anyone know more about how the social features are moderated? Thats my first thought these days, sad I know but...


I don't know how they do it. I have seen some pretty freaky games on their webpage, and I have seen a lot of games uploaded from game-programming events that I have hosted.


What does this mean for the Raspberry Pi? Will Raspbian's default browser be able to handle it?


Does anyone have any recommendations on at what minimum age should this be introduced to kids? The website recommends 8-16 years, but then I was doing real programming at the age of ten, so eight may not be the best answer. My son is five right now.

Introducing too early seems to have a downside that if my son does not like it (or cannot grasp it), he develops a negative feeling towards it like boredom or else, and then subconsciously does not want to return to it even at the right age.


During Coding Goûter sessions, kids as young as 5 have played and created things with Scratch 1.4 and loved the experience. They are begging to come back, and it becomes a very usual thing to do, which is exactly our goal.

(Note that we mix kids, with ages ranging from 5 to 14, and always a 50/50 ratio of girls/boys, not via quota but because of the way the events are planned. So we also have older kids. It's good for the younger ones.)

At this age, they (usually) don't read, so they generally are working with an adult and another kid, or in some instance with an older kid (my just 6 years old daughter for example worked one of the firs times with an older girl that knew Scratch.)

A very important thing to do is to let the creative direction to the kids. Don't force the programming of a shooter on them. They have lot of ideas, and they will be more motivated if the idea come from them. Also they will be proud to see it happen. They'll want to move things, animate, etc. They'll want to copy things they have seen. Letting them draw on paper, for example a character, then taking a picture and incorporating it in Scratch is a nice way to alternate between two different activities (solving the "will they focus for long?" question)

If you want to know more: http://codinggouter.org and my talk at FOSDEM: https://fosdem.org/2013/schedule/event/coding_gouter/ may be helpful


8 is the right age. We teach dozens of 8 year olds. The basic principle is: if they can sit still for an hour or so, and concentrate, they can learn Scratch. If they're all over the place, forget bothering until they calm down.


You can show him that it's a paint program, then blow his mind one day when you can make his little characters say something and move around. Maybe have him make a ball one day and save it - when he's not around, go in there and add some gravity, momentum, friction, and elasticity. Later ask him to check out his ball sprite it should be pretty big surprise when you click the flag and the ball falls and bounces. My daughter loved just playing around with the painter.


My son and daughter at 4th and 5h grade were able to really take care of things by themselves almost entirely, my youngest son at 2nd grade needed a lot of help while mine craft is no trouble at all for him. Hope that helps.


My son will be 7 this month. We started Scratch probably 1.5 years ago. He loves it. Of course, I used to come up with projects and we did them together. But recently he started doing them himself.


This is huge! Vector graphics and cloning are things I've wanted for years. It's also great to see it alk in the browser.


Did anyone really want an in-browser editor? It's the kind of thing that's cool in theory, but not productive.


but but how it will work with the lego wedo now ? :(




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: