@opeispo i think you’re right about it getting out of hand if the system isn’t carefully designed. there are a few ways to combine things that might make such a system more robust to change. For example, in the case of a data structure, if you have visual primitives that match your data primitives, you could potentially combine those visual primitives in the same way you combine the semantic primitives. i think it’d also be important to start with something smaller than, say, java.
At a minimum, we’re doing our best to keep all this complexity in our heads using naming things for our existing systems, which work ok (for a sufficiently cynical definition of “ok”)
On the other hand, we track a lot of visual primitives in everyday life. In the common case with languages like english that are made up of letters, cognitive studies show that we tend to read words sort of like individual gylphs (wihch is why you can raed wrods werhe the ltetrs are jmuebld according to Many Memes). and with experts using systems, like airline pilots, mathematicians, and carpenters, people seem to have a facility for remembering thousands of things provided that they have a context where theyre using them often. Or even in games—for example, most hearthstone players have all of the cards and their effects memorized by picture just as a side effect of playing the game. more so for magic the gathering, where the smallest set of allowed cards for tournament play is usually around 2,700