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)
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
> 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.
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
It also has event-based concurrency.