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