Hacker News new | past | comments | ask | show | jobs | submit login
Scratch 3.0 (mit.edu)
476 points by tumidpandora 3 months ago | hide | past | web | favorite | 110 comments



I teach kids to code on a volunteer basis. Although Scratch is very good, the kids usually gets lost. Even when we print out the solution for them to follow. When they don't get lost, it seems they are not having as much fun.

My experience is that it is literally 10 times more fun for the kids to learn to code Python with http://www.codecombat.com . The classes gets filled with excitement when I put on the 10 hour version of "Diablo Town Music" and tell them to log into Codecombat. Very rewarding actually :). I register free accounts and bring these to my classes on a printed sheet, that works great. As such I don't need to pay for the classroom edition. I have actually let Cidecbat know about this pricing flaw, but no new models have been introduced that fit my use case has been made available. This is Codecombat does not have a pricing tier that fits my volunteering classes with random participants well.


Scratch is a tool with the freedom of creating whatever comes to a kid's mind. The block based programming style in Scratch relieve the kids from fighting the keyboard and it prevents syntax errors so they can focus on programming. You can use Scratch to build own games, stories, movies, music applications and you can connect it easily with hardware like MakeyMakey or even Lego. It's about producing not consuming and Scratch is the perfect tool to do so.

I don't know the platform you mention but it looks like the advanced (because Python) version of games you find on code.org. So I expect a linear progress, where you tackle task after task. This can be fun and also creative but in a limited fashion. You should not withhold Scratch from the kids so they can experience the freedom of building their very own things. Be critical and ask yourself why the kids don't have so much fun and why they get lost.

Maybe you can start with easier exercises, try out other tasks and challenges you never used and let the kids be creative already in the beginning: Teach one or two new blocks, give some rough ideas and let them do whatever they want. No blueprint or solution sheet required in this case. Coding kids have so many ideas - they will make it fun by themselves.

I think there are many ways to do it. I just wanted to point out the difference between Scratch and game based learning platforms. I also teach kids in my spare time and I think we are doing something very important for every single child. So thank you!


My daughter and I play Factorio together. There are a lot of emergent properties in Factorio that are relevant to programming.


Woah, coding gamified like a phone app. This is the correct way to get engagement from kids. Premium quality too.


From what I've seen, the graphical element is what engages the kids. And block-based is easy to gat started - Scratch/Snap/Mindstorms.

Generally learning python is mostly text-based. CodeCombat looks graphical -- how are the graphics done? What needs to be installed? (codecombat.com just stopped loading)


Text is graphical. And block-based in a monospaced font.

As a (former) child who learned to program, what you're saying is true but irrelevant, because text is fun to work with.


Your experience with scratch reflects my own with all the block-based UIs. Some stuff is really easy but when we wanted to do things like functions, arrays and populating variables I couldn't figure it out without searching on the webs. It made sense after I found the correct way to do it, but the visual metaphor gets convoluted beyond pretty simple use cases.

When programming the microbit and I like that you can switch between javascript and blocks to see the cause and effect of making changes though.


For a little more context, with what age groups do you work?


The kids are 9-13. They all liked it, regardless of age. We had like 10 sessions last year. Codecombat is instantly engaging and so gamified, the kids are glued to the computers and want to figure out how to get to the next level. Plus, it's fun for the teachers when it goes so well every time.


My brief review suggests it's popular for the same reasons that many of us loved incredible machine or even lemmings: logical puzzles with challenging but attainable rewards.


Scratch is pretty great, and at least 3 of my kids constantly ask if they can play Scratch. Unfortunately, for 2 of them it usually means just putting characters on a stage and adding code to change their costumes when you click the green button.

But if you have kids who want to step up their game from Scratch, check out PICO-8 (submitted it earlier today, check my history). It's genuinely amazing, and my oldest absolutely loves using it. He's made some awesome 2d games so far over winter break and he's using legitimate programming concepts and techniques like they're nothing, it's really amazing to watch.


Another way to level up from Scratch is BlockLike.js (https://www.blocklike.org).

It’s an educational JavaScript library that follows Scratch concepts and patterns. It is specifically designed to bridge that huge gap between draggable blocks and typed code. Disclosure: I’m the author, AMA.


Also if you think pico-8 is a toy.... Well it is a bit; is intentionally constrained. But some actual commercial successes started on pico-8, like Celeste which is now in the switch store.


That's pretty cool! How did they port it to new architectures?


They prototyped it in pico8 and rewrote it for the commercial release. Pico8 is wonderful, but it’s designed for proof of concepts, not commercial game dev.


It's almost assembly -- far from designed for proof of concepts. It's a toy for folks who enjoy challenging technical limitations such as low resolution, limited storage and processor power (not to mention palette).

Tight constraints tend to breed innovation, however.


I mean it’s definitely a way to enjoy things. But the intent of zep who made it was to create a cozy design space. He gave a talk about it last year:

https://www.youtube.com/watch?v=87jfTIWosBw


Thanks for the link. The presentation is great!


Hrm, guess it depends on your notion of what proof of concepts are. Celeste on pico8 is essentially the same game as the commercial release from a gameplay perspective but with lower res artwork (as pico8 dictates) and far less content (again a pico8 constraint). Also, I have tooled around with writing homebrew NES games in 6502 asm, and pico8 is nothing like that. It’s a stripped down lua interpreter, which makes it light years easier than asm. I’ve proved out quite a few concepts in pico8 (pendulum motion, an entity component system, 2d physics models), so for me, that’s exactly what it’s for. The constraints of the platform are there to act as guard rails which prevent you from going “too big” with your idea and focus on creating smaller programs that actually work, and I think this is where the beauty lies since a lot of games die during the “let me create a bunch of scaffolding” phase which pico8 discourages.


It’s lua, just with restrictions. Nothing you’d ship with, but a far cry from almost assembly.


+1; also strongly recommend PICO-8.

I've been using it to teach programming to my 7 yo, and it has been an absolute joy. A few weeks ago we developed PONG together (he wasn't aware that PONG already existed, so it was beautiful to see him figuring out the mechanics of the game, piece by piece).


Voxatron from the same developer is also a lot of fun. I got both in a bundle deal for like $15 I think. Well worth it.


Voxatron is really fun. It's been a while since I've looked into updates. This blog post[1] says "Voxatron now runs on the Looking Glass". That looks like it would be insanely fun and inspiring to use.

[1] https://lexaloffle.com/bbs/?tid=32743 [2] https://i.lookingglassfactory.com/


Wow! Super cool!


And if you cannot afford PICO-8, there is a free TIC-80 alternative.


Very nice, I've been volunteering in a group, we've been teaching Scratch to kids from 7 to 12. Can't wait until I show them this

Is there any significant difference between TIC-80 and PICO-8? both looks awesome to me


TIC-80 is not only free but actually has more features than PICO-8. Supports more languages for example. The display resolution is also higher. The code memory limitations bigger.


I just discovered this amazing classic demo by Margaret Minsky from Atari Cambridge Research Labs, demonstrating a gestural programming system with a button box for programming with a pressure sensitive touch screen, developed by Margaret Minsky, Danny Hillis, Daniel Huttenlocher, David Wallace (Gumby), and Radia Perlman at the MIT-AI Lab.

https://www.youtube.com/watch?v=-Wq6SQTVM9M

This is one of many amazing videos from Cynthia Solomon's treasure trove of youtube uploads.

https://www.youtube.com/user/cynthiaso/videos

If you act now, you can be the 32nd person to watch this video of Seymour Papert demonstrate the Logo Turtle! ;)

https://www.youtube.com/watch?v=lDyym_9-E-g

Or be the 39th person to watch this video of Seymour Papert explaining how giraffes sleep:

https://www.youtube.com/watch?v=ha8sTgtUejM


John Carmack has mentioned that he uses a visual Lisp environment on iPad. Scheme-based, iirc.

It's somewhere in here, I think (but alas I'm not up to listening again through half an hour of the old lady voice): https://youtube.com/watch?v=1PhArSujR_A

I feel like marrying Lisp's meta-programmable DSLs to an easy visual environment is the ultimate cosmic dream of 'domain-centered' programming and customization for non-coders―but it also seems to me that Lisp is rather text-based, trading a readymade set of operations picked in the interface for infinite extendability through text. So I'm not sure if a visual Lisp is any convenient to use.

Also, for me the immediate downside of the Lisp environment in question is that it's only available for iPad.


I'd say Lisp is S-Expression based, and it's easier to make both text and graphical interface to S-Expressions than to the syntax of typical text based languages.

By Apple's decree and app store policy, any programming language on the iPad that isn't purely based on the JavaScript interpreter in the web browser isn't allowed to download and run executable code, much to the frustration of Alan Kay, who is weary of people comparing the iPad to the Dynabook without acknowledging that Apple left out and prohibited his most important idea on purpose: user programmability.

If Carmack's visual Lisp is implemented as an iOS app with locally running native code, and not purely in JavaScript running in the web browser, then he has to build it himself in XCode on his own Mac for his own use with his own Apple developer certificates, and he isn't allowed to distribute it on the app store.

If you can implement your language purely in JavaScript, like Snap! or the web version of Scratch 3.0, then it'll run everywhere, and isn't an iPad app, just a web app, so it's not bound by the restrictions of Apple's app store. That's the way to go if you can.

https://snap.berkeley.edu/


He uses Racket.


This is amazing, thanks for sharing! do you know what year are these videos from? I couldn't find any reference.


> Scratch Desktop on Linux is currently not supported. We are working with partners and the open-source community to determine if there is a way we can support Linux in the future. Stay tuned!

Apparently from version 3.0 Scratch is proprietary and doesn't run offline on free operating systems[0]. That's just sad. There are some good ideas in Scratch, but I think Snap![1] is the better one to use: It's free, and you can create your own (recursive) blocks[2].

[0]: https://scratch.mit.edu/download

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

[2]: https://www.youtube.com/watch?v=rXN81Hsj_A4


Where do you get the information from that it is proprietary? As far as I see it it's licensed under BSD3-Clause [0] which is a OSS license, despite being more permissive.

[0]: https://github.com/LLK/scratch-gui


On the Scratch download site, which I quoted, I could only see binary downloads and the information that "Scratch Desktop on Linux is currently not supported."

That made me assume that it was proprietary, but I'm very happy to be proven wrong about this. Furthermore it looks like unlike 2.0, Scratch no longer depends on the proprietary Adobe Air component, so if that is the case, it's a big improvement!

It would be less confusing if they'd replace "Linux is currently not supported" with a link to their repository on Github. I might contact them about that.

Can't wait to try it out!

Does anyone know whether Scratch 3 supports recursion like Snap! does?


Thank you for that. Is that link (to github) discoverable any way from the scratch site?

Last time I looked, I didn't manage to find it anywhere...


How many more kids would learn to code with an offline Linux desktop version, given that a superior version also runs in the browser?

Compare that to internationalization, which they support out of the box with 40 languages, and which countless projects ignore.

What features should they have sacrificed for the port? Sound and music? Lego mindstorms integration?

I don't think it's sad that the offline version doesn't run on Linux. It sounds to me like they know their target market and are prioritizing their engineering effort quite well.


Snap is written in JavaScript. Even if there's no internet in the classroom, it's easy to set up an ad-hoc wifi and a web server to make Snap available on any wifi-capable device with a web browser.


To be honest, if it runs in the browser then it should not be that difficult to make a portable off-line version that launches a server that lets you open stuff through localhost.


I disagree that lack of Linux support is sad. Linux has a tiny a market share in desktops. Hence the number of potential users who would be blocked by this is tiny. Hence there is very little loss.

Thanks for the Snap reference! I wasn't aware of it and agree that it appears very appealing.


What I like about Snap! is BYOB - the offline editor. Our family travels and is occasionally without Internet access for up to a week, but with BYOB I can continue my 8-year-olds coding challenges without interruption. (There was a Linux version, but last I checked the download and support links were broken. I emailed the site maintainer but have received no response.)


Most people use the web version, in Chrome/Firefox/Edge.

They do also have a desktop version (PC, Mac) for those without Internet access. But the strength of Scratch is the online sharing and community.


They’re crazy if it’s not open source.


It's here: https://github.com/LLK/

The license appears to be: BSD 3-Clause "New" or "Revised" License


I started programming with Scratch 1.2 back in 2007. I'm now a computer science major in college, so I'm glad to see the Scratch team at MIT continuing to make great progress. Scratch (and similar programming environments) is a very successful way to introduce children to programming and I hope that it continues to do so.


Now that you're a computer science major... is there anyway you could think of making a better environment for learning? I personally really struggled with "connector-set" style programming thing like Scratch. It always felt too limiting, or, I don't know... forced? It's very obvious how the blocks match to code - so it feels (to me) like it's "begging the question": to know how to connect the blocks you need to know how to construct the code. It's like it's missing a layer of abstraction after you figure out the very basics.

Lately I've been wondering if there is a better way that doesn't match 1-to-1 with coding constructs - something visual, but something that isn't just "a for-loop represented as a physical block". Not sure what that would be though!


It is really limited, but kids pick it up MUCH more quickly than anything else I've seen.

Alice ( https://www.alice.org/ ) is a step more advanced than Scratch, and works well for my middle-school-aged kiddo, who can work through exercises in CodeCombat ( https://codecombat.com/ ), but has trouble with javascript||python in less structured environments.


FWIW if you are greeted with a white page try using Chromium. Apparently the site doesn't work at all in Firefox64 with an error about lazyYT being undefined (I sent an email to webmaster@).


The default output of Scratch being on the stage is a big step up from text as far as intuitiveness goes, and it allows beginners to accomplish a lot more with a lot less work.

I'm not sure how it would work, but it would be very nice if Scratch emphasized creating functions and building with more advanced programming concepts. Last time I played with it, functions and "make your own block" were hard to access and not necessary for the target audience to make basic games.

Although it's gotten smaller, I think it's Scratch's responsibility to close the gap between it and a "real" programming language.


https://en.wikipedia.org/wiki/ToonTalk shows a different approach that I think could stand to be tried more. You 'train a robot' to do the thing, then generalize the example by erasing specifics. It's said to scale from children who can't read to real CS using recursion.


Not parent, but I also got to touch scratch back in the 06/07 time period, and found it quite pleasant.

My initial environment for learning however, had been a TI-83 calculator, and had StackOverflow existed back then (or had the calculator come with a "quick start coding examples" book or something) it would have been 200% ideal. As is I learned most of the core concepts via trial and error, because I was very motivated to make games for my friends and program solutions to homework problems. For keeping me interested at that age the "Real world applicability" aspect cannot be understated.

To share a fun failure mode however, and emphasize the need for accompanying documentation (and this is what scratch does somewhat well in being rigid, at the tautological downside of being rigid) When I first learned about for loops, I didn't actually realize how one used them typically. I thought they were a "wait for N seconds" sleep-style function, and would actually use it in this fashion with laughably high loop iterations and strange formulations in the boolean field.


Help fellow TI-83 programmer! That's what I would do back in my high school days. Also learned it to make silly little games like rock-paper-scissors, guess the random number (difficulty was larger number ranges, you'd get 'higher' or 'lower' as feedback after each guess, if you got it right it would list out how many tries it took), and of course a simple 8-ball.

I was also completely unhappy that schools tested learning and perfection at the same time. If I solve a physics problem using the correct formula but make some silly error along the way and get a wrong answer that really sucks since there's not usually enough time to check work. So... I wrote programs to solve any and all equations we'd learned so I could really quickly check my work for correctness. We had to write out all the steps to solve the problem anyway so it never felt like cheating to me, just proper validation :)


I've been working on a visual programming language where "the pictures are the code", in a sense. It's called BlockStudio, and you can use it online (for free) [1].

I'm curious to hear your feedback (if you do try it), because you've asked the sort of question that prompted its creation.

[1] www.blockstudio.app


I've been wondering the same thing. I feel like there could be a more exclusively visual programming paradigm.

I wish there was a better way to program on mobile, because typing just doesn't feel good. Maybe a visual way to program could bridge that gap.

I also feel that kids would love to be able to create their own install-able apps with something like Scratch. Maybe could be done with something like PWAs?


Quick plug for my node red port to android (and can do ios) https://github.com/alexisread/noreml

It's missing a table component really for UI programming, but can support visually programming apps on mobile devices :)


There are a few ways to create actual apps/exes, but none are actively supported or very good.

The new version of Scratch does work on mobile, but it needs to be optimized.


There's always the classic LOGO environment. You get all the same visual fun but with a "real" lisp-esque programming language


This is my story exactly... installed Scratch on my parent's computer and used the software all the way through version 2. Huge influence on the path I chose.


It would be cool if something evolved from Scratch to become a modern Visual Basic, something not just for learning and play; that went mainstream for the masses. imo the biggest problem with most programming languages is user uncertainty of constraints. It has parallels with GUIs vs command lines. Command lines have no visual constraints with what you could type. i.e. the user doesn't know what they can and can't type. The GUI on the other hand shows everything that a user can do visually. It has constraints. There are only so many buttons and menu items. It helps limit fear and confusion. While IDEs do help bridge this gap, they only go so far for people who aren't as motivated as programmers. It would be nice to have a programming language with this feature (I know they already exist) to go mainstream.


It’s interesting because Apple, once upon a time, had the exact opposite hypothesis: their language AppleScript barely had a documented syntax, and it aimed to allow any natural language (e.g., and I likely misremember, “tell the first application whose visibility is visible to set its visibility to hidden”). In theory, this could let anyone script their system, even non-programmers. In practice, it was impossible for even a seasoned programmer to know if a program would compile. Their later Automator GUI was much more successful, bringing visible constraints and prompts, but far less flexible. There is so, so much space to experiment and research good interaction methods in this space.


I taught kids programming in an after school program for 4 years. Scratch was the tool that explained a lot of concepts best (and allowed those students who had trouble, still feel like they achieved something meaningful in the course)

I took a look around and saw some nice improvements to areas where Scratch always seemed crufty! Plus it loaded fine in every browser I tried!

That's a great update and I can't wait to see what the extensions are like


I teach kids from 6 to 12 years with Scratch (and other tools) in my spare time. If you are a developer you should try it out. It's amazing how creative kids are with a tool like Scratch. My programming career started with Flash 4 and allowed me to work with sound, audio and animations together with the possibility to program and to easily distribute it (there was a single swf file).

Scratch is like the distilled version of it optimized for kids. I would have loved it as a kid and I see how natural children can work with it. Mitchel Resnick and his team did a great job with Scratch and it's amazing to finally see it working in HTML5 - after being a Flash based application.

Teaching coding to kids is important and as a developer it's easy to say so. Some day I made the decision to think about the why to better explain people why I do the teaching. The end product was a 25min talk I gave at the JSConf EU 2018 in Berlin. Maybe that's of interest for parents reading here about Scratch and of course fellow developers interested in teaching coding to kids.

https://youtu.be/t0m5rrKKMOA (About Coding Kids and Screaming Carrots — JSConf EU 2018)

Here the slides and all information I mentioned in the talk: https://github.com/georgiee/coding-for-kids

My summary why a kid should learn coding:

  > It's about teaching kids to be producer instead of a consumer 
  > so they can build their own games, tell their own stories 
  > and create their own music.


Flash? Scratch was written in Smalltalk.


That's Scratch 1. Scratch 2 (2013) is based on Flash so it can be distributed in the browser (via Flash Plugin) and as a desktop application (Adobe Air).


Note that Scratch 1 could also be distributed in the browser using the Squeak VM plugin. Except school IT people wouldn't allow students and teachers to install that as too dangerous (meaning, they hadn't heard of it) but they would allow the Flash Plugin to be installed. So the rewrite was to solve a political issue rather than a technical one. Sadly, this happened right when some key people decided that Flash was evil, so a second rewrite became necessary.


If you are looking for the "next step" after scratch for teaching kids how to code, I recommend:

https://www.robomindacademy.com/

It's a text based language, but you program a graphical robot to do various tasks. I've found that it's a great combination of fun and actual coding that helps kids transition from something like scratch to more advanced languages and concepts. I'd say it's good for kids around 12 years old.


Thanks for that recommendation. My kid started with Scratch and then did several of the Code.org courses and Hour of Code activities. Been wanting to move him on to learning "real" programming. Was trying to find an easy, online, self-paced Python course but have not found what I want. We've been working through "Invent Your Own Computer Games with Python" book. The programming concepts are not too advanced for him but there is a lot of reading between each step so I have to sit with him and read through it together or boredom and attention span become an issue.


Scratch also has a friendly, supportive community. Kids engaging in civil discussions, and building off other's ideas.

Lots of idea sharing, because you can click to see the "code" inside anyone's project.

Scratch 3 is a major re-write, to eliminate Adobe Flash. It also has extensions (the example given is to integrate with Google translate and Lego Mindstorms).


> Scratch also has a friendly, supportive community. Kids engaging in civil discussions, and building off other's ideas.

This makes me happy. There's hope for humanity yet.


I've been playing around with the beta for a while, it is really impressive, and my 8 year old loves it. I also got a microbit which you can bridge into the scratch environment with their official plugin

just for peoples interest, their github is https://github.com/LLK/

The new 3.0 GUI is done with react.


I'll always prefer Snap because it has so many features that allow teaching best practice, but Scratch sets the benchmark so I'm pleased to see its evolution continue — and hopefully some of it will make its way into Snap and other Scratch clones.


I also like the fact that snap is Free software - I'm still not able to find out from the scratch 3.0 website if scratch can be easily self-hosted, modified etc?

Snap is on github: https://github.com/jmoenig/Snap

It also is based around js, and can import scratch 2.0 sketches (not sure how well that works in practice) - I wonder if there's any collaboration with MIT scratch moving off of flash to js - or if they did everything from, well, scratch ?


I have been teaching my 5 year old daughter Scratch 3 since it was in beta. I am slowly writing some tutorials for other parents as I have been asked how they could teach their kids how to program. I am looking forward to some of the new features that should come with this official release


If you like Scratch you will love Alice 3D: https://www.alice.org

And for younger kids Scratch Jr. is great https://www.scratchjr.org


Everyone I have ever known that was exposed to Alice hated it into their very bones.


I started my son on Scratch when he was 6. He is now 9 and runs a lunchtime coding club at his school teaching other kids to use Scratch. I have looked around for the next step for him to improve his skills and found that Lua Löve to be the best one.


Hopefully this solves some core problems like being able to use it smoothy on multiple platforms outside the browser.

I've found previous version of Scratch to be frustratingly limited unfortunately.

I don't mind, and expect, kids software to be limited but Scratch makes it really hard to do certain things. It's a pity because it holds the number one place in market positioning for free software for educating kids on how to program.


Can you provide any examples of something that you think is difficult to do? I’m doing research on similar languages and would like to understand barriers people have.


I helped out with a coder dojo where we used Scratch to teach kids to code. In that setting the biggest barrier was the parents getting in the way of their kids natural exploring. Solve that and you can basically just put a kid in front of scratch and expect them to be productive on their own within a few minutes. Just be there to help them get unstuck. A pre made lab can be helpful though.

Most problems I’ve seen them run into are basic algorithmic issues. “I want the ball to change direction when it reaches the wall” we’ll “perhaps we can let the ball test if it is at the wall? Here’s a block that does tests”


I teach Scratch at the MADE (video game museum in Oakland) and I've run into the following:

- Mutual sprite collision (think a projectile hitting another sprite, and wanting it to both disappear and do damage to the thing that got hit) can easily have race conditions unless you take special care to avoid them - Scrolling games are hard to do for a number of reasons (backgrounds don't natively scroll, sprites have fairly hard size limits and can't be fully moved off the edge of the stage) - As others have mentioned, the inability to share code between sprites outside of clones is a bummer - The heuristic for waiting for the next frame in a loop works well for simple stuff, but gets in the way for more complicated things. You can work around this by defining your own block and enabling the "run without screen refresh" option, but if you accidentally create an infinite loop in that block, the entire UI becomes unresponsive (at least in Scratch 2, perhaps they've fixed that in Scratch 3)


I wanted to make a simple game where using arrow keyws you move around a top down map display and kill monsters and shoot arrows and find treasure, with trees scattered about.

I didn't find this easy at all and it seems like something that shouldn't be hard.

Also it is/was based on Adobe Flash and none of my systems or browsers have Flash.


The Adobe Flash issue is actually the main thing that Scratch 3.0 solved - it's now all Javascript.

Your example project should be relatively simple in Scratch. Certainly many users have done similar things. Perhaps you're trying to do it in ways that work in common programming languages while it requires using different idioms in Scratch?


You certainly have to write several logic yourself like making the physics engine (minimal one), object detection, resource loading hiding logic etc, which is not trivial in scratch. There may be other built for games platform that provide these features for free..


You can't have shared code between sprites (IIUC), so the only sharing is via copy paste, which is unmanageable.


You can, however, make "clones" - essentially instances in OOP except that there has to be one initial instance.


It really never occurred to me to try that for sharing code as opposed to just having multiple of the same sprite (bullets, enemies and the like). Still it's not hugely satisfactory because it implies a single common sprite, loss of the intuitive wysiwyg aspect (such as it is), refactoring to utilise, and then presumably large 'switch' statements to recover the difference in behaviour between the clones.

Also found communicating between scratch objects via the asynchronous message passing to be seemingly too slow and it would have been nice to be able to call methods on another sprite (although I assume they are trying to limit the potential for uninteruptible infinite loops and the like by having each sprite execute separately).


Funny, I started out impressed to find, unlike in so many announcements of its kind, a prominent "What is Scratch 3.0?" heading, I guessed for those of us who have not been tracking Scratch from its inception.

What I found there was, basically, "This is version 3 of Scratch", i.e. completely uninformative to anyone wondering what in blinkered hell Scratch is, who it's for, what it's for, or why I should care that there are now three of it. "Scratch" is a traditional epithet of Satan. So, guessing a Satan animation for kids?

I guess they will have a chance to do better if they last to 4.0.


I can't stop wondering if Scratch's visual block approach could be extended/modified to fit real-world programming tasks efficiently. This can be especially valuable to let people code on smartphones.


The two I know of are Google's Blockly (https://developers.google.com/blockly/) and Microsoft's Touch Develop (https://www.touchdevelop.com/), which is more capable as a standalone app development platform.

I've tried writing a small program with each on my phone and quickly grew frustrated. It just isn't efficient for me. I much prefer the familiar ground of using Python on Termux using Hacker's Keyboard, and, even then, only to tackle trivial stuff that a calculator can't quite handle.


We build Construct 3, another web-based block programming editor, using a different approach which we think is more powerful and can make more sophisticated games. You can check it out at https://www.construct.net


Construct is targeted at professional game development market. It's not comparable with Scratch which targets the creative programming education. Construct is a full closed source proprietary premium payed ecosystem for professional game developers. Nothing to do with the open source, completely free and joyful nature of Scratch which delights the young creative minds of tommorrow (and today!). On top of that Scratch has an absolutely caring, loving and vibrant community.


Ashley, it may be too late now, but would it be a far fetched idea to make a Construct 4 with the engine in C++ or Rust or any language that can be compiled to WebAssembly, and make the web runtime with WebAssembly ? That would be the optimum way, of course harder then the current one. WebAssembly is shaping up pretty nice, i'm impressed. Or, another nice option would be to have native/web hybrid progressive web apps with WebAssembly running as exes in the machine, with lightweight exe sizes. Well , one can dream :)


The other day I was looking at the gallery and I found this "Complete XML Parser":

https://scratch.mit.edu/projects/780538/

LOL I want to hangout with that kid!


I can't open the link, but from the main scratch site there is an example sketch celebrating the new version, and I see a lot of complaints in the comments about this breaking existing projects:

https://scratch.mit.edu/projects/276660763/

I hope that that is just due to a misunderstanding by the users (trying to load a 2.0 sketch in 3.0 or something), and not a sign of badly handling the upgrade?


There are also a lot of comments that say that scratch 3 is worse than scratch 2 in general. Doesn't surprise me because scratch 3 seems ambitious, and kind of reminds me of WordPress's Gutenberg.

Whether the big problem is that scratch 2 is arguably better or it that it breaks scratch 2 projects, it would have been nice if they continued to fully support scratch 2, rather than just the "offline editor". I understand if they didn't have the resources to support it though.


flash is dead. that makes any application built on it unsupportable. that's not a question of not having resources, but one of not wasting them.


They could have attached a disclaimer that said it only works on desktops, is no longer actively maintained, yada yada yada, but kept hosting Scratch 2 projects. And depending on how the servers were set up, it might not have been that expensive.


I'd be OK with see breaking changes if it's clearly explained and if it's a path to a much better technical foundation for the future for Scratch. As mentioned in a different comment - Scratch has the leading market position and incredible but wasted potential IMO.


scratch 2 is a technical dead end being based on flash.

so yes, version 3 in javascript is most certainly on a better technical foundation than v2.

personally, i wish they would have stuck with the original implementation in smalltalk, but javascript is at least a logical choice for today.


Two things that my son hated about the beta, and haven’t changed in the release, are they moved the playback pane from the left to the right, and the sound editor is less fully featured (e.g. can’t delete within sounds, only trim them).


Web archive link (because the site seems to have been slashdotted): http://web.archive.org/web/20190102213301/https://scratch.mi...


It took me too long to figure out how to run my scratch. A run button would be nice for us old people.


For reference for other people, it's the green flag button near the upper right hand corner. There's also a tutorial that runs if you go to https://scratch.mit.edu/projects/editor/?tutorial=getStarted that shows it.


If you are encountering a server error, you can check out the wiki: https://en.scratch-wiki.info/wiki/Scratch_3.0


Going to that link, AntiMalwarebytes reports it blocked 2 urls because "spyware" and "trojan" respectively.

both from a site called "cubeupload"


Can scratch be run offline?



Any recommendations on tutorials suitable for 6yo for Scratch?



its arbitrarily blocking opera :(




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

Search: