Hallo, Chuckk Hubbard hat gesagt: // Chuckk Hubbard wrote:
From the point of view of the compiler, perhaps, but I think most
programmers are very concerned with vertical arrangement, in the sense of how they think, no? A .c file with line breaks removed looks like gibberish to a human, though it may compile fine.
Well, a novel also is hard to read it it would just have one loooooong line on one page. But it would have the same meaning. In fact, I think, in the old times "books" even were just one looooooooooong page.
But it's different, if spatial layout is tied to the meaning of a text. Comic books are an example: Here spatial arrangement (like order and size of panels) is an important tool to express different meanings. In programming, a spreadsheet application would be an example for a tool, where spatial arrangements may carry meaning.
The fact that even with inherently 1-dimensional languages humans tend to organize the words neatly on the page by properly indenting logical blocks etc. although technically it wouldn't matter, is a hint, that thinking about algorithms,... may work better in two dimensions. Sutherland's thesis has some more things to say about this issue, IIRC.
Sutherland's main focus is discussing how to make a computer understand spatial meaning, and some issues with that. In Pd the actual spatial layout, as Matju wrote, is not important. What's important are the connection cords. They define the meaning. But it would be possible to just take distance as defining meaning. IIRC Guenther Geiger developed a dataflow music language which gets rid of patch cords and just uses distance and size of objects to convey meaning. The reacTable uses a similar idea: Just bring two objects close to each other, and they magically get connected. Pd here is in the middle: Distance doesn't matter technically, but to the Pd programmer managing spatial layout is as important as indenting is to the 1-dim programmer as far as readability is concerned.
(Personally I'm quite sensitive in this regard and for example I try to avoid using abstractions, that *look* messy, have to many crossing wires and are generally carelessly laid out. It's hard to read such patches so it's more likely that they contain bugs. I won't point fingers, as many of my older patches are like this as well [don't look into originator.pd].)
In either text-based or dataflow languages, actual program flow can vary, whatever the order of elements, so methinks there is always some kind of temporal and conditional thought going on. If time is another dimension, then perhaps the debate is 2 vs. 3 dimensions?
Actually especially for music, (real) time is a very important dimension, maybe the single most important one, and logical time is important in every program. The generally right-to-left execution order of in/outlets expresses a notion of logical time in patch space. By putting objects, that act at the same time, next to each other, or objects, that act after each other, in different rows/colums one can express some time relationships manually as well.
Frank Barknecht _ ______footils.org__