Why do we use text to specify programs? Why not some other interface/data structure?
Why do we use text to write papers or blog posts? Why not some other interface/data structure?
The key relevant property of “text”, here, is the serial format—i.e. it’s naturally represented as a list of characters, one after another, as opposed to e.g. a tree or DAG or graph or photo or something more unusual. (Presumably the serial structure of text is itself inherited from the serial structure of speech.)
For all these questions, it indeed seems that some better interface/data structure should exist. The problem is that people trying to take on this sort of project usually just pick some obvious data structure (like e.g. a tree of claims and subclaims, in the case of argument management), without carefully examining the structure of both the visible content and peoples’ thoughts in the domain, figuring out what data structure naturally fits that content/thoughts, experimenting and iterating on the data structure choice, etc. And then we end up with an interface/data structure which still needs about as much shoehorning as text in order to express what we want, but users have to relearn how to use it. Whereas a “natural” data structure would, ideally, support all the things people want in fairly obvious and intuitive ways.
I view this question in the same cluster as:
Why do we use text to specify programs? Why not some other interface/data structure?
Why do we use text to write papers or blog posts? Why not some other interface/data structure?
The key relevant property of “text”, here, is the serial format—i.e. it’s naturally represented as a list of characters, one after another, as opposed to e.g. a tree or DAG or graph or photo or something more unusual. (Presumably the serial structure of text is itself inherited from the serial structure of speech.)
For all these questions, it indeed seems that some better interface/data structure should exist. The problem is that people trying to take on this sort of project usually just pick some obvious data structure (like e.g. a tree of claims and subclaims, in the case of argument management), without carefully examining the structure of both the visible content and peoples’ thoughts in the domain, figuring out what data structure naturally fits that content/thoughts, experimenting and iterating on the data structure choice, etc. And then we end up with an interface/data structure which still needs about as much shoehorning as text in order to express what we want, but users have to relearn how to use it. Whereas a “natural” data structure would, ideally, support all the things people want in fairly obvious and intuitive ways.