24 ms·
Scratch is a big deal
- mdwagner 4y agoI believe it. Back in college we started out with this visual tool called Raptor and it was a great introduction to programming before diving into more complicated languages like Java. While Raptor was fun, clearly Scratch would have been nicer.
- zabzonk 4y agoI use it for creating interactive Xmas cards!
- elteto 4y agoThis such a neat idea to do with kids. Thanks!
- WillAdams 4y agoI prefer this sort of programming system. Mostly these days I do 3D modeling, so I'm using a Blockly version of OpenSCAD: https://www.blockscad3d.com/editor/ https://www.blockscad3d.com/editor/ but I'd really like to see a nice, stand-alone desktop development environment like to Scratch which isn't encumbered by a sandbox and which is able to write and append to local files and which is easily installed and which runs reliably. Crashed and burned on pyFlow, Ryven, GraphSCAD, and a bunch of others. Currently hoping that Nodezator (a node programming system based on pygame) will pan out --- it just needs branches and loops for my purposes: http://nodezator.com http://nodezator.com In the meanwhile, I'm copying OpenSCAD code out of BlockSCAD and pasting it into RapCAD: https://forum.makerforums.info/t/g-code-preview-using-openscad-rapcad/85729 https://forum.makerforums.info/t/g-code-preview-using-opensc...
- abrax3141 4y agoIt is impossible to do anything substantial in Scratch because it does not have text-based representation, and so cannot be comprehended by programming tools which are critical to modern programming (or even just programmers). If it had a comprehensible ETL language, it might be possible to use for significant engineering, but the current export format is just a JSON morass, worst in some ways than byte code. As usual with ETL hacking of a primarily graphical representation, there could be significant issues where the VUI is unable to represent changes made "behind its back"...all of which is to say, forget it.
- dkmn 4y agoObservations: - among many thoughtful comments, a search for "fun" yields mostly comments about functions and expressivity; I think this is a key aspect that isn't as apparent to many experienced people here. The fond recollections of ZX80/81's captures some of that idea, though. - Scratch is blessedly non-commercial and immensely approachable. It's educational mission is not top-down, but bottom-up. - The mix of 3GL expressivity with enough constraint to get a person started is great. Kind of reminds me of the generativity I see in kids playing Minecraft. - The pure old-schoolness of it all keeps you from being mugged in a dark semantic alley by a gang of monad-botherers.
- aceon48 4y agoWhat age do you think I could start a gifted child with Scratch?
- gbear605 4y agoI personally started at age 8, back in the late 2000s. I had fun but it was perhaps a little too much for me. By age 10, it definitely clicked though.
- hsm3 4y agoGifted 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.
- jawns 4y agoOne 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. Scratch is very similar. My kids love to play games on Scratch, but they also enjoy taking a look under the hood to see if there's something simple they can modify.
- HorizonXP 4y agoCan you share some here? I’m about to get my 3 year old into Scratch, since it’s already on his RPi. I remember doing the exact same thing in grade school with Gorillas and QBASIC. I actually want to download it now and play it again.
- qbasic_forever 4y agoYou can play it in your browser right now: https://archive.org/details/GorillasQbasic https://archive.org/details/GorillasQbasic
- koverda 4y agoCan he read yet?
- HorizonXP 4y agoYes
- tartoran 4y agoI have a 4 year old and I find that he’s not ready to be exposed to computers let alone programming languages yet. There are so many things to learn at that age that sitting in front of a screen for too long may be a disadvantage. Im thinking a starting age is more like 6-8, of course depending on other factors as well. I find that 3-4 may be a good time to start reading though
- hirundo 4y agoFrom a quick look it doesn't seem that the graphical elements are inherent to the language. It could be expressed in a text syntax, and with more or less difficultly other languages could get a similar graphical overlay. If the graphics are useful training wheels to new programmers of scratch, the same is probably true for the text languages. And from time to time even a super cyclist can find a use for training wheels. For one thing, a language expressed in a common graphical form could help communicate with non-coder domain experts, quality assurance teams, customers, etc. This is kind of an argument to publish the latin bible in the vulgar argot, less exclusive to the priesthood.
- dunham 4y ago> It could be expressed in a text syntax, and with more or less difficultly, other languages could get a similar graphical overlay. Yeah, Makecode Arcade has a similar UI with mappings to and from both Python and Javascript. https://arcade.makecode.com/ https://arcade.makecode.com/
- lidavidm 4y agoIn undergrad I worked with this group for a while: http://www.cs.cornell.edu/andru/papers/reduct-chi17/ http://www.cs.cornell.edu/andru/papers/reduct-chi17/ They took the basic idea of Scratch, then made it into more of a game with levels, each level being a puzzle to (implicitly) teach or test programming concepts. As you progressed it'd introduce new syntax, while slowly "fading" more familiar syntax towards actual JavaScript code (though retaining the block/GUI-based interface). We did some more work on further iterations but I'm not sure what became of it all.
- sgt101 4y agoResnick and co were very structured and evidence lead with the graphical design; nothing in the visual language is accidental. The structure of the language is also very carefully designed in conjunction with the graphical mechanisms.
- jameshart 4y agoThere's a common fallacy that the technically minded are prone to, of assuming that since two different things are 'essentially' the same, the differences between them are superficial and unimportant. So, for. example, since Scratch. and a text-based language with similar structures (Python, say), are 'essentially' the same, the graphical elements. of Scratch are just sugar, or fluff, and should be ignored. It's the same mindset that says since anybody can get an FTP account, mount it locally with curlftpfs, and then use SVN or CVS on the mounted filesystem to version control it, there's no need for such a thing as DropBox. Advice for the terminally reductionist-minded: Maybe the things that make Scratch different from Python are actually the most interesting thing about Scratch.
- ssivark 4y agoThis is extremely heartening. I can’t wait for the day we get popular Smalltalk apps that users can easily inspect and modify! Seems like it’s actually a great platform on which to bootstrap a free software ecosystem more effective (for remixing) than GitHub.
- tmaly 4y agoFYI There is a free online Scratch Conference July 21, 2022 https://www.scratchfoundation.org/scratch-conference https://www.scratchfoundation.org/scratch-conference
- bryanbraun 4y agoOh wow, great find! Gonna put this on the calendar. That "Hacking apps with Makey Makey & Scratch" session looks particularly interesting.
- zzixp 4y agoCollege student here. Scratch was my first real introduction to programming. It's an amazing tool, and a great way to get anybody started with programming
- chkas 4y agoFor beginners up to about 12 years old, Scratch is optimal. For older ones I think a text-based language is better. In the past, that was BASIC. Today it can be Python, with which beginners have some problems in my experience. And now comes the shameless self-promotion: I have developed something that can fill this gap. By the way, it is open source. https://easylang.online/ide/ https://easylang.online/ide/
- ksaj 4y agoI like how under the (more) menu, you can step through the code. It not only teaches kids how their code works, it also indirectly teaches them how a debugger works. Where the trace shows, it would be even better if the variables could be edited, which brings it even closer to debugging, and also expands on how the program logic works.
- Wowfunhappy 4y agoI've seen Scratch described as "learning how to talk before learning how to spell". For beginning programmers, memorizing syntax is a major source of cognitive load. As a result, it's harder for them to practice the computational thinking skills that coding is really about. Scratch removes this barrier. I actually think Scratch is a good tool for beginners of any age, including adults.
- empressplay 4y agoLogo can also fill that gap, as it has for a very long time: https://turtlespaces.org/weblogo/ https://turtlespaces.org/weblogo/
- spankalee 4y agoI 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 that had 10 "costumes" (0-9) then do modular math to select the costume for each digit. Sprites also have their own code, and if you duplicate one and edit the code the edits don't apply to the duplicate - so there's no user library or abstraction power at all. This made dealing with Scratch far more complex and time-consuming than the logic of the game my kid was making, which is the exact opposite of what you want in a learning environment. I don't really want to focus on the idiosyncrasies of Scratch when teaching programming. Some simple text and drawing commands, user-defined functions, and a library would go a huge way towards making Scratch simpler. There are some other Blockly-based environments that may have this... but they're not as popular.
- hammerheadtech 4y agoI agree, my 7 year old is into maths at the moment and he found it easier to just use PHP to do basic maths. I sat down with him for about an hour and I printed a "cheat sheet" for the various arithmetic operators (just the basic ones) and he's now quite able to just whack a simple script together and execute it on the command line. Having said that, he wasn't entering the situation completely blind. He's been using a PC with Linux (Ubuntu) since he was 3 years old. He's been playing Minecraft for 4 years (which is excellent for younger kids to learn mouse skills). I also started him out on GCompris on a laptop. Then we both built a PC for him when he was 5. I got a load of cheap second parts during the early part of the pandemic and I let him do it himself (while observing and guiding). I started him early because I started early too and I started him off on PHP because I remember it being relatively easy to learn when I was a kid because it isn't a particularly strict language which means a young mind doesn't have to perform a huge amount of translation in their own head, they can almost type exactly what they're thinking and run it. The command line I introduced almost immediately. It was a way easier method of teaching him to launch apps without my help...I just set the terminal to load on startup and printed him another "cheatsheet" of basic stuff that he needed (no rm -rf * just yet). If he's in an exploratory mood he will use the menus and UI but if he just wants to get straight into Minecraft or write a script he can just get stuck in! I can see scratch becoming more interesting to him further down the line but for now, certain things are easy enough. Typing is an interesting one though...I spent a fair bit of time working on his typing because his handwriting at school wasn't up to par (he's fine now, but his crap handwriting was holding his spelling back a bit). As soon as he became somewhat proficient at typing his spelling improved no end. Unfortunately though, his teacher won't let him do spelling tests on a laptop. Which I think in 2022 is the dumbest thing ever. They've only just started teaching typing and basic computer skills in his class (as of about 6 mo this ago). I had his teacher take me aside and ask me exactly what the hell I did to get him so far ahead. They measured his typing speed at 60wpm! This all said though, I am an IT guy...so parents with little to no tech skills might not have the smooth ride I had, which is probably where tools like scratch come in...I think it's a tool for non-technical parents as well as kids. Before scratch though, I'd highly recommend GCompris...but be warned, you need to do it short sessions (20 minutes or so) because kids get bored of it fast. My youngest is 3 and he's getting second knowledge from my oldest right now as well as the same stuff I did with my oldest...so maybe he'll learn even quicker?? We'll have to wait and see.
- pipeline_peak 4y agoI have yet to see a visual programming language that looks any easier than something like JS or Python, Scratch is no exception. I still think Scratch’s interactive environment is impressive.
- wl 4y agoLabVIEW and Simulink are pretty easy if your problem makes sense as data flow.
- shadowgovt 4y agoOne thing I really appreciate about visual programming languages, especially as I watch the sorts of challenges students encounters wrapping their heads around the concepts in programming, is that the development environment and the nature of the visual language make it very hard to build syntactically incorrect programs. In contrast, text-based languages sample from the sea of all possible strings of characters, and except a vastly tiny subset of that sea as valid input; the rest are just rejected programs. I think there's a lot of meat on the bones of creating tools that make it structurally impossible to write statically invalid programs. Consider how much time the average developer consumes in a simple iterative process of writing a program, discovering they have made a simple syntax error, and correcting it. IDEs have come a long way in shortening that loop by providing interactive feedback that the current program is invalid, but if the static analysis rules of the language move all the way into the development tooling, you're compiler doesn't even need a static analysis step!
- ModernMech 4y agoScratch is great, but the problem is: where do kids go after scratch? Often they are transitioned directly to professional-grade languages and developer tools, which has the effect of turning what was once fun to something scary and frustrating. Many kids stop their PL development right then and there, writing it off as something “not for me”. I find this sad, as it means a lot of people who might otherwise benefit from programming in their daily lives never pick it up again. Just as not everyone who can cook needs to be a chef with professional grade equipment to benefit from the activity, not everyone who programs needs to be a software developer with all the incidental complexity that entails. We start teaching Java to kids as early as 8th/9th grade when the vast majority aren’t ready for it. Even my sophomore students in college regularly struggle with the language. There’s a huge gap between scratch and Java that is begging to be filled by innovative language design. Or better yet, a language that can a student can stick with from early age all the way through adulthood. Imagine if students who started at 11 actually stuck with it through 18 and beyond, instead of giving up at 13/14. Scratch has a perception problem as being something exclusively for kids; I don’t know how it can shed that reputation. We need to stop treating early childhood programming education as the first stage of the funnel into corporate tech jobs. Not everyone wants to end up there, and we shouldn’t design their education with that goal in mind. Programming literacy is too important in the 21st century to reserve the skill for would-be devs.
- liveoneggs 4y agoThis happened with my niece. She loved playing with scratch and took classes and then just got dropped at the end when her tutor got a regular job, she asked me how to use python for real and then immediately quit. She learned scratch and was told it was "coding". This was a massive lie.
- omnibrain 4y agoPICO-8 could be a next step. https://en.wikipedia.org/wiki/PICO-8 https://en.wikipedia.org/wiki/PICO-8 A "real" programming language, but still focused on game making, all wrapped into a neat package.
- gnramires 4y ago> Scratch is great, but the problem is: where do kids go after scratch? Good question, I personally think p5.js is a great option. JS is very flexible, and the live environment (at editor.p5js.org) is I suppose very similar to scratch. Drawing elements like squares and circles is as simple as square(), circle(), etc. (with parameters). It's very easy to share an publish (could be on github[1], or just link directly from the editor!). Highly recommended for beginners and any quick interactive work really. It would be great to have a community page like Scratch though. [1] See a little procedural tree: https://gustavo-nramires.github.io/ https://gustavo-nramires.github.io/ :)
- deleted 4y ago[deleted]
- throwaway14356 4y agoWhen launched the community made me laugh. Every lang has its own community, this one is hilarious. They can code but dont bother a 12 year old with your doctrine of copyright. I MADE THIS!
- tengbretson 4y agoOne of the coolest things about scratch that I've seen from using it and being an instructor is that it teaches the user how to work in event based systems. I've seen children with better intuitions for event based architectures than some veteran developers.
- jmugan 4y agoOne problem I've seen with Scratch is that schools rely on it for too long. Kids get into high school and the school is still teaching with Scratch.
- ksaj 4y agoWe definitely moved on faster than that back in the 80's. We started with LOGO (which some people know as Turtle Graphics) and BASIC, but pretty much immediately went into other historical languages (prolog, pascal, cobol) and then to C, within a single semester. And through all that, we were always presented with the binary code (in Hex) so we were fully aware of how registers and boolean math worked.
- kelseyfrog 4y agoThe annual variation shown in the graph immediately says tells me that a large portion of use is driven by academic forces. That can be a problem, but can also be an opportunity. If the institutions driving Scratch adoption decide to switch away from Scratch, the community will be on much more unstable foundations. The opportunity here is finding non-education modes of engagement. Social engagements, viral engagements, or non-academic partnerships are all ways Scratch could strengthen its community. Wishing them luck - it looks like this brings joy to a lot of kids.
- itronitron 4y agoThere is an integrated Minecraft 'Scratch' code editor now (https://minecraft.makecode.com/#editor https://minecraft.makecode.com/#editor) although that is probably targeting middle-schoolers. In my experience most teenagers coding for MC (not driven by academic forces) are just using Java directly.
- system16 4y agoHaving already known how to code, I gave Scratch a shot after hearing about it. I know I'm not the target audience, but despite "looking" friendly I found it very complex and not very intuitive at all. If the goal is to ultimately learn programming with industry standard tools, I think the time would be better spent learning those tools and fundamentals rather than becoming comfortable with Scratch and trying to transition to them.
- Snild 4y agoIt is definitely a hard switch to make when you're used to being able to just _write_ what you want, rather than having to go look for the block and drag it into place. :) > If the goal is to ultimately learn programming with industry standard tools It has variables, if, else, different kinds of loops, event handlers... Of course it still isn't "real" programming, but it does teach some basic concepts of it, while still being relatively easy for a child to use.
- tokamak-teapot 4y agoI found the same. Then I watched kids using it by following instruction sheets, picking up the concepts, tweaking, making their own projects, and moving on to Python. I got to understand Scratch by learning how kids use it. It’s just a mindset and expectation shift that is similar to that I experience when learning anything new. When I first learned a proper functional language after years of imperative. When I used a game dev environment that does lots for you.
- ManuelKiessling 4y agoI never find the time to dive into it, but for years I carry the thought that somewhere in the general direction of “take the visual programming module of Scratch and make it talk to a cleanly designed high-level API of our business application” lies the key for tremendous feature development productivity, at least for some kinds of features — where from then on, our Product Managers simply go like “oh I know, let’s just put this block into that IF block and thus add another step to the user registration”, without the need to use precious dev resources.
- skaul 4y agoI thought this was what MuleSoft was designed to be, though I haven't kept track of what it looks like now
- Mandatum 4y agoSame as it did 10 years ago. Same as IBM's garbage in the 90s. Only difference now is the IDE is both prettier and slower, there's more testing, and there's way more interfaces. The solution to the problem never got better, it just got prettier. Oh, and the problem just got harder.
- zozbot234 4y agoThe visual block design of Scratch could be directly applied to any programming language AST. And the programming model involving independent "characters" each running its own logic could translate directly to a model of distributed systems.
- easrng 4y agoYou can use Blockly (Scratch uses a fork of it for the block editor) to do that.
- WillAdams 4y agoI'd like to see Blockly packaged up as a stand-along desktop app w/ no sandboxing, ideally w/ connections to a GUI toolkit.
- jms429 4y agoAs a former computing teacher, I loved Scratch. I remember reading about it on a Thursday evening on Slashdot, maybe spring of '08, or 09. I had a free lesson first thing the next day, so I installed it on the network then had a class of 10 year olds give it a whirl. Had a full scheme of work written by the Monday, and was demoing it to other schools by the summer. Loved it, loved the scratch board addon hardware, loved the complimentary "makey makey" project, and the cards, and the books and on and on. incredible project.
- urthor 4y agoIf I may ask: Why former?
- _benj 4y agoNot op but maybe compensation and everything else outside of teaching? I used to teach computers/math to 8th graders and while teaching is beautiful school politics, terrible benefits, dealing with patents, among others things made the job of teaching incredibly difficult and draining
- jms429 4y agoBurn out. Teaching is a job that is never "done", and expectations from management and parents are constantly set higher and higher. Especially around IT. I lost count of the number of times I asked for help from management and got told "but you are so good at computers". Tried the startup thing, my product crashed and burned, work for a charity now.
- modernerd 4y agoIs there a reason that visual programming languages haven’t taken off for professional programming? I know of several for specific fields (Dark for backends, TouchDesigner for live graphics/multimedia), but none that are more generalised, open, or in wide use. It feels like an underdeveloped area that’s ripe for exploration and experimentation.
- WillAdams 4y agoWhat does an algorithm look like? (serious question) There are some systems which try to make it just a straight-forward description --- Drakon Editor comes to mind. Scalability is an issue --- but screens are larger these days, so may be more workable (I've managed some decently complex models in BlockSCAD: https://www.blockscad3d.com/community/projects/1385418 https://www.blockscad3d.com/community/projects/1385418 A further issue is that if one uses modules/functions, one ends up w/ just a textual description of the algorithm trapped w/in a series of connected/nested blocks. I prefer to work this way, but I've crashed-burned hard on installation/usage w/ more tools than I can recall off the top of my head (pyFlow, Ryven, GraphSCAD, clikscad, &c.) --- currently I'm just using BlockSCAD and pasting the code into OpenSCAD/RapCAD. I hope that Nodezator (node programming tool done w/ pygame) will work out, but I'm waiting for it to have branches and loops.
- porcc 4y agoProbably it's just a hard problem. Max for Live is a bit more general purpose than TD but still has its limitations I'd imagine. Enso lang is the best attempt I've seen for this: https://enso.org/ https://enso.org/
- Wowfunhappy 4y agoI teach Scratch to kids professionally. I love it as a learning tool, but when I need to actually write Scratch code myself for whatever reason, I find the experience pretty aggravating. Finding the block I need from the big list and dragging it into place takes a lot more time than just typing the command. Scratch programs also become messy quickly as the complexity increases. Normal code is more compact and easier to actually follow.
- conradev 4y ago> Most importantly, browsing projects shows you what’s possible. A kid begins by playing games, starts to get curious, and next thing you know, they’re changing the code to give themselves extra lives. This is actually the driver for a lot of kids to learn programming. Neopets and Myspace allowed you to customize your profile with HTML, Minecraft allows you to make mods in Java, Roblox has an entire game studio that leverages Lua. Kids see something they want to be able to do, and they do it! The steepness of the learning curve does matter, but searching "how to make a roblox game" into YouTube goes quite a long ways these days
- amelius 4y agoSomeone should probably reinvent spreadsheets using this language.
- Retr0id 4y agoA fun statistic is that Scratch now has over 100 million projects published by users on their website[1]. GitHub only reached 100m repos in 2018[2] - I can't find any more up-to-date numbers, but it's probably around 150m today. It's crazy to think that Scratch and GitHub operate on similar orders of magnitude. [1] https://scratch.mit.edu/statistics/ https://scratch.mit.edu/statistics/ [2] https://github.blog/2018-11-08-100m-repos/ https://github.blog/2018-11-08-100m-repos/
- fillskills 4y agoMaybe one of the reasons for sudden increase in the projects are companies such as Whitehat Jr. Whitehat incorporates and leverages Scratch in their lesson plans. For each lesson kids may be creating 1-3 Scratch programs. You can read more about Whitehat Jr, their approach to sales etc by doing a little googling. And am sure there are other companies who follow the same practice of leveraging Scratch in tutorials. (edit) Not condoning this, just adding more information.
- sebastiansm 4y agoThe first week of Harvard's CS50 involves the creation of a little program in Scratch too.
- nitwit005 4y agoThat's also where many github repos come from. I've seen the instructions to fork the teacher's repo when doing searches.
- AviationAtom 4y agoPretty sure they're owned by BYJU'S now, an Indian Edutech firm. Lookup some of the horrible reviews about how they run business.
- leotaku 4y agoI remember introducing a middle schooler to programming using Scratch at my highschool's open day. I had spent a few hours making a simple two player shooting game and a maze generator for the IT class display. Most kids just wanted to play the games, but seeing just one of them be genuinely excited about the possibility of creating his own interactive experiences, asking questions about how certain mechanics were implemented, what I did to get to this point, if I thought he would be able to create similar things, was really encouraging. Probably didn't make a difference in the long run, but still a treasured memory for me.
- geerlingguy 4y agoI didn't see anyone else mention it, but I think one contributing factor is the inclusion of Scratch on the Raspberry Pi, which until the past year or so has been one of the most affordable ways to get kids set up with a little computer for learning. Many educational programs have a setup where each kid gets a Pi (well until recently since the past year they've been hard to get), and Scratch was the perfect companion since it didn't require a ton of RAM or a fast CPU to run well. At this point though I see it come with a lot of other educational programs on Chromebooks, too. Since the sharing is over that MIT site, it's perfect for those "lite" computers that don't store anything local. One interesting side effect of its popularity is that I've seen a number of kids who "know scratch" but don't really "program" anything with it. They just load up other people's programs and game with it, basically a Steam for Kids.
- deleted 4y ago[deleted]
- ynniv 4y agoName another language where you can be productive on a mobile device.
- Wowfunhappy 4y agoScratch is pretty awful on mobile, actually.
- ynniv 4y agoKids don't have a problem using a tablet
- Wowfunhappy 4y agoTablets are mostly fine, just not phones. Plenty of people do webdev on iPads too.
- easrng 4y agoJavaScript? I have written things on my phone before though it's kinda a pain. (https://jsconsole.com/ https://jsconsole.com/ is your friend.) The Scratch editor doesn't work on phones really at all though it's fine on tablets.
- ozim 4y agoUnfortunately I think making "games, animations, stories" is not that big of a deal. Even though it is nice to get kids into programming - it is not what business development will be.
- misterdata 4y agoAt work we built a BI tool around Scratch (Blockly) back in 2013. It’s still seeing daily use: https://www.dialogic.nl/wp-content/uploads/2018/02/demo1.gif https://www.dialogic.nl/wp-content/uploads/2018/02/demo1.gif
- alonmln 4y agoAwesome!
- cphoover 4y agoVery cool
- solardev 4y agoCool! It's like a homebrewed alternative to Google Data Studio.
- anyfactor 4y agoThis is the coolest thing I have seen this week! Is the program open sourced? I firmly believe Scratch should be taught at university level for business students. We studied C, C++, VB and MS Access. We didn't understand crap, nor the instructors had any interest in teaching that crap. Scratch is a wonderful tool for any people to dip their toes in programming. And stuff like this makes me double down on this idea. Scratch should be the first thing to be taught to teach programming regardless of education level. BI tool and database interaction is the perfect and practical application of Scratch.
- tayloramurphy 4y agoThis is genuinely amazing - I'd love to give it a try. Any chance any of the work your team put into it is open source?
- misterdata 4y agoThis was actually built between 2012-2013 - it is quite a tangle of old and rusty (but very reliable) PHP code and IE9-era, 'jQuery-esque' JavaScript. Realistically this can't be usefully made open source (and if it were it would probably have to be rewritten in order to be more generally useful). That said I would be very interested in an open source re-implementation of this using modern techniques!
- BrandoElFollito 4y agoMy children did not like scratch (it is taught at school in France). They had much less problems to understand Python which seems more natural in the interactions (displaying things, especially). They are unfortunately not interested in programming but when they have to do something at school they catch up with Python quickly. With scratch not that much.
- tartoran 4y agoPython is a bit more advanced in the sense that it’s a more general purpose and you have to know how to type on the keyboard well enough. I started with basic and logo back in the 80s but if scratch were a thing back then I’d have probably benefitted from it quite a bit. I see scratch as a first ramp into programming for tots and am glad it exists but also hope it won’t become a thing to handicap adoption of other programming languages
- BrandoElFollito 4y agoI did not mention that my children were early teenagers when they had scratch at school. I also started with BASIC in the 80's and scratch would probably have helped with some general concepts, especially loops and variables. But in my experience (of two data points :)) it is quickly left on the side for more effective languages (more effective because they can be typed and easily moved around, copied etc.). Vscode hints also help a lot.
- monkeydust 4y agoCurious as to the application of Scratch into enterprise software, specifically to develop low-code applications.
- loganc2342 4y ago> It was the community aspects that really drew in my kids. They would get really excited whenever somebody followed them or “loved” one of their projects. It gave them the motivation to build more ambitious things. This is really what sparked my love of coding and, more broadly, creating things when I made projects in Scratch as a kid in the early 2010s. Seeing all of the positive feedback on stuff I posted as well as seeing the awesome stuff other people posted motivated me to keep one-upping myself with cooler and cooler projects. Those who downplay the positive effect Scratch can have on kids tend to overlook this part of the equation.
- sva_ 4y agoI have to say that I used this back in school many years ago, and I absolutely hated it. But I realize that other people might feel different about it. I much preferred just being able to write text characters, I felt like it gave me a lot more freedom in what I can achieve, but also how I achieve those things. I might be an outlier in that though.
- bredren 4y agoHas anyone had experience teaching using this and Swift Playgrounds? Is there any comparison?
- elangoc 4y agoThe simplicity of the visual language that Scratch provides inherits from the simplicity of Lisp, via Logo. The Logo language (& the Mindstorms pedagogical philosophy), which is what Scratch builds off of in a visual way, was implemented as a dialect of Lisp. From anecdotal experience, I do believe that the choice of a Lisp for Logo was an important criterion in the simplicity of the language, and thus the high impact of the learning impact. I do think that if we find Scratch useful and powerful, then we should really re-/consider Clojure as an important language for real general purpose programming work, for many reasons: https://www.youtube.com/watch?v=Y3-53JoGPE4 https://www.youtube.com/watch?v=Y3-53JoGPE4
- herf 4y agoI love what they've done and how my kids have taken to it. The combination of design tools and code reminds me of the "golden age" of Flash in some ways. Vector graphics editor, sound editor, code, it all works together - this is pretty special to see in one tool that kids can use. The games are actually getting quite good on the platform, and that means it's hard for a lot of parents to understand how much time is gaming vs. coding.
- bryanbraun 4y agoI've never made the Flash connection but I totally agree. On my end, I try not to worry too much on the gaming vs coding thing. I'd rather have my kids playing games on Scratch then some other place where they can't view source. I figure, if they have some basic skills and know what's possible, they'll eventually get curious and poke around. I think that's more true for some kids then others though (even in my own house).
- ptudan 4y agoScratch was my introduction to programming. I was already a computer nerd, but had never programmed before. This was in the mid 2000s. Now I'm in the industry and so are 15% of my classmates from that time.
- NonNefarious 4y ago
- NonNefarious 4y ago
- bolangi 4y agoSo, impossible to make a syntax error.
- bakpakin 4y agoI learned to program on scratch in the 6th grade when it was very new, circa 2008. In many ways, it is more real than other learning languages. In retrospect, the smalltalk influence of scratch I think left such an impression on me that I continue to love dynamic, always live environments to this day. The broadcast system is surprisingly powerful and forward thinking. I do recall it being a bit difficult to build up your own abstractions, but such guardrails I think are useful for learning and I usedd Scratch before custom blocks were available.
- 42jd 4y agoScratch was how I got started in programming back in elementary school. It was taught in our computer classes. Everything this article says is spot on, the social aspect is amazing. I made a few programs and got comments on it and stars which hooked me. Side note hearing griffpatch is still around amazes me, I remember playing his scratch programs and wishing I could eventually do that. What’s amazing is it’s all still around and runs![1] 1. https://scratch.mit.edu/users/miniman520/ https://scratch.mit.edu/users/miniman520/
- andrewstuart 4y agoScratch has succeeded in the way that counts most - building community. However I tried to help my son to write some stuff with it and found it very hard and unintuitive to get stuff done. There are other, similar systems that are MUCH better for programming, such as Construct3 https://www.construct.net/ https://www.construct.net/ and Snap https://snap.berkeley.edu/ https://snap.berkeley.edu/ In a way it's very disappointing that such a difficult to program system has become the default tool for teaching kids to program. Also a shout out to CodeCombat - that's also a great way to teach kids very advanced underlying programming concepts whilst completely hiding all the complexity. Also try https://www.microstudio.dev https://www.microstudio.dev
- Wowfunhappy 4y agoWhat do you like better about Snap? At a quick glance, it looks almost exactly like Scratch 2.0 (an older version).
- andrewstuart 4y agoSnap is the closest conceptually to Scratch. I can't recall why I thought it was much better but that was the conclusion I came to when I reviewed them both a few years back.
- Retr0id 4y agoThe "killer feature" of Snap is the ability to define functions that return a value. In Scratch, you can't do that. Functions ("custom blocks") are just procedures that may-or-may-not mutate global state - This makes it hard to build up abstractions, etc. Scratch effectively mandates that you write spaghetti code.
- Wowfunhappy 4y ago> The "killer feature" of Snap is the ability to define functions that return a value. In Scratch, you can't do that. Ah, I see now. Yeah, Scratch really should let you make custom "oval blocks" that return values...
- NylaTheWolf 4y agoI used Scratch ALL THE TIME as a kid. I'd always play other people's projects and I made several of my own. I think in the long run it did help me; it was definitely fostered my interest in coding and game dev. And it probably did help me understand concepts in coding like variables. I remember browsing Github several months ago and seeing that there was a repo for a Scratch plugin. That really surprised me, I didn't even know it allowed plugins. I'm surprised that there were people willing to make them too! That's awesome!
- gmiller123456 4y agoInteresting that this popped up now. I had heard of Scratch but never really looked into it, but decided to give it a go last month. I decided to write a planetarium using the actual Hipparcos catalog, and solving Kepler's equation for the planet positions. I had hoped I could use it as an example to show that it's not really that hard to do. Unfortunately, I found it pretty tough to organize the code in any meaningful way. E.g. blocks can't have local variables, nor return values. You can't call a bock in another sprite, there's a workaround using "broadcast and wait", but it triggers a screen refresh. Just moving blocks around to order them in a meaningful way was quite a chore. Some mistakes, like making a variable global rather than sprite level, can't be corrected. Adding comments seems to be a bit buggy, and they don't move as you move the blocks around. Since I've been programming for many a decades now, it's hard for me to see what it'd be like for a beginner to approach the language. But I was left wondering if this really is any easier for beginners. And if it is easier, is it really better they learn this way since it seems to actively force some poor programming choices. In the end my code ended up looking way more complicated than it really is, and I'm not sure anyone but me could make heads or tails of it. (For anyone that wants to have a look: https://scratch.mit.edu/projects/708233643/ https://scratch.mit.edu/projects/708233643/ ).
- Wowfunhappy 4y ago> Since I've been programming for many a decades now, it's hard for me to see what it'd be like for a beginner to approach the language. But I was left wondering if this really is any easier for beginners. I teach programming classes for children in both Scratch and Javascript. I can promise Scratch is easier for beginners. You're absolutely correct that past a certain point of complexity, Scratch becomes kind of stupid. Most kids, however, are not trying to solve Kepler's equation. If you ever have the urge again, try using Scratch to make a simple game, something like "catch the falling objects" or "avoid the moving obstacles". I think you'll find the process a lot smoother.
- analog31 4y agoOddly enough, similar story for Python: It's the community.
- MarcScott 4y agoScratch project I reviewed last year which in my opinion was amazing. https://scratch.mit.edu/projects/524709085/editor/ https://scratch.mit.edu/projects/524709085/editor/ 1,2,3 and 4 to change ghosts and r to randomise colour.
- MarcScott 4y agoA good place to start if you want your kids to pick up Scratch and programming. https://projects.raspberrypi.org/en/paths https://projects.raspberrypi.org/en/paths Disclosure I work for RPF.
- avodonosov 4y agoI'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/ 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 invent crazy tricks to achieve simple things is not actually friendly. IMHO, it is better and simpler to teach children using more normal languages, consisting of a small set of well composable elements. The Snap! is an extended reimplementation of Scratch, but prvides power approximately equal to Scheme: https://snap.berkeley.edu/ https://snap.berkeley.edu/ However, I haven't used it much since I need development support on tablet, which is not complete in Snap. I also tried Lego Boost and Lego Technics - the coding experience is basically the same as in Scratch, but for teaching programming Scratch is better I think, because you can create interesting things without the need to connect to devices. And not much you can build from lego motors and sensors. And the last I explored was the Castle mobile app. A couple of games I created: https://castle.xyz/d/l-_oFKrf5?cxshid=yjIUmDcFo https://castle.xyz/d/l-_oFKrf5?cxshid=yjIUmDcFo https://s.castle.xyz/qZbz0u2nK10 https://s.castle.xyz/qZbz0u2nK10 The coding experience is worse then Scratch in my opinion (especially on Android were the Castle app has a redraw bug, so that the menus you invoke are not visible until you manually initiate a redraw by switching to Android app list and back to the Castle app). But the advantage is 2d physics support - they wrap the Box2D engine. Also, I think the Elevator Saga is a good idea for learning. And it's just javascript. https://play.elevatorsaga.com/ https://play.elevatorsaga.com/
- MetaWhirledPeas 4y agoThis 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.
- Closi 4y agoOne thing to remember is that Scratch can 'kickstart' the learning process. For kids being able to quickly display graphics and move them around offers a big buzz and gratification very quickly. With a lot of other programming languages the gratification is greatly delayed which can make people quickly abandon them unless they already have some experience in programming. Not sure I can name another programming language that you could give a 12 year old and they would be able to self-start and would not be likely to abandon learning it if they follow the standard 'get started' guide for the language. Unity is possibly the next closest, although it is much more complex to learn.
- dpeck 4y agoThere is no better way for people to show that they understand message passing and the actor model than to have them implement a simple scene in Scratch.
- jtbayly 4y agoCode available is awesome for simple games. I think it was a Q-basic game called worm or nibbles or something that I first “programmed” on. Wanted infinite lives or a very short maximum length. Just had to change a variable.
- SLWW 4y agoLego Mindstorms is probably the reason i got into programming. Moved from using the visual editor as a kid to learning that I could use this weird language called "C"(?) to do even more complex things with a few sketchy libraries. Amazing
- haunter 4y agoGoogle Game Builder what I really like to use to teach because it’s using JS. Not that I used it many times but it’s really engaging and at least you interact with a “real” language. It was killed by Google (ofc) but still available and works perfectly https://github.com/googlearchive/gamebuilder https://github.com/googlearchive/gamebuilder The last full build (binary release) is here https://github.com/googlearchive/gamebuilder/tree/master/builds https://github.com/googlearchive/gamebuilder/tree/master/bui... Here is the original trailer https://youtu.be/l9Mf_XEZq-A https://youtu.be/l9Mf_XEZq-A And some of the tutorial videos are also available https://youtube.com/playlist?list=PLuYHfxlxFzb25nWnevSN5wQVOHMbkenkt https://youtube.com/playlist?list=PLuYHfxlxFzb25nWnevSN5wQVO...
- dzdt 4y agoThe great: Scratch has some hugely good things going for it. The community sharing model is ridiculously good. The ease of being able to jump in, put up a sprite and make it do something is super. It is so easy to go from kid-style ideas to something that happens on screen: "there is a castle, and a dragon, and it flies over and makes a noise...". They did a great job of making the sprite actors easy to use with a small number of programming blocks. The actor/message model is nice. Importing images and making them into objects is easy, and there is a big enough library of built-in actors to get you started. The not-so-great: if you try to do something outside of the range of what Scratch really tried to make easy, it quickly gets hard. Moving 2d sprites around in simple patterns using built-in collision detection: peachy. Pretty much anything else: not so much. And as projects get large the block-based visual programming is a frustration. There is no text mode. My wish: It would be great if someone would make a one-level-up version of scratch, with great community sharing features and sprite/object/message based library with super-easy graphics programming but text-based source code and with the ability for add-on libraries to be part of the ecosytem.
- notsound 4y agoI think that tools like scratch and code.org really need to expand their ability to interact with 3rd party services. Code.org has a very limited http request API, but it is locked down to a couple APIs (I’ve looked at this feature, and I have… concerns over API key security) while scratch has no such capability. I really think that this type of thing helps ease the transition between block coding and using a written language. I do understand that there are some concerns with abuse, but I think that many of those concerns have effective mitigations.
- r3trohack3r 4y agoI started something like this for a local hackathon to teach kids programming, but then COVID hit, the hackathon was canceled, and the project stalled. It’s like scratch, but it generates a node script to drive a parrot drone: https://github.com/retrohacker/takeoff https://github.com/retrohacker/takeoff
- deleted 4y ago[deleted]
- hmahncke 4y agoA lot of discussion here about the limitations of Scratch as a programming language. But the magic of Scratch is the community. My daughter learned Scratch, and she joined multiple teams of 10-year olds making all kind of interactive stories and games. And virtually every interaction she had was positive, uplifting, and helped her construct her identity as a programmer. She now teaches Scratch for kids and programs in Java and Python. But making those friends and doing those team projects was invaluable - and nearly unreplicable in another language/ environment.
- electriclove 4y agoHow did she get involved with joining those teams? Is that something she sought out herself? Are there programs that facilitate this?
- andrewstuart 4y agoWhilst I totally agree with you, on the other hand, a child's first introduction to programming should be easy, intuitive and powerful. What could be worse than an introduction to programming that puts a certain number of children off because it's not those things? Clearly alot of kids manage to drive it enough to their satisfaction, but the failings of Scratch must leave many children behind. I know my son gave Scratch a go and gave up.
- vxNsr 4y agoI have trouble understanding how another language is more intuitive than scratch, indeed you don't provide any examples of more child friendly languages, just that it didn't work for your son.... which could just be because your son doesn't wanna program.
- piceas 4y agoI would like a physical version made of blocks that can be arranged rather than dragging boxes on the screen. Not another language as such but I suspect would be more intuitive.
- ezfe 4y agoI used Scratch in middle school, my first exposure to programming. Graduated two years ago and I'm a full time Software Engineer now.
- jecel 4y agoIt is great that Scratch can be used as an introduction to programming, but that is not why it was created. It was part of the MIT MediaLab "Computer Clubhouse"[1] project where it would be used to enable a remix culture of cute animations and even simple games. Scratch's implementer, John Maloney, had already helped create a programming environment for kids called EToys[2] using Squeak Smalltalk, just as in the first versions of Scratch (later rewritten in Flash and then in Javascript). So the comments about how it is hard to do in Scratch something that would be trivial in Basic or some other language are not surprising. It is an animation system that allows you to use programming to increment that. As others have pointed out, a system with the same visual as Scratch but design for actually programming is Snap![3] so it is just a matter of using the tools for what they were created to do. [1] https://web.media.mit.edu/~mres/papers/Clubhouse/Clubhouse.htm https://web.media.mit.edu/~mres/papers/Clubhouse/Clubhouse.h... [2] http://squeakland.org/ http://squeakland.org/ [3] https://snap.berkeley.edu/ https://snap.berkeley.edu/
- lupire 4y ago
- ElemenoPicuares 4y agoI’m not really sure what you’re pushing back against here — are you taking issue with the terminology? Or are you saying that scratch should not be used as an intro to programming logic because it was originally designed to control visual components fairly superficially?
- bowsamic 4y agoHe’s explaining the origins of why it’s bad at certain things: because it wasn’t originally designed as a general purpose tool. That’s the whole point of his comment, nothing else is implied
- antiterra 4y ago> that is not why it was created. It was part of the MIT MediaLab "Computer Clubhouse"[1] project > so it is just a matter of using the tools for what they were created to do. Ah yes, the vaunted historic MIT culture of 'using things for what they were created to do.'
- unixhero 4y agoFor teaching kids (school classes) to code, I have had better success with https://www.codecombat.com https://www.codecombat.com than MIT Scratch. Kids had more fun than with scratch and learnt programming actual language.
- emacsen 4y agoIt looks really cool, but I don't see a way to easily self-host despite: https://blog.codecombat.com/we-have-open-sourced-everything/ https://blog.codecombat.com/we-have-open-sourced-everything/ Did you run your own environment?
- user3939382 4y agoI discovered the existence of, and taught myself, BASIC on my Apple IIc when I was about 8. My first program was an implementation of Mad Libs. Surely we could just take that concept and make it even easier for kids.
- AndrewKemendo 4y agoI search for anything I can to figure out what is happening with the Scratch community because my daughter, who has been a scratch user for 6 years has, over the last two been on there almost exclusively for the "community." It's super cool to see other kids remix her works and she to do the same. The one complaint I have is that we have run into one creep who was soliciting kids' info, however it was only one time and he disappeared pretty quickly.
- dpcan 4y ago“ Most importantly, browsing projects shows you what’s possible. A kid begins by playing games, starts to get curious, and next thing you know, they’re changing the code to give themselves extra lives.” Gorillas.bas anyone? My programming life started the same way about 30 years ago. I love to hear this is still happening.
- hsm3 4y agoMy 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.
- georgia_peach 4y agoScratch 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.
- wiradikusuma 4y agoI can't get my son to get excited with Scratch :( Every time we open RPi, and I start opening Scratch, he will say, "Daddy, how about we do this" while taking over the mouse and opening a game. When I'm not looking he'll open Chrome and play YouTube. To be fair, once we're in Scratch, I don't even know what to do with it.
- askvictor 4y agoTry the Minecraft Education Edition coding tools (uses Make:code, which is much like scratch, but a lot higher ceiling). There's other cool make:code options too, or there's straight minecraft command mode...
- astrobe_ 4y agoI am not a parent, by I think there are kids that are interested in computers and programming, and kids that are not. That's the divide between users and makers. That does not mean they can't be creative with something else. So it's a good thing to try to show them how the magic happens, but being too persistent is pointless.
- drpixie 4y agoThere's a similar project at MIT call App Inventor http://www.appinventor.mit.edu/ http://www.appinventor.mit.edu/ which uses a graphical Scratch-like environment to build Android apps. I can't tell if the two projects share code, but they certainly share philosophy and approach. I found App Inventor actually quite a practical way to write small useful Android apps. Certainly better than loading squigabytes of IDE/library/emulator/etc and fighting with the Android build system. (This from someone with plenty of code-cutting history!) I wouldn't use App Inventor for anything big, but for small projects, have a look.
- pleb_nz 4y agoOk. Someone must have done doom in this thing by now.
- szundi 4y agoMore and more very advanced projects by these celeb leaders emerge and suddenly beginners feel they are noobs after a year of scratching.
- joaofiliperocha 4y agoScratch became part of teaching program for k-12 kids, here in Portugal
- raydiatian 4y agoHas anybody ported Doom to Scratch yet?
- whoomp12342 4y agothat terraria clone is fantastic
- joshfreedman 4y agoScratch is awesome! I used it in high school for some small, silly games. It was fun :) As for "next steps" from Scratch: I think micro:bit [0] can fill that gap. Several of my coworkers were part of an event that used it to teach a group of middle-schoolers about programming. It uses block-based programming (supporting even Scratch I think?) and lets you move to and from a text-based language (Python and JS IIRC). I'm not sure if micro:bit has the same social component that the Scratch site does, but it seems like it could at least kids "hey, this is what my code looks like in Python!" Then, they may go and download Python and start hacking away on that. 0: https://www.microbit.org/ https://www.microbit.org/
- raylennon 4y agoI just tried Scratch to make a quick little animation and I must say that it's actually pretty amazing. I've known about it for close to a decade but never really tried it out. I just spent a few minutes playing around and I was amazed by how easy it was to program a simple little animation.
- josefrichter 4y agoHarvard CS50 is also using scratch for the first steps.
- thepra 4y agoI tried to teach with scratch to a class of kids, the software worked across tablets like iOS and Android and PCs in incoherent ways, the same code blocks worked slightly or totally differently. And I'm not gonna give such classes anymore around this software, a waste of time.