goboscript allows you to create advanced Scratch projects with ease, you can use any text editor, use a version control system such as git. You can refactor your code using search and replace. Text code can be copy pasted, which allows you to easily reuse code or share it with others. goboscript syntax is concise and easy to read.
goboscript allows you to integrate external tooling and workflows, such as using a script to generate costumes for a text rendering engine. Or loading in images into lists.
goboscript has a powerful macro system - similar to Rust's macro system. This allows you to write macros to generate code.
goboscript is more than just an 1:1 mapping of Scratch blocks to text, it also has additional features like local variables for procedures (custom blocks).
goboscript also performs optimizations, detects problems and unused code.
All of these new features are impossible in the visual programming paradigm.
> All of these new features are impossible in the visual programming paradigm.
I believe that to be not true. Visual paradigm allows for some interesting behaviours.
1. Integrate external tooling and workflows
This is just the result of the Scratch runtime being in the browser.
2. Macros
Okay, macros might seem very difficult in a visual paradigm, but its possible. And, in a visual paradigm, it would be very easy to visualize how macros transform the code. (You could have a pop-up that shows the expanded form of the macro)
3. Optimizations: Turbowarp is a Scratch mod that does JIT compilation with optimizations.
> All of these new features are impossible in the visual programming paradigm.
This is false. The logic is simple to see why. Text is limited to alpha numeric characters restricted in a format that’s from left to right lines. It’s a very arbitrarily specific way to represent a “program”
In fact text is in itself a visual program. It’s one set of arbitrary rules as outlined above on how to represent a concept visually.
Thus there are definitely ways to represent a program with different rules with more dimensions and much less restrictions.
I don’t know how people get in there heads that in visual programming things are “impossible.” Like it’s not even a subjective thing, it’s definitively wrong.