I hesitated to talk about this point, because I didn’t want to get too off topic, but it does tie in with your point.
Macros in QC were great, and I think that in earlier thoughts about the VUO system and the problems of QC, that the judgement that macros are wonky was not well considered in context of the workflow benefits. I think the macro-esque implementation of an iterator was very handy from a workflow perspective.
Relatedly, If I am stringing together a multistage fluid simulation in VUO, and I’m trying to do it with either the ShaderToy node, or the GLSL node from parabox, it is astounding how many nodes have to be laid out on just one level of a composition. For me, it becomes difficult to actually make the compositions, without being able to section stuff away in a Macro.
Think about if you had a Render in Image patch in QC, a GLSL shader, a grid, and then need to feed it with typical values. You’ll soon have all of that stuff that would be inside the Render In Image patch in QC, all on one level. You’ll also have a bunch of extra “build point” type stuff, more than likely.
So it was GREAT to see that subcompositions work the way they do, but it’s pretty hard to work that way because the debugging gets difficult. If only one could just “click” and get into it, the way that macros worked.
I often find myself almost having to lay things out in QC first, because if I didn’t, it would be impossible to get the composition worked out to start with, between debugging shaders without code highlighting for errors, and without macros.
Come to think of it, since I updated to High Sierra, specific shader bugs no longer even print to Console. It just gives a sort of generic line that references VUO, without the info it used to give.