3 ms·
Text is good, but not for everything. How would you represent a tree or graph data structure in text to a human and let them manipulate it? I understand that t
by striking 11y ago
Text is good, but not for everything. How would you represent a tree or graph data structure in text to a human and let them manipulate it?
I understand that this works for some things. A command-line interface is good for giving commands! Yet using it to paint is a lot harder.
Essentially, text interfaces are good at manipulating text. As a software developer you're often manipulating only text. So you think text interfaces are good, always. This is a syllogistic fallacy.
- jameshart 11y agoAs a software developer, you're actually manipulating abstract concepts about the future movement of data over time. The best way we've come up to do that is to describe those concepts using textual languages, and then build ourselves tools for manipulating text in the belief that that gets us closer to manipulating those concepts. This has the effect that we actively reject some really good tools as being 'unsuitable for programming' because they are hard to work with with our text based tools. I think there's a lesson in both directions here: the fact that often the kinds of tools software developers use could actually be of use in some other domain (lawyers could get a lot of benefit out of distributed version control and markup languages, for example), but also software developers can sometimes get caught up in text editors and command lines and forget that sometimes a nice graphical visualization or interaction is really helpful.
- wtbob 11y ago> How would you represent a tree or graph data structure in text to a human and let them manipulate it? Tree: '(root (left (left-left left-right)) (right (right-left right-right))) Graph: '(graph (#1=node1 #2=node2) (#2# #3=node3) (#3# #1#)) Solved problems since at least the early 90s. > Yet using it to paint is a lot harder. Sure, but drawing is only one activity among many possible activities. > As a software developer you're often manipulating only text. I think that's true for most users: they are reading articles (text); writing comments (text); sending social updates (rich text); watching videos (not text); playing games (not text, but may have textual content, e.g. in-game chat).
- swhipple 11y agoI'm not really convinced S-exprs are particularly good examples of representing trees and graphs to humans while expecting them to be as easily readable and writable as the graphical forms. You lose spatial intuition with this representation. You could make up for it on small trees somewhat with indentation and vertical spacing, but you'd lose it again for larger trees and graphs. We don't pictorially represent our trees like this [1], for instance, which is roughly how the S-exprs visually appear. When I author graphs in LaTeX, it is often easier to run through a compilation cycle to see what the result looks like and which edits are needed, rather than mentally reasoning about the edges by looking at the code. [1] http://i.imgur.com/43Dc8YB.png http://i.imgur.com/43Dc8YB.png