I've always been weirded out by these "programming by connecting boxes" environments. In my experience, the only benefit they bring is removing the need to understand the syntax, which is the simplest part of programming, at the cost of making it much more complicated to find out the boxes, figure out what can connect where, looking up documentation, etc.
Interestingly, I don't get this feeling with Snap! or Scratch. Sure, they're not designed for me, but they're intuitive, and they just work.
Not sure where the disconnect lies. Quite possibly in my brain.
Maybe one advantage is there aren’t things like syntax errors to deal with, or naming things. The structure makes things purely functional and allows for multiple outputs from a block as well as optional inputs. Seems to me that it removes a lot of the incidental complexity in writing shaders (syntax, linear structure, specifying inputs, imperative shader language, etc)
> In my experience, the only benefit they bring is removing the need to understand the syntax
It also offers better discovery—an additional major barrier if you aren't used to fighting documentation.
In my experience, the discovery is much worse, because now, I need to look at all the menus (or tabs, etc.), which makes me see many terms I don't understand, instead of being able to simply search in the documentation.
I've had the same experience with the Unreal IDE, for instance, vs. Bevy (or Pygame, etc.)
But yeah, you may be right that for people not used to documentation, this might be less bad.
Speaking of Apple platforms, yeah, this was my big problem with Interface Builder. I couldn’t get anywhere with serious Apple platforms development until SwiftUI came along.