I recently tried to formulate some design principles and ideas for a computing and programming system.
Here they are:
1/9
Here they are:
1/9
Meaning over Mechanism
Computers are mechanisms that serve human needs and human values. Any distortion of expression of meaning required fit the mechanism is a shortcoming. (Note: Distortion is different from precision)
2/
Computers are mechanisms that serve human needs and human values. Any distortion of expression of meaning required fit the mechanism is a shortcoming. (Note: Distortion is different from precision)
2/
Cognitive Sympathy
The mental models required to use the machine fit common cognitive abilities: not having to juggle too many things in your mind, mapping to common metaphors, transparency and visualizations to aid comprehension.
3/
The mental models required to use the machine fit common cognitive abilities: not having to juggle too many things in your mind, mapping to common metaphors, transparency and visualizations to aid comprehension.
3/
Human Design, Machine Rigor
(Not the other way around)
Since the machine can simulate itself very well, we don& #39;t need to mentally simulate the machine. (What do we do when we read code?) We supply the ideas and queries (precise enough form) and the machine supplies rigor.
4/
(Not the other way around)
Since the machine can simulate itself very well, we don& #39;t need to mentally simulate the machine. (What do we do when we read code?) We supply the ideas and queries (precise enough form) and the machine supplies rigor.
4/
Pervasive Provenance
I can & #39;inspect element& #39; almost anywhere and follow the chain of provenance - how the thing was constructed - for anything I see. There are multiple aspects (version history, execution trace, ...) and I can follow any path.
5/
I can & #39;inspect element& #39; almost anywhere and follow the chain of provenance - how the thing was constructed - for anything I see. There are multiple aspects (version history, execution trace, ...) and I can follow any path.
5/
Permeable Layers
It is possible to see under/below any layer of abstraction, in a safe manner, and see how the inside/lower corresponds to the outside/upper.
6/
It is possible to see under/below any layer of abstraction, in a safe manner, and see how the inside/lower corresponds to the outside/upper.
6/
Seamless Composition
When I compose any object A with another object B in my system, the only thing that matters is the highest level meaning encoded in these objects. The lower level data formats are irrelevant, adapters materialize as necessary.
7/
When I compose any object A with another object B in my system, the only thing that matters is the highest level meaning encoded in these objects. The lower level data formats are irrelevant, adapters materialize as necessary.
7/