Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.




[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


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!


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.


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


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.


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 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.


Microsoft MakeCode supports a similar editing experience.


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


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.


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


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/)


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


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.


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



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


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


my kids really like CodeCombat

https://codecombat.com/


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.


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


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.


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


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


What about netlogo?




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: