While none of us were paying attention, Scratch has transformed from a programming language for kids to a massive online community of self-guided, student-programmers. Usage has doubled since the pandemic started and the language is now overtaking “real” programming languages (like Typescript and Rust) in language popularity rankings.
Scratch is a big deal.
If you’ve heard of Scratch, you likely know that it’s a programming language for kids that uses visual blocks like these:
Like many pandemic parents, I recently introduced it to my kids. Over time, it started to catch hold and I realized that there was more beneath the surface. I decided to take a closer look and this is what I found.
More than a programming language
Scratch is an online programming environment, hosted at scratch.mit.edu. It uses a visual editor that looks like this:
The language and editor are tailored towards making games, animations, stories, and other visual things. Scratch users (Scratchers) can create and save projects to their account and share their projects publicly.
Sharing projects is where things get interesting. Scratch isn’t just a language—it’s a community.
The Scratch website makes it easy to browse other people’s projects, “love” and “favorite” them, add comments, view source, and remix them as your own. You can follow other users and work together to curate collections of projects called “studios” (which can also be followed and commented on).
In this way, it’s kind of like Github or Codepen, except that Scratch is for kids. The age distribution of new Scratchers peaks at 12, with the majority under 16:
It was the community aspects that really drew in my kids. They would get really excited whenever somebody followed them or “loved” one of their projects. It gave them the motivation to build more ambitious things.
It’s pretty impressive how ambitious the projects get. Scratchers often build copycats of “real” games like Cut the Rope, Super Mario Bros, and Terraria. Features like cloud variables allow them to make online multiplayer games, like Taco Burp (popular in my house):
Someone even built Scratch inside of Scratch 😱
Seeing projects like these was a “wow” moment for me. Scratchers were building projects that rivaled the best things I had seen on Codepen. All in a visual programming language for kids!
Beyond the editor, there are a bunch of other resources that help kids be productive:
- The Scratch website provides tutorials, a wiki, and discussion forums that kids often use to ask questions and help each other when they get stuck.
- The REST APIs enable third-party tooling like Turbowarp—a parallel site that can run Scratch projects 20x faster.
- The Scratch desktop application lets you develop Scratch projects offline.
- The ScratchJr tablet app provides a simplified version of the Scratch editor for young children (ages 5-7).
So, no, Scratch isn’t just a programming language. It’s an ecosystem of apps, resources, and community features for giving kids a positive first experience with programming. And it’s downright impressive.
Scratch at scale
Like many online activities, Scratch usage grew during the pandemic, but unlike others, it’s not slowing down:
This recent growth has caused Scratch to break into the Tiobe index's top 20 most popular programming languages. At the time of this post (July 2022) it ranks 21st, above Typescript, Rust, Julia, and other important languages. The Tiobe index is imperfect but there's clearly something happening here.
With this new popularity, Scratchers like Griffpatch, Will_Wam, and others have become mini-celebrities, collecting hundreds of thousands of followers on scratch.mit.edu and other platforms (Griffpatch has 175k+ subscribers on his Youtube channel where he posts Scratch tutorials on gamedev topics like background-scrolling and raycasting).
Why (I think) it works
Scratch has a lot of good things going for it.
It’s free (thanks to the Scratch Foundation) and the tutorials provide a gentle on-ramp, making it easy to adopt in school and at home.
The platform has strong community guidelines and it’s well moderated (at least my family hasn’t run into any sketchy content yet).
Most importantly, browsing projects shows you what’s possible. A kid begins by playing games, starts to get curious, and next thing you know, they’re changing the code to give themselves extra lives.
This didn’t come out of nowhere. It’s the realization of over 50 years of effort from programmers and educators, standing on the shoulders of giants like Logo and LEGO Mindstorms. Look up constructionism if you’re curious!
If you care about programming education and you’re looking for a good cause to donate to, I think you’d be hard-pressed to find something better.
And if you know someone young who’s interested in programming, tell them about Scratch. Let them play user-created games for awhile. The source code is just a single click away.