[A] program written as lines of codes is uni-dimensional, and even the best of us may find it difficult to sort out [...] how distant parts of the code interact together.
That would only be a problem if you could only refer to things by line number. When I call doTheWatoosi(), it doesn’t matter much if it’s the next function down or something defined in another program completely. It’s the symbol names that tell us about the interaction, not the locations of stuff in the file.
And, the space of possible names has many many dimensions, which actually gives it quite a leg up over visual languages which have 3 at best, and probably actually only 2 if they want to have a decent user interface.
Which of course doesn’t address the very real issue you raise: that text is much more opaque to beginners than visuals. But I am very skeptical of the notion that a visual programming language would be of much help to programmers who are already strong.
You could easily have “dimensional sliders” so you can move back and forth in 4 or 5 (etc.) dimensions. Not that this would make the user interface clearer, or the programming language more intuitive.
That would only be a problem if you could only refer to things by line number. When I call doTheWatoosi(), it doesn’t matter much if it’s the next function down or something defined in another program completely. It’s the symbol names that tell us about the interaction, not the locations of stuff in the file.
And, the space of possible names has many many dimensions, which actually gives it quite a leg up over visual languages which have 3 at best, and probably actually only 2 if they want to have a decent user interface.
Which of course doesn’t address the very real issue you raise: that text is much more opaque to beginners than visuals. But I am very skeptical of the notion that a visual programming language would be of much help to programmers who are already strong.
You could easily have “dimensional sliders” so you can move back and forth in 4 or 5 (etc.) dimensions. Not that this would make the user interface clearer, or the programming language more intuitive.