- 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.
The Coding Train on youtube (run by Daniel Shiffman) (https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw) has some great tutorials.
More embedded orientated but still an interesting idea.
The Coding Train on youtube (run by Daniel Shiffman) (https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw) has some great tutorials.
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
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.
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
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
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.
But it's tricky!
For architecture/design students, Grasshopper is usual their first introduction to programming and algorithmic thinking, and many students become fantastic programmers by extension.
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.
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
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.