Scratch is the world’s largest coding community for children

956 points
1/20/1970
a year ago
by khochesh_kushat

Comments


cgk

Full disclosure: Principal Software Engineer here on the Scratch backend...

Scratch is not built to be a "teach your kid programming languages" system, it is based on the work and ideas of the Life Long Kindergarten group at the MIT Media Lab (the director of this group is Professor Mitch Resnick, the LEGO, Papert Professor of Learning Research). The Papert part is where the term Mindstorms comes from (https://www.amazon.com/Mindstorms-Children-Computers-Powerfu...) and was used by the Lego Group when branding those products, and our philosophy is heavily influenced by that.

I can say that the https://scratch.mit.edu/statistics/ are real and we have a substantial footprint of backend services and custom software to support it. We handle on the order of 15-20 million comments/month.

The primary design philosophy is:

Passion: You have a strong interest in a subject/problem to solve/explore Projects: Build something based on your passions, gain directly interactive experience with it. Peers: Share your work with folks who are interested and provide feedback to you Play: It should be fun!

Note that there is nothing in there about STEM/STEAM nor application development. We build and support Scratch to provide creative tools for anyone to explore computation in a from that is relatable and has a low floor for understanding/entry. Having said that, the complexity of what Scratch can do rises sharply the more you work with it and the concepts behind "forking" and opensource are built in via the remix ability on individual projects.

A lot of design thinking goes into the frontend of Scratch to build on a creativity feedback loop that is not focused on learning Python or any other specific language (or the syntax of them, i.e. avoid "why isn't my program working... oh, one too many tabs... or maybe this semi-colon, or maybe this .")

Another part I think is worth raising, the Scratch frontend is a sophisticated virtual machine interpreter that has it's own machine code and model that is executing in a Javascript environment in browser and it is still open source. Google's Blockly project was based on the ideas of Scratch 1.4 and when we ported Scratch 2 away from being Flash based, we partnered with the Blockly group to fork their code base and create Scratch Blocks.

Based on the TIOBE index, we're usually somewhere in the top 20 most popular "programming languages". _eat it Fortran!_

a year ago

mjb

> We build and support Scratch to provide creative tools for anyone to explore computation in a from that is relatable and has a low floor for understanding/entry.

I love this philosophy. Computing is so much more than application development. It's a creative tool, and exploration tool, a tool for finding insight and exploring spaces. Giving people access to those tools without gatekeeping or accidental complexity is fantastic.

The popularity "you need to start with SICP" and "BASIC mutilates programmers" lines of thinking have done so much damage to the way we, as an engineering community, think about the role of computation in society.

a year ago

versteegen

Truth is, QBASIC was one of the best programming environments for beginner programmers. Sure it wasn't sophisticated like Turbo Pascal or Smalltalk, but with a single button you could switch back and forth between running your code and live-editing it. If an error occurred you could correct it and continue from where you were. Unfortunately when you got too close to the 640KB memory limit it was no longer possible to fit both the editor and the program in memory at the same time.

a year ago

actionfromafar

It had functions! Loved it.

a year ago

batch12

> and "BASIC mutilates programmers" lines of thinking have done so much damage to the way we, as an engineering community, think about the role of computation in society.

I learned BASIC when I was about 7 years old by reading the books and banging out code. When I didnt have access to a computer, I wrote the code on paper and entered it later. I can say that it was very hard for me to wrap my head around the C style syntax after a few years of immersion as a kid. I did get over it and I think that the problem helped me develop a deeper understanding of programming concepts. So maybe both can be true?

a year ago

PaulHoule

As a 10 year old reading BYTE magazine what seemed common to C, FORTH, and LISP was that one could add new "words" to the language. It was quite a while before I really got that there was a difference between functions, functions that take functions as arguments (or return values), and functions that take expressions as arguments (or return values.)

a year ago

varun_ch

Thank you for the amazing work you and the Scratch Team do. I want to second the comment that Scratch works. I'm 16 years old and I discovered Scratch when I was 7. Soon I will be starting my professional career (hopefully something in computer science/engineering/cybersecurity), and it's all thanks to Scratch and the amazing community you have fostered. I don't think I would have ever even considered computers as something interesting to me unless I discovered Scratch.

Thank you.

a year ago

cgk

Cheers!

This is the sort of feedback that makes me cry (in the good way). It was extremely rewarding to have MIT students show up at our group and talking about what effect Scratch had on them and how it helped them make their way to MIT.

a year ago

schneems

Wow. Thanks for posting! I’m curious of your thoughts on other visual programming languages. Specifically LabVIEW.

My first job out of college was at NI where they heavily use LabVIEW. Every engineer in my cohort thought that paradigm was going to take off and over a decade later, it clearly hasn’t. One large factor is cost and proprietary tech, but I’m surprised few outside of the hardware testing world even know such a thing exists.

I now code in Rust and Ruby and don’t yearn for a visual language, but I do wish people who needed to code something up quick could do it without getting knee deep in IDEs, syntax, and terminals.

I’m curious if you’ve got an opinion on that space. What’s holding it back, and if we will ever see a “killer language” for visual programming in the productivity focused space? What do you think would be needed for scratch to fill that role?

a year ago

cgk

Thank you for the feedback!

I made use of LabVIEW around 2002-2005 and I liked it, working on systems to measure the length of fiber optics down to the femtosecond (it's amazing what you can do with differential wave form/phase analysis), which was then used to write custom C++ code to do these measurements in real-time at a millimeter wave interferometer, enabling the ability to do real-time adjustment to the sample phases for any fiber that was being heated/expanding in the sun.

LabVIEW allowed us to make a very quick demonstration of this as a working concept. Which illustrates what I believe is the most powerful thing about visual programming environments. They can excel at demonstrations and full working solutions without including the parts of computation that are social constructions (language syntax, data structure access and limitations, ...).

I am not convinced that the idea of a "killer language" will happen. While there is a through-line of abstraction heaped upon abstraction, I am unconvinced that these first 60 years of computation in society are going to be visibly recognizable another 60 years from now.

OR!

Linus Torvalds will invent a language that takes over everything, based on how git has consumed almost the entire space of source code management systems (a sociological phenomena/opinionated work flow process) and the success of GNU/Linux more generally.

a year ago

seabird

Version control and diffing (programmatically or mentally) is a major stumbling block. The only graphical language I know of that doesn't suffer from this issue is PLC ladder logic, where the visual representation is forced and it's easy to programmatically show the differences between two versions of a given program, or mentally know exactly what given logic will look like. Pretty much everything else is miserable to compare code in, and this is especially painful when you're initially learning and the examples you're referencing are unhinged LabVIEW spaghetti with no real way to make it any more pleasant to read.

a year ago

doctorwho42

Just some pretext, I am quite experienced in LabView.

One of the major issues with visual languages is not being able to find the right chunk. Yes there is a search feature, but if you don't know the right word to search you are doomed. In my time as a undergrad research assistant I was pumping out complex LabView code and VI's to control whole experiments. But I still would run into problems where I couldnt for the life of me find the block I needed. The most visceral of these was converting something like a double to single or vice versa. I went hunting for the correct block to do the conversion, which would take barely a line of code to do in C++ (the language I knew at the time), and it wasn't in the 'convert' subset of blocks.. I had this vast code that worked, but I couldn't get the last part of the data path completed because this missing stupid block that converts... Took me like an hour to eventually find it after trying everything including Google and NI's documents...

So stuff like that would be the main reason I think they never took off. If you have to hunt and peck trying to find the right box, instead of innately knowing the syntax to do something like converting. Well it just isnt practical, it's easier to lookup in a reference text for the language than to hunt in NI's closed garden crazy house.

That all said and done, LabView had some of the best Connectivity to lab hardware. Over a decade ago you could connect 2-5 devices from 1985-2000 through GPIB, and into your code assuming you had VI's (sometimes you have to make them yourself). It's hard to state how amazing that was, being Able to automate the control and data acquisition of hardware made during the infancy of the internet for research. It also made you quite valuable in your PI's eyes. So unlike most people I know from that era of my STEM career, I was one of the ones that said 'yeah I hate LabView .. . But man is it good at what it does." ... From conversation with grad students these days, it sounds like the libraries in python caught up on that front.

a year ago

em-bee

One of the major issues with visual languages is not being able to find the right chunk. Yes there is a search feature, but if you don't know the right word to search you are doomed

how is that different from serching the right function or library in java or python or any other language?

either you know what to search for or there is good documentation or you have to ask somewhere. i don't see how visual languages fare any worse here. except maybe that the visual chunks don't help as much in memorizing their name so you end up searching more often to find it again.

instead of innately knowing the syntax to do something

any syntax of functionality needs to be learned somehow.

a year ago

wffurr

It sounds like the discoverability of the LabView “syntax” leaves much to be desired. Perhaps because it’s a proprietary tool used by lots of non programmers, the Google results seem to be really lacking. Much harder to find a top Stack Overflow answer. And the official documentation seems poorly structured.

a year ago

zdw

I get the feeling that graphical programming is the tooling problem.

The fundamental issue is that diff on textual code has no equivalent in a visual paradigm that doesn't have side effects - one example is that color often has meaning in visual systems, and thus is hard to use for showing differences.

I'd love to be proven wrong around this though.

a year ago

aetherspawn

I actually spent 3 months and a few $k developing an automotive relay driver, pedal control and dual CAN shield for NI myRIO for firmware development of a small hobby car, electric go-kart, e-bike etc.

The hardware worked, but the usability of the standard blocks .. for some reason it was a disaster compared to other visual design tools like MATLAB Simulink.

a year ago

TedDoesntTalk

What’s NI?

a year ago

Gracana

a year ago

wuiheerfoj

Ahh I thought it was Native Instruments - music production is a lot like graphical programming in some sense: you perform a bunch of mathematical operations on sound data by turning knobs, dragging waveforms and drag-and—dropping snippets

a year ago

nick__m

Native Instruments Reaktor looks inspired by LabView.

a year ago

dfex

I grew up with Applesoft BASIC and later HyperCard - as a kid, I was never a "Developer", but I was always curious - the fact that I could take someone else's source code and change it to my will felt like a superpower.

Now Scratch has more than filled that gap for my own children, and while they may never choose to pursue a career in IT, the fact that they are able to explore the field so easily is invaluable and may help them down the line.

Thanks to you and your team for all you do!

a year ago

Dalewyn

>the fact that I could take someone else's source code and change it to my will felt like a superpower.

The ability to go and tell your computer to do something and then see the computer do it is, in a word, mindblowing. I know it was mindblowing for childhood me.

My experiences with programming were HTML4.01 and CSS2, PHP, Ruby, and some more abstract forms of "programming" (RPG Maker!), and they all gave me a healthy if basic understanding of how computers work and how much power a keyboard and mouse can give to an individual with the proper will and gumption.

a year ago

p1necone

RPG Maker was great, I've been meaning to go back and build something with it again now that I have actual developer skills.

a year ago

Dalewyn

Not everyday I come across a fellow RPG Maker around these parts. I hail from the so-called golden age of RPG Maker (RM2K and RM2K3), those were the days I tell you.

a year ago

p1necone

I was way too young when I first discovered it, but it was in the 2k/2k3 era too. I could barely wrap my head around how switches and variables worked so my projects never got very far but I remember loving playing the Legion Saga series.

a year ago

cgk

Thank you! I also grew up around the time of HyperCard and BASIC on PCs, and spent hours carefully typing in programs from magazines. I can look back on that and find a lot of warm memories. I can also look at it with a critical eye and question how much I would have learned about general computation principles if there was something like Scratch available during that time period.

a year ago

123pie123

>"Scratch is not built to be a "teach your kid programming languages"

You might want to change the wikipedia page that describes you to the whole world

(from the first line of wikipedia)> Scratch is a high-level block-based visual programming language and website aimed primarily at children as an educational tool for programming, with a target audience of ages 8 to 16.

I would say scratch is a brilliant first language for children

a year ago

bjackman

I think the message was more that the aim of the project is not to teach kids to be software engineers but rather a platform for creativity and cognitive exploration.

That is not exactly incompatible with the Wikipedia page! It's a programming language and aimed at children but the aim is not to get your kids ready for Go and C++, it's to engage their brain in something positive.

(And of course, neither incompatible with the claim that it _also_ prepares kids to learn Go and C++)

a year ago

havnagiggle

Just want to say thank you! Two of my kids are using scratch regularly (8yo and 6yo). We started using the rpi module and I was surprised how easy it was to start banging out pins to control some motors. The fact that they can use it on a desktop, on a tablet, and it is integrated at school is just fantastic.

I used Lego mindstorms ~15 years ago, and LabVIEW 10+ years ago. Scratch has much clearer concepts and patterns. I always found it difficult to teach students LabVIEW and mostly because of the UI. LabVIEW does have some advantages because of NI, but Scratch is superior IMO.

I'll eventually be transitioning my kids to text languages but there's no replacing the fun they are having with it right now.

Currently we reproduce a lot of apps from Scratch YouTubers. I have been meaning to check out more of the community aspects. Just curious if you have any suggestions on a good way to engage with more Scratch enthusiasts (kids focused).

a year ago

Ozzie_osman

Curious how you get a 6 year old started? What should I buy or do?

a year ago

ivlad

Go to Scratch site (https://scratch.mit.edu/), create an account and show them how to connect blocks together to make the avatar move? Do it together and then check out other people’s works at the same site. You can build upon them.

You don’t need to buy anything.

a year ago

havnagiggle

Install scratch on a desktop or scratch Jr on a tablet. Watch a YouTube video with them making a simple game and implement it together. My kids liked Zoey from Scratch Team channel. We have made a handful of games together and then they kind of take off from there. I'll show them some new things once in awhile or start off a new program with them, but then I'll just leave them to it and they keep going, making it entertaining for themselves.

a year ago

Mixtape

While I have the chance here, I want to say thanks to you and your team for the amazing work that you all are doing. I doubt you need further validation, but believe me when I say that the ideas you're describing do work. My entire career in CS started with Scratch in intermediate school (somewhere between 2010 and 2012). Having an interface with a low barrier to entry, particularly for someone whose economic situation didn't allow for engagement with more sophisticated tools, allowed me to begin engaging with computing in ways that I'm not sure I would've been able to otherwise. It was also a bonding experience for my peer group and provided me with a shared interest to meet people over. At the precipice of graduating with a bachelor's in CS, I've been reflecting a lot on how I get here, and Scratch certainly played no small part in that process.

a year ago

outworlder

Scratch really seems to be well-designed, from what I've seen.

I actually wanted to use Scratch to program Home Assistant automations. My day job is enough 'serious' programming already. Plus maybe my family would be able to modify some automations.

a year ago

cgk

Me too! I have had various toy projects that make use of the open source Scratch editor to do this exact thing and writing extensions that would enable this. While our our extension system can enable this, we are very careful about adding extensions to the live site that might enable a project to spam connections and inadvertently creating a DDoS system.

a year ago

plttn

Remembering back to when I was a kid, Scratch was absolutely fantastic, and definitely helped me put me on the path I am today. Fantastic work.

With that said (and apologies on using the power of HN here), I've been trying to get in touch with Scratch support to have an old account of mine deleted, but I can't ever seem to get a reply. Would you happen to know who to get in touch with, other than the contact form?

a year ago

brw12

[I was an engineer at Scratch for 4 years]

My suggestion is to try using the contact form again. Sorry that isn't more helpful.

a year ago

vinodhn

Scratch was what got me into programming around 10 years ago! I was in middle school at the time and now I've just started working full time as a junior engineer. Without Scratch, I probably would've pursued something different. Thanks for your work!

a year ago

joelthelion

> Scratch is not built to be a "teach your kid programming languages" system, it is based on the work and ideas of the Life Long Kindergarten group

I don't understand why you need to oppose the two, they don't need to be incompatible. It should be possible to keep Scratch the way it is, and simultaneously provide an easier path to other languages for those that which. I'm not saying it's easy. I'm just saying it's a bit sad to discard that option based on philosophical arguments.

a year ago

maweki

I love alternative models of computation and the EV3 mindstorms language was very nice with a type system (including coercion rules) encoded in puzzle shapes, dataflow through "pipes", parallelism through diverging code paths.

With the scratch language I'm not so sure. I feel it's just imperative programming where you can't make a syntax error. You can put strings where numbers go and the semantics is unclear. Parallelism only works through events. Does the IDE provide so much more than Greenfoot and the like do not?

a year ago

em-bee

Parallelism only works through events

why is that a problem?

a year ago

maweki

In terms of the EV3 language you could spin up Lego motors in parallel just by drawing two lines from the previous command instead of a single line. Threading in a very literal sense.

Scratch being event-driven is not bad in itself. But there is so much design space to be explored.

a year ago

PaulHoule

I think a lot of the troubles that people have learning things have to do with emotions and motivation. I don't know to what extent people conclude they are completely unmusical because music classes in school don't engage them, for instance, and you learn just to lip sync to avoid a confrontation.

At times when I was burned out from programming I found my interest was rekindle d with Scratch.

a year ago

thomasz

First of all, let me tell you that scratch is a wonderful project. I have only one, but pretty important criticism: The tutorials that are packages with the installer use screenshots that are not translated and thus are pretty much worthless unless your kids speak English. I was pretty hyped on scratch, but this pretty much prevents self directed learning from happening.

a year ago

cgk

Hello, and apologies,

Given our limited resources, we have translated the tutorials (both the spoken language and the written words in the videos as appropriate) into a subset of the languages that Scratch has been translated into (> 50 languages). The tutorials themselves have been translated into Spanish, French, Japanese, Mandarin, Cantonese, Russian, Turkish, and more. This includes both the spoken words and the written ones. The specific updates to enable this were done in the last two years, so perhaps your experience was prior to that work?

One of my favorite things to show off is switching between Right→Left languages vs Left→Right languages, I encourage everyone to try it! These translations are also a struggle. It adds a lot of extra data to the downloadable and standalone Scratch application and we cannot assume that there will be a network connection available to enable a just-in-time download approach.

a year ago

codazoda

Is there any appetite to support more serious programming with Scratch? I’ve created a toy or two but would love to do more. The start/stop flags are the main blocker for me. If there was an option to start automatically and run forever (or until a break) I think I’d do a lot more experimenting with it.

a year ago

sincarne

I volunteer for a code club, so maybe I can help you out. I’m not sure what I’m missing in your issue, but Scratch scripts run continuously once the green flag is clicked. You can stop execution programmatically using the stop() block.

https://en.scratch-wiki.info/wiki/Stop_()_(block)

a year ago

codazoda

That’s the problem. I don’t want a green flag that is required to start the application.

a year ago

dandare

My son has language disorder and we just build together a Scratch program to train his inflection skills. Lists of verbs randomly mix with lists of adjectives and nouns.

There are plenty of things that I would instinctively improve about Scratch, especially text outputs, but in the end Scratch is amazing at what it does.

Thank you!

a year ago

cgk

No, thank you! I really mean this, your feedback matters to us as we are continuously working on accessibility issues with both presentation and usability.

a year ago

coffeebeqn

Are you hiring backend engineers in the near future? Asking for a friend, naturally

a year ago

cgk

a year ago

zem

scratch seems like a good candidate to be the next flash, in the sense of an authoring tool that makes it easy to create and share little games. do you have any theories as to why scratch games haven't taken off the way flash games did back in the day?

a year ago

JoeOfTexas

My 9 year old daughter surprised me yesterday with her little game made with Scratch. I was impressed.

I surprised her back when I did user-testing haha. She discovered the fun world of bugs and user's doing things they shouldn't!

a year ago

shagie

> I surprised her back when I did user-testing haha. She discovered the fun world of bugs and user's doing things they shouldn't!

Oh... that path takes you to strange places.

Mr. Fart’s Favorite Colors - https://medium.com/@blakeross/mr-fart-s-favorite-colors-3177... (7 years ago - https://news.ycombinator.com/item?id=11231631 )

It starts when we’re 8 and coding our very first program. “What’s your favorite color?” it asks, sweetly, twirling a lock of Visual Basic around its finger. You type in your answer, the screen changes color accordingly, and boom — time to show off to family.

Then Aunt Jody calls.

“Honey, it froze on me. ‘Color.exe has crashed.’ I don’t know what that means.” You take a look at her entry. She entered: 2.

“I thought it asked how many favorite colors I had?”

But how could you…but what does it even mean to have more than one favori…ok, fine. No big deal. You add a sliver of code to stop people from typing numbers into the box.

a year ago

skeaker

Great read, thanks for sharing. This took me down an hour long rabbit hole of airplane safety procedures which is not what you would have expected going in.

a year ago

alexb_

I remember when I was young, I made a scratch game that was just "Guess the secret letter". Basically "if l pressed, you win, else you lose".

Except my 10 year old brain did not understand what else meant. So I created, over the course of hours, a different if statement for every key on the keyboard that all ended with "you lose". Was a shock to me when my parents, after seeing my code for the first time, told me what else means. What a waste!

a year ago

detritus

One of the fun things about having a kid is realising how fundamentally-learned everything is, and how much we adults end up taking for granted. I catch myself so many times explaining things to my daughter, and then realising that the terms and concepts I'm using in the description also need describing. (She's 22).

a year ago

sa48k

I had a similar experience as a kid when making a game in BASIC. The player could choose their difficulty level, with higher difficulty levels having less obstacles for the player to hide behind. My code to calculate the number of obstacles looked like 'if diff=10 then obs=1; if diff=9 then obs=2; if diff=8 then obs=3; etc.' My dad looked at it, deleted all ten lines, replaced them with 'obs = 11 - diff', and my jaw hit the floor.

a year ago

asciii

> I surprised her back when I did user-testing

Wait till she gets tough PR reviews.

This block is ugly, and our team does not like looking at it :P

a year ago

qikInNdOutReply

Remember that robblox investigation, were they interviewed that 12 year old that already talked like a burned out developer, feeling cheated out of the revenue. The children yearn for the mines..

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

a year ago

bitdivision

a year ago

asciii

Yikes...

Scratch and Roblox conspiracy to create an army of child developers? :O

a year ago

Wowfunhappy

Please do not conflate Scratch and Roblox!

Scratch is open source software created by a nonprofit foundation to promote education and creativity.

Roblox exploits children for profit and I quite literally believe they are violating child labor laws.

a year ago

asciii

> I quite literally believe they are violating child labor laws.

Couldn't agree more the more I learn about them.

a year ago

Wowfunhappy

I would actually be very interested to hear from a lawyer—or at least someone with legal knowledge—why Roblox hasn't been prosecuted for this. These children are creating value for the company, and they're being compensated via a currency which can be converted into dollars. How is that not payment for work?

If Robux could only be converted into Amazon gift cards, I would still argue that was a labor violation, but I could at least understand why the case was murky.

Can Uber hire 16-year-olds to drive for them without a work permit as long as they're paid in special UbiCoins which are converted into dollars later?

a year ago

samstave

AND This damn kid WORKS FROM HOME every darn day and doesnt even let me know on Slack!

a year ago

AzzieElbab

I code in 5 languages professionally, and I also do infrastructure and architecture. My kid is so much better than me in Scratch; it is embarrassing.

a year ago

unfairly4820

Found this piece of code long ago online , Calculator game made from a kid from Scratch... (but spelled Claculator lol)

https://i.redd.it/5t9mpdhzzniz.png

a year ago

welfare

Quality Assurance is a first reality-check.

Please shield her from doing UAT with unreasonable business stakeholders as long as you can

a year ago

dunham

We had one in makecode that I had to look into after my kid left for school. (He was pretty frustrated.) Turned out that it wasn't applying changes we made in the code and the window needed to be reloaded.

My ten year old is doing both scratch and makecode. The graphics in makecode are not as flexible as scratch, but it's fun to be able to make a game and run it on a physical device (pybadge).

a year ago

alan_russell

https://microblocks.fun/ have the same flexibility as Scratch. In fact, they are both works by John Maloney.

a year ago

vb234

I’ve been tempted to teach my daughter programming with scratch. At what age did you introduce your daughter to Scratch and programming? Where there any helpful/fun guides you or she discovered along the way?

a year ago

sokoloff

I introduced to my kids at around 6 and 8. 6 was maybe a little early, but not much (and will vary by kid, of course).

One thing that really added to the fun when they were making games is I got a PS3 controller (which is bluetooth) and connected that to the computer as a keyboard, which Scratch code can then read and use in the games.

The first big (for them) project we did was: https://scratch.mit.edu/projects/219423211/ They had just turned 7 and 9 when we did that and dad helped them out with a fair bit of guidance (and cribbing from other projects), but after this one, they really took to playing around with it on their own and a few times per month, I'll look over and see Adam using scratch around 5 years later.

PS: There is a Scratch Jr if your kids don't seem quite old enough to have the attention span/focus for scratch.

a year ago

vb234

Thank you. Scratch Jr looks interesting and is probably a better introduction for my 6 year old.

a year ago

jkestner

In spite of learning Logo at 6, I didn’t try to introduce programming to my kids, but my 7yo daughter picked up Scratch-based web programming during school where they did Hour of Code. (Pleasantly surprised considering Texas’ slow bleeding of public schools.) It’s a free site filled with focused, guided activities using block programming and probably other languages. One is Dance Party where you sequence dancers and their stage to a music track, and in another you teach Elsa to skate patterns into the ice in a modern twist on Logo.

They do a lot of Minecraft now but are interested in TinkerCAD, which I’ll solidify by printing some of their designs. Not sure any of the beginner CAD apps are really easy, though.

a year ago

JoeOfTexas

She uses it at school, but no one taught her how to use it. She has followed tutorials for making games on Roblox Studio in the past. However, kids just hit the ground running with Scratch way better than adults.

a year ago

vb234

That makes a lot of sense. As a lapsed programmer myself, I found the Scratch interface was not very intuitive.

a year ago

beshur

<nerdy dad doing PBJ according to the kid's instructions video>

a year ago

pixelize

I LOL'ed! You really brought out the QA and product testing on her, haha!

a year ago

nrjames

As a parent who used Scratch with their kids... it all started out great and then veered into being an unregulated social media network lacking any ability to create a space where they could build and learn to code in private. It wasn't long before they were doing it only for the likes and, without constant supervision, trying to figure out how to join various groups and challenges simply for the attention they would receive.

I really like the idea of Scratch, but I feel like parents and teachers who use it in the classroom should have a way to create for their kids accounts that are not part of the community aspects of the tool. Kids don't need to be doing anything online for "likes" at the age of 8 or 9.

a year ago

frankosaurus

I run the standalone Scratch program on an offline raspberry PI. My kids enjoy it. The best thing about offline is that they have to create something to play a game.

We formerly used Scratch online, starting in 2nd grade at school. It had good and bad aspects. It was great to follow griffpatch, who has really sophisticated coding tutorials. On the downside, they got creepy comments on their Scratch projects. There were also various ruses to get the kids to upvote projects, typical social media crap.

Also, being on the Scratch community means my kids could just search for someone else's clone of (insert game here). So Scratch can turn into just another way to play video games. With offline, that's not an option.

If your kids are good at self-regulation, online can be fine, though.

a year ago

cgk

"...lacking any ability to create a space where they could build and learn to code in private."

Correct, this is by design, the way to go for the private/no on-line community aspects would be to use the downloadable stand-alone Scratch editor. Based on the self-selecting group of users who agree to send back telemetry usage for the stand-alone editor, we believe that over half of all Scratch users are only using the stand-alone editor. Last year this was somewhere in the range of ~100-150 million individuals worldwide.

On the website, we regularly evaluate how we can downplay the worst aspects of a social network, such as, not showing the exact count of certain indicators of likes/stars/views in various areas of the site (e.g. showing 100+ vs 203, etc.)

https://scratch.mit.edu/download

a year ago

tropicaljacket

Yeah.. another thing is there is a lot of published games in Scratch (from other users), many are very tempting to play/try out and often the Scratch session just turns into playing those games without educational/learning activity. Anyone figured out how to avoid this?

a year ago

khochesh_kushat

You can run a local copy, which I believe is unconnected from anything online. It's what I plan to set up for my daughter.

a year ago

schneems

Code.org is more focused on learning and has some controls to lock down what they can and cannot access.

I use it in 3rd, 4th, and 5th grades to teach kids coding at an elementary school.

It’s more setup for kid/teacher than kid/parent though so YMMV.

a year ago

em-bee

trying to figure out how to join various groups and challenges simply for the attention they would receive

were they not learning anything in that process?

a year ago

thesausageking

My 8 yo loves Scratch. She's made over 30 apps with it and has had a great time. However, now that she's reached the limits of what it can do, I have been frustrated that there isn't a natural place for her to graduate to. And Scratch does get really limited quickly.

There are unofficial forks like SheepTester's one which let you drop JavaScript into Scratch projects, but they're not easy to use. We've failed a few times trying to setup it and make her successful with it. And it also requires you to know JavaScript moderately well.

a year ago

brw12

[I was an engineer at Scratch for 4 years]

The "what do we do after Scratch" question is tricky! There's no super clear answer (and a big market opportunity!)

It is important for people getting deeper into programming to learn a text-based language. But I do want to say that you don't need to stop using Scratch -- lots of adults use it, and it's really great for many things... e.g., this memory portrait of my mother sewing when I was young https://scratch.mit.edu/projects/646805603

Several comments here have hit on the visual UI as an element of Scratch that other languages don't have as readily.

Another element is the sharable context: you can make a Scratch project with others' enjoyment in mind; your project doesn't have to have another purpose besides being fun to play with.

So for moving on to other programming languages, I think the key is to identify compelling projects and to find (or build) small communities which will use those projects.

E.g.:

* sites like replit and Glitch and Github Pages and val.town where the whole idea is to make a small program (or piece of a program), publish it instantly, share it with others and remix others' programs

* making a choose your own adventure-style or Zork-style text game

* Advent of Code https://adventofcode.com provides a massive multiplayer experience where you know you're solving the same project as thousands of other people

a year ago

jvvw

I've seen some children move onto Unity for the 3D graphics. Physical computing can sometimes give an incentive for Python when its the only lanaguage available. We've done some stuff with Minecraft Pi at code clubs I've been involved with. although it's such an early version of Minecraft. My elder son likes maths, so we've done some mathematical things in Python, which are easier in that, although probably wouldn't be impossible in Scratch.

But it's tricky!

a year ago

em-bee

etoys for squeak has the ability to switch between blocks and code, as a way to learn about the code that the blocks generate.

it would be interesting to have a programming language that is essentially a text form of scratch and that can drive the same animations so that you could learn the text syntax and continue creating the same games, or even translate from one to the other.

a year ago

RokCoder

I've been working towards addressing this by building a tool that bridges the gap between Scratch and Unity. Talking with Scratch Team members in the past, Unity has been cited as a good exit strategy. Unlike many other languages you aren't being dropped into a text-only environment. I think the main downside is the initial presentation of Unity can be a little daunting.

The tool I'm working on adds a new entry to the main Unity menu bar - "Scratch". Clicking on this allows you to enter the project ID of a Scratch project. Once done, the tool pulls the assets (graphics, sounds, etc) directly from the Scratch website as well as pulling the code and converting it to native C#. The idea behind this is that a student who is intermediate to high level at Scratch can import their favourite Scratch project over to Unity. They can look at the C# code to see the comparison, inspect and modify any of the assets, see the Unity components added to each Unity Game Object, etc. Basically it puts them in a position where they have a project that they have written in Scratch that they can no play in Unity. They can breakpoint the code and single step through it. Essentially it is designed to take away much of the initial impact of having to start from an empty canvas in Unity.

This is currently a WIP but I'm aiming to have a beta version ready within months. I made an early pre-beta video a while back to demonstrate it in action. You can view the video at https://youtu.be/nuUF9BcJT8g

a year ago

john-tells-all

Agree. My nephew has made 800 Scratch projects, which is mind-blowing. I'd love to offer him a smooth path to other development. However:

- Python has graphics, but it's a very steep climb from the simple drag-and-drop of Scratch

- Javascript has easy UI elements, but he'd have to learn HTML and other things

Scratch is so different from "straight" programming, I'm not sure if it's worth his time to learn JS and then translate his Scratch knowledge to it.

a year ago

mkehrt

Possibly Processing? or processing.js?

The Coding Train on youtube (run by Daniel Shiffman) (https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw) has some great tutorials.

a year ago

skeaker

A younger relative of mine did a course through code.org a few years ago. I remember it being essentially Javascript but you could toggle to a code blocks view and could drag-and-drop some HTML elements so you wouldn't have to worry about the HTML side. Not sure if the actual courses are any good, but it might be similar to what you're looking for.

a year ago

cxr

Microsoft MakeCode supports a similar editing experience.

a year ago

birdyrooster

It's so wonderful how prolific children can be when they get excited about something.

a year ago

mkehrt

Possibly Processing? or processing.js?

The Coding Train on youtube (run by Daniel Shiffman) (https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw) has some great tutorials.

a year ago

gnramires

I believe p5.js (used at https://editor.p5js.org/) is quite close to Scratch in spirit. Of course I think turning straight to javascript (the library really streamlines it) might be too difficult without instruction, so following some kind of tutorials or lessons would be necessary.

It's incredibly fun, and I've been making procedural... things for a while with it. Many artists use it (and of course every web tool is available... you can even later port the code to just straight canvas for the performance, although that's rarely necessary I guess).

See my little roguelike room generator: https://editor.p5js.org/gustavo.nramires/sketches/eyyxg7vl2

And a funky flower: https://editor.p5js.org/gustavo.nramires/sketches/hwhVUQu_X

a year ago

easrng

Snap! has already been mentioned, but another scratch mod that has more extensions available (and is faster and has more options) is Turbowarp (https://turbowarp.org/)

a year ago

lkajslkjdd

The Microsoft Makecode editor allows you to switch between block and JS, which can help with this.

More embedded orientated but still an interesting idea.

https://makecode.microbit.org/#editor

a year ago

keithjl

I'd make a case for any node-based scripting language in 3D modeling software. Blender or Grasshopper for Rhino comes to mind. Benefit of Grasshopper is that there are convenient Python or C# nodes for you to write scripts that can't be expressed through nodes (IE loops); downside is that it is paid software (although not subscription based!!).

For architecture/design students, Grasshopper is usual their first introduction to programming and algorithmic thinking, and many students become fantastic programmers by extension.

a year ago

jmhammond

Unfortunately, Grasshopper is shutting down in June. https://support.grasshopper.app/t/grasshopper-is-shutting-do...

a year ago

RRWagner

a year ago

trevcanhuman

As another commenter has said, I'd recommend Processing[0], a java-based language with a graphics library. One of the best ways to get into text-based programming languages.

The tutorials I would recommend are from the Coding Train youtube channel.

You can make tons of games and animations with this, I mostly used it for 2d games.

I have only tried it on high school 10th graders, it's worked pretty good for getting them into object oriented programmming.

[0] https://processing.org

a year ago

RokCoder

As for reaching the limits of Scratch, that depends on what you think the limits are. It's amazingly versatile and surprisingly powerful. I teach at Code Clubs and am constantly encountering children (and even teachers) that believe Scratch is good for making a cat walk across the screen but not so much above and beyond this. To counter this I made my own projects to demonstrate what can be achieved (though not necessarily what "should" be achieved). These vary from accurate reproductions of arcade games (Mr Do, Scramble, Galaga, etc) through to ports of classics (z-code adventures including Zork, Hitchhiker's Guide, etc through to Beneath the Steel Sky) and even a fully working BBC Micro emulator that plays most original Disk Images. You can view these projects at https://www.rokcoder.co.uk - you really can create very impressive projects using native Scratch

a year ago

123pie123

my kids really like CodeCombat

https://codecombat.com/

a year ago

the-alchemist

I also really like CodeCombat. I used to it to try to learn Javascript, and I got kinda hooked.

https://www.ozaria.com/ seems to be the company's new product. Have you tried it?

This non-profit I was working with was hesitant to have their inner-city youth use a product called "CodeCombat".

P.S. Looks like they're trying some Robox integration or something: https://codecombat.com/roblox

Haven't tried it, though.

a year ago

123pie123

The new product doesn't look too diferent but I'm not an expert

my sons are looking forward to the roblox integration - my eldest son programs roblox anyway via LUA/ roblox studio(i think its called that), so that should be interesting to see the difference

a year ago

nwinter

Thanks for the mention! We are working on a side-by-side blocks-and-code mode with two-way sync that should be pretty good for this.

a year ago

bj-rn

If you want to stay in the browser check out cables[1]. If you are on windows and OK with a desktop app have a look at vvvv[2].

[1] https://cables.gl

[2] https://visualprogramming.net

a year ago

leobg

What app/device are you using? Looking for something like this for my 6 year old.

a year ago

lapama

What about netlogo?

a year ago

photochemsyn

I'd imagine learning at least a little Python alongside Scratch would be more optimal than Scratch alone. It's like bilingual education, it has great benefits although individuals may gravitate towards a preferred option. Perhaps it's a bit like comparing Minecraft to Factorio:

https://www.idtech.com/blog/scratch-vs-python

Looking around, it also seems possible to set up your own Scratch server, which is comparable to setting up a Minecraft server, then you could use Python to pound away via the Scratch API (which is otherwise disallowed by the Scratch team on the public Scratch servers, reasonably enough). That might be a good project for older kids (teenagers).

a year ago

eshnil

Snap language by SAP (snap.berkeley.edu) would be a better stepping stone rather than directly going to industrial languages. It's got first-class functions, first-class lists, object-oriented programming, APL-style vector operations which are very handy for media processing, machine learning etc, continuations, ability to make HTTP calls etc - while keeping the same playful environment as scratch.

Features like this enable serious study of computer science possible with Snap: https://emu-online.de/ComputerScienceWithSnap_2.pdf

There's even a variation for 3D geometries: beetleblocks.com

Scratch is immensely popular but with lack of reporter blocks and lack of first-class lists, it encourages many bad programming habits (global state, no datas tructures like stack/queue/tree/graph etc. The one advantage it has over SnapLang is that it has better performance for building intensive games etc.

a year ago

hedora

JS is cleaner than Python for this, IMO:

https://developer.mozilla.org/en-US/docs/Games/Tutorials/2D_...

It's also more likely to run a few years from now, and it works on tablets, grandpa's ailing windows box, etc.

a year ago

RokCoder

I mentioned this already in an earlier post but I've been working towards addressing this by building a tool that bridges the gap between Scratch and Unity. Talking with Scratch Team members in the past, Unity has been cited as a good exit strategy. Unlike many other languages you aren't being dropped into a text-only environment. I think the main downside is the initial presentation of Unity can be a little daunting.

The tool I'm working on adds a new entry to the main Unity menu bar - "Scratch". Clicking on this allows you to enter the project ID of a Scratch project. Once done, the tool pulls the assets (graphics, sounds, etc) directly from the Scratch website as well as pulling the code and converting it to native C#. The idea behind this is that a student who is intermediate to high level at Scratch can import their favourite Scratch project over to Unity. They can look at the C# code to see the comparison, inspect and modify any of the assets, see the Unity components added to each Unity Game Object, etc. Basically it puts them in a position where they have a project that they have written in Scratch that they can no play in Unity. They can breakpoint the code and single step through it. Essentially it is designed to take away much of the initial impact of having to start from an empty canvas in Unity.

This is currently a WIP but I'm aiming to have a beta version ready within months. I made an early pre-beta video a while back to demonstrate it in action. You can view the video at https://youtu.be/nuUF9BcJT8g

a year ago

cyrialize

Other platforms similar to Scratch actually teach Python!

They start off with drag and drop coding and then Python. The Python is actually pretty fun, you write code to make animals move around and get stars.

a year ago

teucris

Which platforms are you referring to?

a year ago

Elte

Also not OP, but I literally just learned about Hedy [1] today. No experience except from clicking through it for 20 minutes, but it looks quite interesting, taking somebody from a language with a very simple syntax (and limited functionality) to full blown Python, one level at a time, by making the language gradually more complicated (and more powerful).

[1] https://www.hedycode.com/

a year ago

pdm55

I also quickly went through the basic tasks in 17 levels of Hedy in about 20 mins. (I just know a little programming.) Hedy is text-based and introduces ideas such as: print, entering variables, if, else, repeat, ... I really liked the gradual approach, which keeps you going forward onto the next level.

There are additional tasks at each level (see tabs at top) which I didn't try. It seems that these tasks are best done from left to right in order to get the basic idea of what is required.

a year ago

rahimnathwani

Do kids who start programming with Hedy get confused about when a piece of text is interpreted as a variable vs. a string?

https://www.hedycode.com/hedy/2#default

The way it automatically detects variable within strings seems to magical. OTOH AIUI Hedy has been developed alongside research on what works for kids.

a year ago

alephaleph

IIRC one of Hedy’s unique features is that it gradually increases in complexity as you “level up” including introducing what we’d call “breaking changes”. At level 4, they start allowing and requiring you to quote string literals: https://www.hedycode.com/hedy/4#default

a year ago

rahimnathwani

Nice!

I'm excited for my son to try it out once he's gotten comfortable with scratch.

At the moment, he's more interested in the visual design part of scratch than the programming, so I probably need to find some cool existing animations to inspire him.

a year ago

em-bee

i found it very confusing that the introduction at each level links to the next level but does not tell you to try the exercises. i didn't even realize that the tabs were exercises per level as i consider tabs a higher level hierarchy compared to the previous/next buttons. (i expect those to work within a tab, and not switch to a different row of tabs)

and also, why introduce an echo command in level 1 only to drop it in level 2? they could have waited and introduced ask in level 2 or 3 even.

i love the quiz questions though, they even make me, as an experienced programmer, think

a year ago

giovannibonetti

Not OP, but CodeWars is a platform I heard about that fits the description

a year ago

mstade

I think maybe Lego mindstorms does this.

a year ago

askvictor

Not OP, but Makecode does this.

a year ago

knicholes

It's almost as if Python was designed to make it easy for kids to learn how to program.

a year ago

hajile

Scratch now uses blockly under the surface and blockly itself is written in JS. If you wanted to extend things, JS seems like a more natural choice.

a year ago

[deleted]
a year ago

disembiggen

the thing I've found teaching is that the place scratch really shines is teaching kids who are a bit too young to "get" Python. I think it's related to their language/visual intuition but a seven year old will be able to pick up quite complex things in Scratch visually without being able to grasp fairly basic things in Python. Give them a couple of years in the oven with or without Scratch and they'll be much more confident and ready in picking up Python, but scratch can teach them a lot in the mean time.

a year ago

em-bee

etoys for squeak, which is somewhat similar to scratch (and supposedly influenced its development) has the ability to switch between blocks and the smalltalk code that the blocks generate. so you can basically look under the hood (and also change the smalltalk code)

a year ago

yalogin

Folks here who used scratch with their kids, what is the next step after scratch? How did you introduce a language/platform to your kid? I have introduced python and my kid is able to pick it up, but am unable to come up with projects that sustain interest. It feels dry without UI and one shouldn't be doing web dev with python too. So what is the progression for python and kids?

a year ago

tropicaljacket

After scratch, we tried this:

- https://www.codemonkey.com/ (mix of block programming and python) . Step by step guidance. A lot of kid-oriented UI/fun stuff.

- https://codecombat.com/ (python or JS). Still have levels, hint etc but the solution is less straightforward (sometimes I'm even stuck trying to help my kid!)

- If your kid is advanced enough, try https://open.kattis.com/

One common problem that kids encountered that's not straightforward is debugging simple coding issue (e.g. missing colon, mixing variable names, etc.) Even with great guidance from the platform, it's very common for kids to run into this and the compiler error is not helpful. A parent/teacher with programmer experience is needed to unblock.

a year ago

jawns

For our kids, the progression has been:

- Scratch Jr.

- Scratch

- Replit

Scratch helps them understand programming concepts such as variables, lists, conditionals, and events, but still in an intuitive visual programming interface.

Replit gives the kids access to real programming languages (JS, Python, etc.) but with lots of support, and the same "remix other people's projects" culture.

Indeed, our kids have found that there are a LOT of Replit users in their early teens (12-15), and they all help each other out.

a year ago

csmeyer

What projects do your kids complete on replit? Are they following youtube tutorials or first party content from replit?

a year ago

somethoughts

I'm in the process of testing out the following on Middle Schoolers:

microStudio includes all you need to write code, create sprites and maps for your 2D game. All from your web browser. Your project is stored in the cloud, accessible from anywhere.

Write your game code in microScript, a simple language inspired by Lua. The documentation is always there to help. Create cool demos in just a few lines of code.

microScript shines by its simplicity and interactivity. But you can also code in JavaScript, Python or Lua if you prefer.

https://microstudio.dev

Also recently found https://www.solarus-games.org:

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

Starts out with some default RPGMaker style tools (i.e. tile map editor, sprite manager, enemy manager, etc.) but subtly introduces Lua to enable mods to the default game making tools so you can make your own Zelda like games.

Wish me luck!

a year ago

moreati

https://www.hedy.org/ is billed as an incremental bridge from Scratch to Python, with built in learning aids and teaching aids.

a year ago

ragebol

I used this with my scout group a while ago, kids 11-14. They loved it and went way further with this than I ever expected.

Kids had no experience with any programming language, no Scratch, no Python etc.

a year ago

Uhhrrr

I showed my younger kid some stupid JavaScript tricks in the browser developer console and he was off to the races, looking up how to make splashy buttons and the like. So I got them the "Get Coding" books, which are HTML/JavaScript. He's on to more elaborate things now.

I also showed my older kid some JavaScript and Python after he had messed around in Scratch for a while, and he was mildly interested and then went off to do other things. So YMMV because my mileage certainly varied.

a year ago

kgwxd

Roblox Studio is, by far, the most encouraging environment I've see for kids. Being able to easily share a multiplayer 3D world with friends is a HUGE motivator. My 6yo has been using it almost daily for a few months now and things like Scratch never held his interest for more than a few hours total. Only downside is you need a decent PC for it to be usable.

a year ago

Wowfunhappy

I've heard great things about Roblox Studio in isolation, but it's just so unfortunate that it's tied to a proprietary platform that uses dark patterns to profit off of children.

a year ago

kgwxd

Agreed, to an extent. I had major arguments with my first kid over things like 10,000R Dominus'. It was a source of arguments for days at a time sometimes. I was on Linux at the time so I couldn't even play the games to see exactly how scammy some of them are.

However, he grew up, and when our youngest got into it, our oldest immediately took my side when his brother started the same kinds of arguments and, somehow, he was able to instantly get through and convince him spending Robux on that level is very dumb. I've since gotten back on to Windows and it's been an absolute treat to play with our youngest ever since. I wonder if I had just been able to play with our oldest, if those arguments could have been avoided entirely. As lame as a lot of the games are, they can be pretty fun to play with a kid for a bit and they don't seem to care too much about the stuff being sold when they have someone in the same room to play with.

a year ago

geomark

A few years ago I struggled to find a good next step to go from Scratch to Python. A couple of platforms advocated the approach of have one tab with block code and another with the equivalent text-based code. That didn't seem to work, because it was just easier for the kid to stay in the graphical tab and not really absorb what was happening in the text-based code.

I ended up making something myself, a web-based Python tutorial that uses Turtle graphics and trinket.io. It's more of a tutorial and not gamified and doesn't have substantial projects like building games. It introduces Python elements in steps where the student has to use them to draw some graphics using Turtle. Worked out pretty well to get my kid launched in the direction where he now does more substantial Python projects.

Added: I structured it using the PRIMM approach.

a year ago

alexb_

I think it's best to just leave them with scratch until they get bored of it. Eventually, if they end up having a passion for programming, the fundamentals built there will help them immensly at picking it up. Be careful not to force your own interests on your kids!

a year ago

snowytrees

As someone who learned programming with scratch in elementary school, the next step they did was using DrRacket but honestly I did not like it. I don’t remember anything I made with it but still remember my scratch projects. I think pygame would be a good next step as it is batteries included and let’s you build similar gui applications with an event loop. However, I haven’t used scratch since around 2010 so it could have evolved a lot since I used it and the concepts might not translate anymore.

a year ago

sincarne

At the Code Club for which I volunteer the next step is Python. We use the Raspberry Pi projects[1] which use the Tinker[2] repl.

[1] https://projects.raspberrypi.org/en/projects/about-me

[2] https://trinket.io/

a year ago

askvictor

MakeCode is pretty amazing. Options for it are the micro:bit, an 8-bit arcade system, or Minecraft. Switches between block-programming and Python or Javascript, so you have an easy path to text programming.

For 'real' programming, once they have their python chops, have a look at https://anvil.works

a year ago

giraffe_lady

BBC microbit is a decent transition in my experience. It gives a couple sensors and simple LED and sound output built in which helps come up with ideas for playing around with it.

The IDE also allows you to switch back and forth between scratch and, I think js or python, and see the code output of the scratch you've written.

a year ago

adunsulag

I put my kids through both scratch and khan academy javascript. I've found that it helps them come to terms a lot with the underlying mechanics of scratch and my oldest is now graduating onto building web apps. When my child hits a hurdle and feels like doing something easier they go back to scratch.

a year ago

empressplay

turtleSpaces is a text-based variant of Logo with both 2D and 3D modes that runs in a web browser. Its syntax is very similar to Scratch, and it's less picky about formatting (doesn't care about white space, etc).

You can make 3D models (for printing), 2D artwork, and 2D and 3D animations and games. Once they're able to create things with turtleSpaces, it's much easier to move on to Python, Lua or Javascript

https://turtlespaces.org/weblogo

a year ago

fernirello

Shout out to empressplay and her teammate(s) (sister?) for their work on turtleSpaces, an underrated, solid implementation of 3D logo in golang that can run on the browser. I've used it to teach children, and they've quite liked how easy it is to create 3D games and animations that can be looked at from any angle. Thank you for creating turtleSpaces and for the endless work adding features, fixing bugs, releasing new versions and quickly answering questions! I've no connection to it other than being a grateful user.

a year ago

JamesSwift

Roblox could be good. The marketplace is such that you can drop them in and have them create practical things, while deciding how in the weeds of actual coding they want to get into.

a year ago

ronilan

[dead]

a year ago

Joeri

Scratch also really lets you focus on one concept at a time. My son followed a programming course in scratch and the entire first lesson was about sequence, they learned to drag one instruction after another and saw how the order of steps impacted the result. I would have never conceived of explaining something as basic as sequence first, but scratch is ideal for that because it doesn’t require any boilerplate.

a year ago

pcwalton

Scratch is brilliant, and the research that has gone into creating a visual programming language has paid off handily. I wish that node-based visual scripting systems like Unreal Blueprints (and, to a certain extent, things like Blender Shader Nodes and Geometry Nodes†) worked more like Scratch:

1. Edges in node-based programming get tangled easily and it becomes hard to read. Scratch has no visual edges: the pieces snap together, making it easy to visually follow the flow.

2. Having to manually drag nodes around is a chore. Scratch does automatic layout within individual functions.

3. Some node-based systems use colors to distinguish types. This is inherently less readable than the different shapes that Scratch uses.

4. Scratch is structured programming, unlike node-based systems which are essentially based on GOTO.

5. Visual programming systems based on nodes have no easy way to step up to text-based programming languages, unlike Scratch which follows the form of standard source code. This is largely because of (4): nodes are based on GOTO, which is not how modern programming languages work.

† Node-based programming is more defensible when there's no control flow, such as with common shaders, but I still think it'd be worthwhile to try something like Scratch in this domain, perhaps modified a bit to better visualize "pipeline" workflows.

a year ago

Brajeshwar

If your kids tinker with Scratch, try out TurboWarp[1], a Scratch mod that compiles projects to JavaScript.

Other alternatives to tinker with are Blocky[2] and Snap[3].

1. https://turbowarp.org

2. https://developers.google.com/blockly/

3. https://snap.berkeley.edu

a year ago

ksab

My 4 year old made his first program using Scratch Jr.

What was this program?

He made a story where cats jump up and down 25 times and then walk away. He recorded sound effects for the cats that repeated as the cats jump.

It’s simple but offers so much more of a creative outlet than games/educational apps aimed at his age group.

a year ago

efitz

I bought a subscription to CodeSpark Academy and my kid has spent literally hundreds of hours on it over the last few years. He’s 9 now but started at 5 or 6. It allows him to do exactly the kind of things you describe- simple animations with kid-provided sound effects, a simple visual building block programming language, etc. I think that the key advantage of these types of systems is that they allow kids to do things that kids like (animated cats, poop noises, whatever) right off the bat. Getting enough python skill to do these kinds of things would take many hours of learning.

a year ago

meterplech

This is really cool. Out of curiosity - how did you actually set this up for him to use? Was it on tablet or a computer or phone? Any suggestions for a dad of a 3.5 year old?

Also, is he reading / at what level? Trying to get a feel for when I can introduce it to him.

a year ago

ksab

We’re using an iPad. It’s theoretically aimed at older children (5+) but my son was able to pick it up no problem.

I sat down with mine about 6 months ago (he was 3.75 at the time) and we learned what each of the blocks did and how to combine them.

Now he asks to make a program and can do it independently.

He experiments with the backgrounds, sound effects, loops and motion.

My son can read but knowing how to count/recognize numbers is more important in this interface. Everything is graphical. Loops require a number input.

Another toy aimed at older children that younger ones can play with is snap circuits. We introduced the toy at 3. He can copy the project schematic and build the project. He built the AM radio project independently.

a year ago

meterplech

Really helpful - thanks for the details!

a year ago

ryanjshaw

Thanks for mentioning this option -- much easier to use for early readers!

a year ago

pradn

Scratch supports message-passing and concurrency, which makes writing parallel programs fairly straight-forward. This is usually considered a more advanced series of programming concepts, and yet, I've seen children use them for their own games. The language is more powerful than you think!

a year ago

NayamAmarshe

Anybody remember Logo? That turtle graphics program? That's what they taught us at school. Programming for kids surely has changed a lot since then.

a year ago

jazzido

Scratch is part of the same lineage [0]. Seymour Papert (creator of Logo) was one of the doctoral advisors of Mitch Resnick, who leads the group at MIT that maintains Scratch.

[0] https://el.media.mit.edu/logo-foundation/what_is_logo/histor...

a year ago

kleer001

THAT is fantastic and heartwarming. I wish they put that front and center on a History of Scratch page.

a year ago

latchkey

My grandfather got me a lesson in Logo when I was <10 on his apple ii. It was before I understood the concept of degrees, so I really struggled with it. That said, it is part of what made me into a software engineer today.

a year ago

empressplay

There are modern web-based Logo interpreters too, including:

Lynx (2D): https://lynxcoding.club turtleSpaces (3D): https://turtlespaces.org/weblogo

Logo is still taught by many schools, all around the world!

a year ago

mcshicks

You can do turtle graphics in scratch. I have taught some beginner scratch classes at my local library and used the turtle graphics feature for the example for the class

a year ago

theonething

I played around with Scratch and all the pointing, clicking and dragging drove me nuts.

a year ago

mattw2121

Also used in Harvard's, excellent, CS50. I recommend this for any middle or high schoolers thinking about a career in tech.

https://pll.harvard.edu/course/cs50-introduction-computer-sc...

a year ago

Retr0id

They're selling it short - it's the largest coding community full stop.

"As of 15 February, 2023, community statistics on the language's official website show more than 123 million projects shared by over 103 million users, over 804 million total projects"[1]

Compare to GitHub:

"As of January 2023, GitHub reported having over 100 million developers and more than 372 million repositories"[2]

Of course, the average Scratch user is very different from the average GitHub user, and the average Scratch project is very different from the average GitHub repo - but the numbers don't lie (probably).

[1] https://scratch.mit.edu/statistics/

[2] https://github.blog/2023-01-25-100-million-developers-and-co...

Edit: Somewhat tangentially, bear in mind that Scratch publicly launched in 2007. The first generation of Scratch learners are now adults with jobs in-industry, who appear from time to time on the front page of HN ;)

a year ago

Wowfunhappy

Every time you open a new instance of the Scratch editor, Scratch saves it as a new project. It's still a huge number but a bit skewed compared to e.g. Github.

a year ago

pftburger

Haha pretty sure GitHub counts pointless forks and generator projects though

a year ago

[deleted]
a year ago

Wowfunhappy

Scratch has their version of a fork, called a "remix".

a year ago

hnbad

103 million users is still more than 100 million developers though, even if you disregard the number of projects.

a year ago

__mharrison__

Pretty sure Excel is the largest coding group in the world, they just don't share their code in Github.

a year ago

Retr0id

"Community" being the key word.

a year ago

zamnos

I have never seen a programmer as excited to tell me about something like, say, Duff's Device as I've seen one excel user hear another ask "what're pivot tables"? and to have the other reply "Let me show you..." That may have to do with the kind of party I end up at, but "helping each other out" is a rather important feature of any community. There are also Excel championships with a prize. https://www.fmworldcup.com/excel-esports/microsoft-excel-wor...

When's the last time you got a prize for programming outside of your paycheck or a signing bonus? Communities definitely have shared events and what better shared event than a competition?

a year ago

Retr0id

I'm amused that's still going, one of my classmates qualified for and attended the Word championship hosted in Vegas many years ago.

As for programming prizes, "last week" if we're counting bug-bounties, "a few years ago" if we're counting CTFs, and 5 years ago if we're not.

Clearly there is an Excel community in the general sense but as far as I know it isn't centered around any particular venue - at least, not one at the scale of GitHub or Scratch

a year ago

zamnos

Infosec is a community unto itself. What was the competition 5 years ago?

a year ago

TeMPOraL

All Microsoft needs to do here is to include a stripped down IM inside Excel, a blend between MS Teams and Chatroulette, but with a twist: it will upload what you're working on to Bing to take a look at, group you with others whose Excel sheets are closest to your in the latent space, and connect you all in a group chat.

Like magic, fluid, self-associative communities.

a year ago

idinnoaname

I can see why this got down-voted, but seeing this in fruition would be quite interesting.

Of course, this would probably require sharing internal corporate data which is a big no-no.

a year ago

bobthepanda

I wonder if you could have this where the chat just tokenizes or minifies code on the client and spits out human readable made up stuff on the other end.

a year ago

thebigshane

sounds like the new Microsoft Loop product/service announced a few days ago

https://www.microsoft.com/en-us/microsoft-365/blog/2023/03/2...

a year ago

spullara

You have to wonder why there isn't a huge online excel community.

a year ago

fredsmith219

They’re all in sleeper cells.

a year ago

FigmentEngine

they work in single cells...

a year ago

zimpenfish

Shame?

a year ago

qznc

The numbers do lie I think. I have two Github accounts (work and private). My single Scratch account is also used by my two kids. So Scratch might be even more ahead.

On the other hand, your numbers are accounts, I assume. Not active users

a year ago

wizzwizz4

Many Scratchers hop between accounts like they're… well, accounts in a computer system. Last I checked, the average (among active Scratchers) seemed to be about 4 accounts per person.

a year ago

n3storm

Many kids created several user profiles. Most of the times when they "level up" and for example "learn functions" (custom blocks), instead of create new projects with the learning old ones they create a new user profile so I would at least divide 103 million users by two.

a year ago

Retr0id

Anecdotally, I have at least 3 GitHub profiles

a year ago

Wowfunhappy

Note that Scratch does not require users to verify their email addresses (although some functionality is restricted), so the barrier to entry is somewhat lower.

Even for confirmed email addresses, Scratch is super lax in terms of what they'll accept. My company (a childrens' coding enrichment program) probably has upwards of a thousand Scratch accounts attached to a single gmail via "+" aliases, and Scratch doesn't care at all.

a year ago

datkam

I have many profiles on any platform that I use a lot (at least 15 on HN and 15 on reddit).

a year ago

freedomben

Genuine question: why? I only have one, and I wonder if I'm missing something.

a year ago

Tade0

Anecdata: my sister had a additional Facebook account for gaming on this social media platform and adding strangers as friends for related bonuses without running the risk of inviting stalkers.

EDIT: additional, not "duplicate", which would imply any of the personal data was similar - it was of course fictional.

a year ago

datkam

I do it in an effort to preserve privacy...

a year ago

charcircuit

Is scratch counting remixes in the total projects? I doubt Github is counting folks.

Also sharing raw user count doesn't mean much. I have a suspicious github deletes far more bot accounts than scratch does and really we should care about something like MAU which takes into account retention.

a year ago

sokoloff

Why wouldn't github count forks? I have several repos forked with my own local changes. (I also have some repos forked without changes.) They should absolutely count forks with commits on them at the very least.

a year ago

charcircuit

>Why wouldn't github count forks?

Internally all forks are stored in the original repository. So it would be reasonable to expect Github to just count the number of repositories that exists.

a year ago

em-bee

are you sure? how does that work? how does git clone know to only give me my fork and not the whole repository? to my understanding they must be full copies. they can use hardlinks to avoid duplicating files to save space.

a year ago

munificent

By that metric, gist.github.com is probably the world's largest coding community.

a year ago

__mharrison__

"It's like Scratch but annoying" - One my of children's friends when describing working with Python in hour of code.

a year ago

davepeck

Seattle Public Schools participates in code.org’s “hour of code” program, which introduces students to programming in general and to the (delightfully good) free resources and programming environments on both code.org and scratch.mit.edu. My daughter had her first “hour” in first grade and it stuck; she loves toying with scratch and making little games. Both organizations are doing amazing work.

a year ago

varun_ch

Hour of Code is wonderful. I think my old school was one of the first to try it, in 2013 or 2014, and that's how I discovered my love for computers. It's a really great initiative that has no doubt impacted thousands of people around the world. I hope Hour of Code and Scratch continue to exist for years to come.

a year ago

zabzonk

i (a 69 year old c++ dev) use it for writing interactive xmas & birthday cards - it really is great! give it a try.

a year ago

Turing_Machine

For sure. Though designed for kids, Scratch is a lot of fun for adults as well. I encourage everyone to spend a little time playing with it. I think you'll be impressed.

a year ago

samstave

Please post an example?

a year ago

zabzonk

cannot - they are all personal

a year ago

hcaz

I have spent countless hours in scratch when I was younger. I learnt to program in basic originally but I loved scratch for its ease of use.

There was a group of us during ICT classes who would try and make the best games with scratch. Ended up learning the basics of momentum and control schemes by messing around with it.

a year ago

distcs

Not a Scratch user. Also not a child here. A grown up software programmer. But I did try Scratch and I could not make much sense of it. Maybe I am missing something. So read this comment as a request for help.

The last time I tried, I remember I had to drag and drop building blocks available as tiles. Some tiles made the character turn right. Some tiles did something else. Some implemented conditionals. Am I remembering it right?

And then when you run the program, the character moves across the screen in the way it was programmed. Is that all? Is there something more that we can do with Scratch? Can we write an interactive adventure game for example?

Just making sure I did not miss something. I would really like to try it again but not sure what I was missing. Or is it really meant for children and it would not appeal to adults?

a year ago

fayten

You can make some pretty robust stuff with Scratch.

User griffpatch has made a lot of advanced stuff here: https://scratch.mit.edu/users/griffpatch/

He has a youtube series too about building a 2D RPG in Scratch along with a built in tile editor: https://www.youtube.com/watch?v=5lof-Nu1VVE&list=PLy4zsTUHwG...

There is also a faster interpreter called TurboWarp that runs significantly faster than the official Scratch implementation: https://turbowarp.org/

Here is an example of the old 2d space shooter Tyrian running in turbowarp: https://turbowarp.org/151417355

a year ago

Retr0id

Scratch also has variables, lists, if/else and looping control flow structures, and procedures (the main limitation, imho, being that procedures don't have scoped local variables and cannot return a value)

It also has event-based concurrency.

a year ago

distcs

Are they all available as tiles to be dragged and dropped? Or can I type it out too with a keyboard?

a year ago

Retr0id

The former. If you want text, other languages are available.

If you really want to use a keyboard, Tosh exists, effectively acting as an alternative front-end for Scratch https://tosh.blob.codes/

If even using a keyboard is too much effort, I have a Python library for doing Scratch metaprogramming and code generation, with optional vscode integration: https://github.com/davidBuchanan314/boiga

I've used it to write non-trivial Scratch programs, such as X25519 key exchange with ChaCha20-Poly1305 authenticated encryption https://scratch.mit.edu/projects/714773326/

a year ago

Wowfunhappy

> If you really want to use a keyboard, Tosh exists, effectively acting as an alternative front-end for Scratch https://tosh.blob.codes/

I really wish this was a bit more robust. I would like to use it as a bridge between Scratch and Python or Javascript, getting kids in the habit of typing things using syntax they are already intimately familiar with.

But the project is just a bit too buggy. I've had variables randomly not appear, sounds not import, etc.

This is in no way a criticism of the developer who created tosh as a passion project, it's just a lament. Tosh is so close to being a fantastic tool.

a year ago

varun_ch

Not anything officially supported, but there are some community tools to do that, tosh[0] and Scratch Addons'[1] "Insert blocks by name" addon comes to mind

[0] https://tosh.blob.codes/ [1] https://scratchaddons.com/ (It's a browser extension chalk full of little enhancements for Scratch)

a year ago

hoherd

It's a lot more than that. People do ray tracing with scratch. https://scratch.mit.edu/users/Raytracing/

a year ago

reacweb

A sprite can create clones; There are variables that can be bounded to clones. This gives similitudes with object programming. Scratch is event oriented and involves concurrent execution of many tasks. This is not the imperative style of our youth, but it may be a better fit for modern programming.

Despite the apparent simplicity, you can develop very advanced game mechanism. The limitations occur when you want to give a professional finish. It is meant for children, but it is a pleasure also for the "parent teacher" because it allows to teach advanced ideas.

a year ago

khochesh_kushat

It's possible you were playing Scratch Jr, it sounds a bit like it.

a year ago

lfnoise

My son, 17, learned to program in Scratch, and wrote a lot of games in it. Since then he has learned Python, Lua (in which he wrote a space invaders), and Java in both high school and during the summer at Cornell. He can write in these languages, but the problem is, he thinks in Scratch. He always goes back to write things in Scratch. In Scratch he has written a number of ray tracing and path tracing renderers which can model roughness, specularity, ambient occlusion.. He teaches me stuff about rendering that he reads from papers. Right now he is working on an NES emulator in Scratch that necessarily includes a 6502 emulator. It can load and play Mario games. But I can't get him move his ideas to a textual language.

a year ago

sharp11

That is utterly fascinating. From his pov, is it a problem, or only from yours?

a year ago

lfnoise

I'd like him to make a more firm next step. He sometimes brings up some of the difficulties he has expressing things that would be simple in another language. I point this out. He understands that but still prefers to work in Scratch. One factor may be that he has a social network on Scratch.

a year ago

[deleted]
a year ago

JamesSwift

Its a really good intro, but can become stifling really fast for young learners. You risk losing their interest too soon if they want to push past the boundaries.

a year ago

myth_drannon

I find Scratch so confusing. So many menu options, drop downs , select here click here. Very frustrating experience. I don't think my child (8 years old) learns coding from it. I'm trying to find away to introduce him to Basic. But he looses interest once he sees just lines. Scratch is flashy and things can be moved and clicked which is what the kids are used now, but I just don't see any educational or fun value added.

a year ago

Mezzie

Can you start him with JavaScript and basic web development instead? That's how I learned around that age (started around 5 or 6). The immediate feedback of being able to change something in text and immediately see the impact was a big thing that helped me. Likewise, something like helping him mod games he plays might be good.

Scratch always kind of struck me as a non-programmer's idea of how to teach children to code personally. (Or at least programmers that didn't start/weren't active as children).

a year ago

eimrine

> But he looses interest once he sees just lines.

This hits me deeply. I do not have kids, even not married. But when/if they will appear I will manage to disallow any GUI on the territory of my house for everybody including me (I hope old Nokias will still be a thing at that time for having ability to communicate or it will not work). Then a child will look at the lines as at the most interesting thing in the house and maybe starts going a GNU/Linux hacker way as early as some greatest mathematicians have started their math careers.

I respect such thing as Scratch and any of his competitors, but let's be honest, gentlemen - games is a misusing of computer and the lines is what matters.

a year ago

khochesh_kushat

My 7 year old watched it and it clicked quickly, but we also watched a couple example videos on their official YouTube channel. Maybe give that a try. Once it clicked we were able to make some cool stuff together, and she was able to add features on her own.

a year ago

zabzonk

honestly, you don't need to use the menus much at all. it's mostly just drag and drop from the block pallette. this thing has been specifically designed to be easy for kids to use, and all the evidence is that it has worked amazingly well.

a year ago

diego_sandoval

I Learned to program using Microsoft Small Basic. I was 14 and the experience was really good. I learned through the PDF tutorial [1], which now has also been translated to HTML documents [2].

And I think that if I had been 9 years old when I learned, I would have still chosen to use Small Basic rather than Scratch. Block-style coding feels less versatile than text. It may look more attractive to some kids, but I would also suppose that some kids would rather use a text-based language.

Graphic capabilities in Small Basic were still really easy to use (look at the PDF from chapter 6 onwards).

[1] https://download.microsoft.com/download/9/0/6/90616372-C4BF-...

[2] https://smallbasic-publicwebsite.azurewebsites.net/tutorials...

a year ago

Kelamir

I was impressed when I had seen that the scratch forum has millions of posts: https://scratch.mit.edu/discuss/

a year ago

ocfnash

I mentioned this in a reply to a comment below but I think it is worth repeating at top level: there is a great app called Pytch which is a bridge between Scratch and Python (and runs in a web browser).

I always recommend it to anyone teaching young kids to program.

You can find it here: https://www.pytch.org/app/

a year ago

cxr

I'm a little weirded out by all the reaching in this thread to try to shoehorn Python in where it doesn't fit well.

Scratch is an accessible, browser-based programming environment. The browser already includes first-class support for a text-based programming language. It's not Python.

a year ago

michelb

My nephew loved Scratch, he went on to https://www.hedycode.com/ in school and is now continuing in Python. Great stuff.

a year ago

balls187

Scratch is also one of the largest places for kids to play games.

a year ago

snowwrestler

This is true—and watch animated stories.

But the cool thing is that for any game or story on Scratch, the kid can click into the project to see how it was made, and even access the code and assets. They can copy, fork, alter, build.

The technology is different obviously, but it feels like the early days of the Web, when you could “view source” and “save as” to easily explore and learn how any web page was put together.

a year ago

Turing_Machine

> But the cool thing is that for any game or story on Scratch, the kid can click into the project to see how it was made, and even access the code and assets.

Definitely an important feature for learning. Seeing something cool and then immediately being able to find out how it was done is much more motivating than reading and memorizing docs ahead of time.

It's similar in some respects the early days of the web when "View source" was enough to figure out how something worked. It's rather sad that feature has mostly been lost.

a year ago

stevenkkim

Yeah, I learned this when I thought my kid was spending hours coding, he was actually spending hours playing games.

a year ago

MH15

Scratch was instrumental in my path to software, I loved using the old desktop version as a kid. Thrilled to see it continues to inspire a new generation of children.

a year ago

roland35

I love that my son enjoys scratch, but I wish there was some way to have parental controls on the social aspects of it! I am a little uncomfortable with the fact that random users have messaged my son and there really isn't anything I can do besides periodically logging in myself

a year ago

khochesh_kushat

You can use the local version instead, maybe.

a year ago

avtar

At work [1], we've wanted to provide kids with cognitive and/or physical disabilities an introduction to coding fundamentals (sequences, loops, etc). As a result, we've created Weavly [2]. It's a React app that can work standalone, but also integrates with some off-the-shelf robots. It's free, open source [3], and accessible to people using screen readers, switches, and other assistive technologies.

[1] https://idrc.ocadu.ca/

[2] https://weavly.org/

[3] https://github.com/codelearncreate/c2lc-coding-environment

a year ago

adolph

Scratch also has a plugins for BBC Micro:bit and Lego Boost. They work well although the old Boost hardware is lacking storage so only works in Bluetooth tethered mode. The solutions have two parts: 1. a side application to facilitate the Bluetooth connection from the web browser to the device; 2. additional block types to control the servos etc.

https://scratch.mit.edu/microbit

https://scratch.mit.edu/boost https://scratch.mit.edu/boost

a year ago

JustinGarrison

If you’re interested in what’s on the backend I interviewed one of the infrastructure engineers and talked about it here

https://youtu.be/QrBztSqCmlk

a year ago

em-bee

why did you cut out the actual interview? i'd have been interested in that as well, and learn what you derived that whiteboard from.

a year ago

cgk

Probably because I do terrible interviews :)

a year ago

em-bee

somehow i doubt that, judging from what you posted, it can't be that bad. don't be shy.

a year ago

maliker

I would have guessed Roblox was the largest. 214 million monthly active Roblox users in Feb 2023, assume only 20% are kids actually building something so 43 million, beating scratch's 36 million monthly unique visits [1]. Still awesome how huge Scratch has become.

[1] https://scratch.mit.edu/statistics/

a year ago

memco

Haven’t worked with scratch myself, but I do enjoy HelloComics’ stream where they’re making a pretty fun looking 2d metroidvania style game in Scrtatch. If you’re interested in seeing how it could be used for a large scale project it might be worth a look: https://m.twitch.tv/hellocomics.

a year ago

CoryAlexMartin

He’s actually using Stencyl, which has a programming interface based on Scratch.

a year ago

[deleted]
a year ago

trustingtrust

My 9 year old nephew today told me he wants to learn scratch. I don’t know where he heard that from but he was very specific about it. Wow.

a year ago

manchmalscott

I had to log in and look around my old account, revisit the silly projects I made when I was 9 years old. Scratch wasn't my first exposure to programming (that would be batch scripting) but I still remember how fun it was to use and how it felt like I could make anything with it. I'm incredibly glad to see it still going strong.

a year ago

csmeyer

When people use scratch with their kids, what tutorials do they follow? Do they try and figure things out from first principles, or are their popular content creators who make stuff? How do people transition their kids from scratch to Python? From my experience teaching, it seems like it's really hard for kids to make that transition.

a year ago

khochesh_kushat

There's an official YT channel with lots of small simple game tutorials.

a year ago

ocfnash

There is a marvelous app designed to solve exactly this problem called Pytch: https://www.pytch.org/app/

a year ago

NDizzle

Great questions, and good timing. My daughter asked about learning "line programming" instead of "block programming" yesterday.

Finally, out of 3 kids one is interested! Now what do I do?! Python, I'm assuming, but following what curriculum?

a year ago

jalk

How about p5.js Graphics centric which imo is easier to keep kids engaged. The coding train yet channel has tons of videos on P5.js

a year ago

Agrue8u

I follow https://www.youtube.com/@griffpatch He has some amazing programs.

a year ago

sobkas

But for how long programming will be an useful skill? Because if it become a hobby/toy it will have to compete with other activities that are more fun/fulfilling. Or it could become part of existing hobbies eg. let's write software for onboard computer in this model rocket.

a year ago

valid4life

It's almost embarrassing typing this but growing up as a "leet cod3r kid writing c++" I used to be a Scratch hater. It didn't dawn on me until much later that the RPG Maker VX I grew up with was just a different version of Scratch and visual programming :)

Keep kicking ass Scratch!

a year ago

singhrac

I am a Scratch-taught programmer in that I played with Scratch in 5th grade and ended up programming professionally. It was great and I'm sure they've done a good job with it since. I'm very, very grateful.

a year ago

[deleted]
a year ago

avodonosov

My experience (past HN thread): https://news.ycombinator.com/item?id=32122972

a year ago

insane_dreamer

My favorite language for teaching kids to code and which I taught my daughter starting around 9 or 10, is Ruby. Expressive syntax, easy to read, good introduction to objects. Her first real program was a treasure hunt game in the terminal, using classes, inheritance, methods, and conditionals, etc.

It didn't have the cute graphics side of things, but she learned all the concepts well (she now has a degree in engineering and being paid to write code)

a year ago

ptd

Does she like her job? I only ask because you specified comp in a way that suggested that is what is most important to you(and her).

a year ago

insane_dreamer

Good question. She actually got a degree in chemical engineering not CS, but then switched over to fulltime software dev at her company a couple of years out of school as she liked that more -- so yeah, I would say so.

a year ago

ptd

Awesome! Glad to hear things worked out.

a year ago

shultays

Looks kinda similar to early Flash, which was my first real programming experience. Actionscript had a similar visual programming tool back then and you could also switch to "text mode" if you wanted to see what those visual blocks meant as a code. And it came with an amazing offline help manual. Flash/Macromedia was start of my career basically

a year ago

wslh

Just my experience though, but I had better results with Alice: http://www.alice.org/ the 3D building blocks were more appeal. Now I cannot believe that they moved the objects using drag and drop with a small basic notebook touchpad. BTW I am talking about normal IQ children.

a year ago

berkle4455

With LLM's, Scratch is probably a closer interface to the sort of programming we'll all be doing in the near future.

a year ago

quonn

When the managers have do this „programming“ themselves they will go back to letting developers pick their tools. Just like now.

a year ago

irrational

I had no idea my son even knew scratch, but the other day I looked over his shoulder at his chromebook and was astonished to see him working on a huge scratch project. I asked if he had any other projects and he had dozens of projects, some incredibly complex. I was both surprised and pleased.

a year ago

throw0101b

If any parents live in Toronto, the TPL has programs for kids (9+) on Scratch at various branches:

* https://www.torontopubliclibrary.ca/search.jsp?Ntt=Scratch+C...

a year ago

titchard

Scratch is a great tool for teaching the entry level elements before you move onto a written code. I have been running after school classes for kids using Scratch (under the Raspberry Pi charity arm codeclub.org) and they take to it very quickly.

a year ago

MikeTheRocker

I love Scratch! I credit it partially with getting me into programming in middle school.

a year ago

matthew28845

Same, I think I made my account when I was 9. I have Scratch to thank for a lot of my interests today.

a year ago

mavili

Isn't it pretty much the only coding community for children? Headlines like this are always catchy but also not so. Largest community.. for children.. of 10-11 years.. :D the group just gets narrower and narrower as you read

a year ago

ciconia

Both of my teenage kids are learning Scratch at school. They both find it confusing and annoying, and I don't disagree. I believe teaching them something like LOGO would have been much more efficient and gratifying.

a year ago

disembiggen

I was obsessed with scratch as a child. It was my way in to computer programming, and I've taught in schools using it. It's an incredible tool and I'll hype it up any chance I get! It really is a miracle!

a year ago

SpaceManNabs

I first used scratch in 200X as a freshman. Glad to see lots of other kids are still using it to learn. My best friend at the time made an incredible sonic game and it showed me how deep you can go with any tool.

a year ago

GaggiX

Everyone talks about their kids trying Scratch but I'm pretty young myself, I remember playing with Scratch when I was a kid, very simple games that I would then show my friends. It was a fun experience.

a year ago

guywithahat

False; python is the worlds largest community of children programming (\s)

a year ago

dang

Related. I'm a bit surprised there hasn't been more (most of these threads were small). Others?

Ask HN: Alternatives to Scratch for a blind child? - https://news.ycombinator.com/item?id=34229502 - Jan 2023 (67 comments)

Ask HN: is learning Elixir suitable for a kid who currently uses MIT’s Scratch? - https://news.ycombinator.com/item?id=32242897 - July 2022 (4 comments)

Show HN: CodeStruct – Python programming environment for novices after Scratch - https://news.ycombinator.com/item?id=32232110 - July 2022 (5 comments)

Show HN: PickCode – An educational coding environment for students after Scratch - https://news.ycombinator.com/item?id=32230329 - July 2022 (32 comments)

I made advanced BI queries with Scratch puzzle pieces - https://news.ycombinator.com/item?id=32130444 - July 2022 (20 comments)

Scratch is a big deal - https://news.ycombinator.com/item?id=32120445 - July 2022 (296 comments)

Linux Kernel Module written in Scratch (a visual programming language for kids) - https://news.ycombinator.com/item?id=31921996 - June 2022 (38 comments)

Snap is Scheme disguised as Scratch [pdf] - https://news.ycombinator.com/item?id=28337196 - Aug 2021 (40 comments)

Syllabus for teaching Scratch programming to kids - https://news.ycombinator.com/item?id=24633742 - Sept 2020 (2 comments)

Show HN: My 10 yr olds recent scratch creations - https://news.ycombinator.com/item?id=23892698 - July 2020 (9 comments)

Scratch: Block-based visual programming language - https://news.ycombinator.com/item?id=22854218 - April 2020 (10 comments)

Recursion and Fractals - https://news.ycombinator.com/item?id=21879638 - Dec 2019 (19 comments)

Scratch 3.0 - https://news.ycombinator.com/item?id=18810216 - Jan 2019 (110 comments)

Game of Life in Scratch - https://news.ycombinator.com/item?id=14625653 - June 2017 (7 comments)

How Scratch teaches kids to follow the hacker ethic - https://news.ycombinator.com/item?id=14274249 - May 2017 (115 comments)

A Forth to Scratch compiler - https://news.ycombinator.com/item?id=13564754 - Feb 2017 (7 comments)

Why I Believe Scratch Is the Future of Programming - https://news.ycombinator.com/item?id=13129030 - Dec 2016 (62 comments)

Scratch is probably the answer - https://news.ycombinator.com/item?id=10144228 - Aug 2015 (27 comments)

MIT Scratch – Teach kids to program stories, games, and animations - https://news.ycombinator.com/item?id=8751969 - Dec 2014 (30 comments)

MIT's Scratch Team releases Scratch 2.0 editor and player as open source - https://news.ycombinator.com/item?id=7739604 - May 2014 (61 comments)

Scratch for Arduino - https://news.ycombinator.com/item?id=6613619 - Oct 2013 (11 comments)

What's New in Scratch 2.0 - https://news.ycombinator.com/item?id=5685448 - May 2013 (47 comments)

Super Scratch Programming Adventure--A new programming comic for kids - https://news.ycombinator.com/item?id=4419513 - Aug 2012 (2 comments)

Using Kinect with MIT's Scratch (visual programming language) - https://news.ycombinator.com/item?id=2086238 - Jan 2011 (4 comments)

Use Scratch to Easily Program Household Appliances - https://news.ycombinator.com/item?id=2077265 - Jan 2011 (8 comments)

Apple Rejects Kid-Friendly Programming App - https://news.ycombinator.com/item?id=1281738 - April 2010 (26 comments)

Scratch: Programming for all - https://news.ycombinator.com/item?id=955228 - Nov 2009 (2 comments)

Ask HN: Guido van Rossum's comment about go and scratch - https://news.ycombinator.com/item?id=946338 - Nov 2009 (26 comments)

Scratch Helps Kids Get With the Program - https://news.ycombinator.com/item?id=608629 - May 2009 (11 comments)

Scratch is a Programming Language for Kids - https://news.ycombinator.com/item?id=36053 - July 2007 (5 comments)

a year ago

isp

Linux Kernel Module written in Scratch (a visual programming language for kids) - https://news.ycombinator.com/item?id=31921996 - June 2022 (38 comments)

a year ago

dang

Wow great catch. Added above. Thanks!

a year ago

smfjaw

Scratch gets meme'd way too hard, such a good way to learn, we did this for a few classes in highschool as an intro to the concepts, got me hooked and now I'm a dev at a hedge gund

a year ago

martin1b

My kids love scratch. Excellent introduction to coding for kids. Wish it was taught in schools more as it helps build methodical cognitive thinking. I consider it modern BASIC.

a year ago

skulk

Scratch is why I got into software. One day, more than 10 years ago, my dad showed me this weird program for making a cat move around, and the rest is history.

a year ago

danabrams

I took a refactoring class where we used scratch and it was a lot of fun.

I now have a 5-month old and I can't wait to introduce him to scratch jr in a few years.

a year ago

zzixp

Without scratch I would not have connected with programming the way I did when I was a kid. Fantastic program, and a great community as well.

a year ago

MichaelMoser123

i have written/am working on a simplified programming language for kids. The language has it's own REPL/Shell and is more kind of text based.

https://github.com/MoserMichael/jscriptparse

i would really appreciate some some feedback on my side project

a year ago

calini

Really curious how and why North Korea has a number of Scratch users per capita 3 times higher than South Korea

a year ago

n3storm

My kid has learnt a lot both programatically and online social skills thanks to Scratch.mit.edu. Thanks from Spain!

a year ago

tropicaljacket

can you explain more about social skills? And how old is your child?

a year ago

[deleted]
a year ago

sarimkhalid

Scratch was my first introduction to programming. Thanks to everyone behind it!

a year ago

throwaway689236

That's cool, wish I had something like this in my childhood.

a year ago

stuckinhell

Doubtful, I believe that actually goes to Roblox or Minecraft.

a year ago

kleer001

Maybe it terms of total users, but I don't think every Roblox or Minecraft user is actually coding. Most of them are assuredly just players.

a year ago

Wasserpuncher

Ohh yes! We also use it at school.

a year ago

salawat

Does no one do Logos anymore?

a year ago

empressplay

Yes! Many schools around the world still teach Logo. Two web-based Logo interpreters are:

Lynx: https://lynxcoding.club

turtleSpaces: https://turtlespaces.org/weblogo

a year ago

dhosek

There’s a logo app for ios that my son (9yo) has been playing with.

a year ago

khochesh_kushat

What is doing logos?

a year ago

trufas

a year ago

dhosek

I think op meant logo

a year ago

bastardoperator

Can you run scratch locally?

a year ago

khochesh_kushat

a year ago

Kon-Peki

My kids got started with Scratch 1.4 on a Raspberry Pi. That's as far as we've gone with it. Scratch 2 was a lost cause from the start, and Scratch 3 leans way too hard into the "community" aspect of it. It's really too bad.

a year ago

em-bee

in what way does it lean to hard into community? you can run scratch 3 offline, without any community at all.

a year ago

Kon-Peki

Not on Linux, you can't

a year ago

em-bee

ouch! i didn't realize that. that's very puzzling.

seems there are some third party packages, but they don't look maintained.

a year ago

moneywoes

Is there monetization?

a year ago

dabei

Is there any effort to connect Scratch with LLMs?

a year ago

RokCoder

I'm a long time advocate of Scratch and love the fact it makes programming so accessible to children. In the early days of computing you would turn on your computer and be able to program in BASIC straight away. There were no extra packages needed, no hoops to jump through - it was just there. After the popularity of PCs took off I feel this went by the wayside. To program you would have to boot into windows and (purchase and) install an IDE. It just made programming harder to get into. With the advent of Scratch you can simply fire it up in a browser and jump straight in.

As a programmer by profession and a Code Club teacher by choice, I wanted to test out the boundaries of Scratch. So many children (and teachers) think it's a very basic programming environment with very limited application. I have found this to be far from the case and have created dozens of advanced projects to demonstrate as much. From replicas of arcade games (Galaga, Scramble, Mr Do and many more) through to ports of PC projects (Beneath a Steel Sky, The Manhole, Zork and more) through to a complete BBC Micro emulator that plays most original disk images. There's some delicious irony to having created an emulator of the computer I learned to program with in a modern language that children now learn to program in.

For anyone interested, you can view and play all of these project at https://www.rokcoder.com

I'm not suggesting that Scratch should be taught to this level but I think it's interesting and useful to know just how flexible and powerful it can be.

I discussed the exit strategy from Scratch with Scratch Team members at the Scratch Conference back in 2019. One suggestion they put forward was Unity due to the fact it's not dropping children directly into a text-only scenario which is the case with most programming languages. I found this to make a lot of sense but also recognised that putting a child in front of an empty Unity screen can be a little daunting. Because of this I started creating a tool to bridge the gap - to give children something other than the blank canvas to start from and to ease their journey into Unity.

The tool simply adds a "Scratch" option to the main Unity menu. Using this it allows you to enter a Scratch project ID and then imports the project directly from the Scratch website and into Unity. The idea behind this is that intermediate to advanced Scratch users can pull their own favourite project that they have made directly into Unity. The assets (graphics and sound effects) are imported and the actual code is converted to C#. Within minutes anyone can play their own Scratch project from within Unity. They can see the C# code equivalent of their Scratch project. They can see the Unity components in action, the Unity scene, who the IDE works. They can even breakpoint their code and single step through it. If they wish they have the ability to export their Scratch projects as apps for Windows, iPhones, Android devices or even XBox or other consoles.

Right now the tool is in pre-beta but I'm hoping to make it available for testing within a matter of months. An early demonstration of the tool in action can be seen at https://www.youtube.com/watch?v=nuUF9BcJT8g and I'm happy to get feedback and/or discuss the idea.

a year ago

ar9av

Scratch gets a lot of hate with semi-experienced programmers (the kind to browse this sub) because of its simplicity, but it's actually really good. It teaches you basic programming concepts without all of the complexity of other programming languages.

I remember back in school, some of the students in my computer science classes didn't understand the basic concepts of programming: variables, loops, functions, etc. and programming is 90% logic and problem-solving.

You can't teach programming by teaching the syntax of a language, you have to teach logic. If you know one language, figuring out another is going to be easy because most of the things are the same, the only difference is the syntax.

a year ago

overthrow

fyi, this comment is a copy/paste of a 4 year old comment from https://old.reddit.com/r/learnprogramming/comments/asqslg/if...

I guess HN has karma farming bots now

a year ago

dang

Thanks. Banned.

All: if you ever notice anything like this and have a minute to let us know at hn@ycombinator.com, we'd really appreciate it. I only saw this by change.

a year ago

ikesau

What a bummer. Open, anonymous, and free forums are some of the most interesting places on the internet. this profit-motivated antisocial shit makes me so sad.

edit: oh. most if not all of the comments are from reddit.

a year ago

ansible

https://lobste.rs/ has an interesting mechanism to curb bots on the platform.

To join to website, you have to get a referral from another current user. And this referral is public information. So if someone you referred starts acting like an ass, then you can expect some concern being directed your way. People are rightly a bit cautious with giving out referrals as a consequence.

The topics on lobste.rs are more focused on programming and computers (stuff you'd likely also see on HN), and there's not really any political discussion. Traffic is light, expect maybe a dozen new links per day.

This comment, by the way, does not constitute an invitation to ask me for a referral. I don't really know too well anyone on HN, other than the most famous users (none of who know who I am), so if you ask me for a referral, the answer is very likely "no".

a year ago

xupybd

The only downside is that people like myself are unlikely to know anyone who can supply an invite.

a year ago

pstorm

I'm curious, how did you figure this out? Do you search texts of random HN comments? Did you remember that comment? I see these posts on here sometimes, and just don't understand how the commenters so consistently find these types of things.

a year ago

wl

> semi-experienced programmers (the kind to browse this sub)

Is a giveaway the comment is copy/pasted from Reddit.

a year ago

raspasov

Wow.

a year ago

archgoon

<from the shadows>

Yep, as are most of the other comments.

<sinks back into the shadows>

a year ago

jackson1442

I think it's great- most of the hate probably comes from people who came into their first programming class already knowing how to code to some degree and had to "downgrade" from a traditional language to Scratch to learn along with the class.

I've been there, but there's still some cool stuff you can do when you bring in your outside programming knowledge.

a year ago

narag

Scratch gets a lot of hate with semi-experienced programmers (the kind to browse this sub) because of its simplicity...

"This sub"? Semi-experienced? Nice way to start a conversation. OK, I'll bite.

My first contact with Scratch was ten years ago when my son wanted to learn it in a workshop organized by Medialab Prado, a group funded by the city council. The wait list was already very long so, in order to cut it, I volunteered as an assistant teacher for another course.

I reviewed my son's assignment and helped him make some modifications after the classes.

I don't hate Scratch. I have a good opinion in general. But it had its shortcomings, that made easy to end up with some sort of visual spaghetti code, as soon as the project grew a little over the size of the examples. IIRC all variables were global.

My son chose a different tool for the next workshop, I don't remember the name (appstudio?), Python for the next and then Python again, but as a teacher. So good for initiation, but my impression was that not so good for bigger programs.

That might have changed, it's been a long time, but if you're curious about where criticism comes from, maybe it's not hate from semi-experienced wannabes :)

Oh and BTW, the guy that was the main teacher in my course defected in a couple of classes, so I had to take over. The children were bored with HTML and I tried introducing JavaScript. Surprisingly they understood it very quickly and liked it. Of course the group had a selection bias, people interested enough in programming to know about the course, etc. but my guess is that with some syntactic sugar and graphic libraries, it could reach a wider audience.

My two cents: every language should make super easy to draw shapes in a canvas and move them. If you need more than ten lines of boilerplate to do that, you shouldn't be designing languages.

a year ago

birdyrooster

My first CS course used Scratch to teach it and I have to say I enjoyed it a lot more than the C++ which followed and I certainly remember more from the experience. C++ was my introduction to pain.

a year ago

[deleted]
a year ago

infintesoul57

[dead]

a year ago

fleurlovin23

[dead]

a year ago

litlikeamatch

[dead]

a year ago

seekingthelight

[dead]

a year ago

secretwisher4

[dead]

a year ago

paperinas23

[dead]

a year ago

lovehunter56

[dead]

a year ago

openair754

[dead]

a year ago

foodgobblers2

[dead]

a year ago

tweetysweetie43

[dead]

a year ago

rubysunn68

[dead]

a year ago

alwaysaugust3

[dead]

a year ago

snowysecret8

[dead]

a year ago

askastylist

[dead]

a year ago

lifeonthefarm2

[dead]

a year ago

theseafiles75

[dead]

a year ago

moreplease3

[dead]

a year ago

lemonhoneypie2

[dead]

a year ago

bagatiba575

[dead]

a year ago

smashfizzle2

[dead]

a year ago

zephyr345

[dead]

a year ago

thesocialhub

[dead]

a year ago

tulipheart32

[dead]

a year ago

spellboundead5

[dead]

a year ago

fillinyourblank

[dead]

a year ago

livincool5

[dead]

a year ago

blissand234

[dead]

a year ago

mintandrose34

[dead]

a year ago

sharing_genes

[dead]

a year ago

virshereads34

[dead]

a year ago

busyreading0

[dead]

a year ago

whatsthewifi

[dead]

a year ago

allthatisme1

[dead]

a year ago

powerpuff3

[dead]

a year ago

lavenderwitch

[dead]

a year ago

myinstaspace

[dead]

a year ago

velvetandlinen

[dead]

a year ago

curiouscat22

[dead]

a year ago

behindmylens1

[dead]

a year ago

thriftandflip2

[dead]

a year ago

alwaysaugst2

[dead]

a year ago

thecheeseclub

[dead]

a year ago

angeliccutie23

[dead]

a year ago

magicalworld13

[dead]

a year ago

rowiethelabel

[dead]

a year ago

E20life

[dead]

a year ago

theveganwarrior

[dead]

a year ago

petiue456

[dead]

a year ago

iblamejordan75

[dead]

a year ago

askastylist34

[dead]

a year ago

morelight33

[dead]

a year ago

ivoryroses

[dead]

a year ago

stellarflower

[dead]

a year ago

indigosparkle

[dead]

a year ago

contemplatter

[flagged]

a year ago

gs17

Because they're doing this for fun. A lot of kids genuinely enjoy the process of making games.

a year ago

pavlov

Why spend money on expensive Legos when you can buy any imaginable plastic toy for cheaper on AliExpress?

a year ago

khochesh_kushat

I suspect even with AIs certain kinds of people will still enjoy creating by hand. Certain kinds of people won't, of course, and that's ok.

a year ago

patchymcnoodles

Why learning anything, if we have GPT-4? Why even commenting here, GPT-4 could do that, too ;).

a year ago

bighoki2885000

[flagged]

a year ago

bighoki2885000

[flagged]

a year ago