To get best results, the structure of the notation and the type of question had to match. Exactly the same was true of both the visual and the textual languages. Forwards questions were better than backwards for one kind of structure, but it was the other way round for a different kind of structure. Evidently, what matters is not anything as crude as 'visual or textual', but instead, the information structure. It seems that the dominant feature that determines whether it is easy to reason about a program may be the structure of the information, rather than whether it is presented visually or textually.
Visual languages encourage certain types of structuring, so they are good for certain purposes.
Spatial relationships can support useful mental representations Under favourable conditions, representations allow their components to be laid out in ways that capture aspects of the problem domain. Green and Petre call this secondary notation. The spreadsheet is an excellent example, in which real life users take advantage of the layout possibilities. Ironically enough, visual programming languages are sometimes very poor at supporting secondary notation. Accessibility of related information Related pieces of information need to be juxtaposable, so they can be viewed side by side for comparison and contrast.