11 ms·
Scratch 3.0
- andrewstuart 8y agoHopefully 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.
- azhenley 8y agoCan 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.
- andrewstuart 8y agoI 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.
- gbear605 8y agoThe 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?
- murukesh_s 8y agoYou 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..
- lsd5you 8y agoYou can't have shared code between sprites (IIUC), so the only sharing is via copy paste, which is unmanageable.
- gbear605 8y agoYou can, however, make "clones" - essentially instances in OOP except that there has to be one initial instance.
- lsd5you 8y agoIt 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).
- CuriousSkeptic 8y agoI 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”
- mikepavone 8y agoI 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)
- johnzim 8y agoI 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
- vanderZwan 8y agoI 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/ 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?
- benatkin 8y agoThere 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.
- em-bee 8y agoflash 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.
- benatkin 8y agoThey 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.
- andrewstuart 8y agoI'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.
- KoenDG 8y agoGoing to that link, AntiMalwarebytes reports it blocked 2 urls because "spyware" and "trojan" respectively. both from a site called "cubeupload"
- zapzupnz 8y agoI'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.
- e12e 8y agoI 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 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 ?
- dingdingdang 8y agoCan scratch be run offline?
- gbear605 8y agoYes! https://scratch.mit.edu/download https://scratch.mit.edu/download
- Jemm 8y agoIt took me too long to figure out how to run my scratch. A run button would be nice for us old people.
- gbear605 8y agoFor 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 https://scratch.mit.edu/projects/editor/?tutorial=getStarted that shows it.
- gbear605 8y agoI 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.
- mrspeaker 8y agoNow 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!
- brianm 8y agoIt is really limited, but kids pick it up MUCH more quickly than anything else I've seen. Alice ( https://www.alice.org/ 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/ https://codecombat.com/ ), but has trouble with javascript||python in less structured environments.
- edwintorok 8y agoFWIW 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@).
- krackers 8y agoThere's always the classic LOGO environment. You get all the same visual fun but with a "real" lisp-esque programming language
- wgpete 8y agofuck you
- sephoric 8y agoScratch 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.
- philsnow 8y agoAlso 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.
- jpm_sd 8y agoThat's pretty cool! How did they port it to new architectures?
- tmountain 8y agoThey 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.
- xyzzy_plugh 8y agoIt'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.
- yoklov 8y ago
- wslh 8y agoIf you like Scratch you will love Alice 3D: https://www.alice.org https://www.alice.org And for younger kids Scratch Jr. is great https://www.scratchjr.org https://www.scratchjr.org
- zabzonk 8y agoEveryone I have ever known that was exposed to Alice hated it into their very bones.
- keithnz 8y agoI'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/ https://github.com/LLK/ The new 3.0 GUI is done with react.
- chaostheory 8y agoIt 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.
- btown 8y agoIt’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.
- rsyring 8y agoIf you are looking for the "next step" after scratch for teaching kids how to code, I recommend: https://www.robomindacademy.com/ 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.
- geomark 8y agoThanks 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.
- i_feel_great 8y agoI 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.
- DonHopkins 8y agoI 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 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 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 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 https://www.youtube.com/watch?v=ha8sTgtUejM
- aasasd 8y agoJohn 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 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.
- open_bear 8y agoHe uses Racket.
- DonHopkins 8y agoI'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/ https://snap.berkeley.edu/
- guard0g 8y agoIf you are encountering a server error, you can check out the wiki: https://en.scratch-wiki.info/wiki/Scratch_3.0 https://en.scratch-wiki.info/wiki/Scratch_3.0
- sedatk 8y agoWeb archive link (because the site seems to have been slashdotted): http://web.archive.org/web/20190102213301/https://scratch.mit.edu/discuss/topic/326861/ http://web.archive.org/web/20190102213301/https://scratch.mi...
- Tempest1981 8y agoScratch 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).
- andrewflnr 8y ago> 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.
- modzu 8y agoits arbitrarily blocking opera :(
- tmaly 8y agoI 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
- unixhero 8y agoI 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 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.
- tyrust 8y agoFor a little more context, with what age groups do you work?
- unixhero 8y agoThe 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.
- ticmasta 8y agoMy 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.
- Tempest1981 8y agoFrom 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)
- hjek 8y ago> 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 https://scratch.mit.edu/download [1]: https://snap.berkeley.edu/ https://snap.berkeley.edu/ [2]: https://www.youtube.com/watch?v=rXN81Hsj_A4 https://www.youtube.com/watch?v=rXN81Hsj_A4
- hguhghuff 8y agoThey’re crazy if it’s not open source.
- Tempest1981 8y agoIt's here: https://github.com/LLK/ https://github.com/LLK/ The license appears to be: BSD 3-Clause "New" or "Revised" License
- Tempest1981 8y agoMost 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.
- reitzensteinm 8y agoHow 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.
- moomin 8y agoAny recommendations on tutorials suitable for 6yo for Scratch?
- johnwards 8y agohttps://codeclubprojects.org/ https://codeclubprojects.org/
- madethemcry 8y agoI 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 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 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.
- RantyDave 8y agoFlash? Scratch was written in Smalltalk.
- madethemcry 8y agoThat'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).
- jecel 8y agoNote 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.
- ncmncm 8y agoFunny, 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.
- qwerty456127 8y agoI 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.
- markdoubleyou 8y agoThe two I know of are Google's Blockly (https://developers.google.com/blockly/ https://developers.google.com/blockly/) and Microsoft's Touch Develop (https://www.touchdevelop.com/ 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.
- AshleysBrain 8y agoWe 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 https://www.construct.net
- paulolc 8y agoConstruct 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.
- rafaelvasco 8y agoAshley, 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 :)