The Cognitive Dimensions of Notation framework describes trade-offs in programming language design using named dimensions
Blackwell & Green’s CDN framework provides a vocabulary for analysing programming notations without prescribing a single best design. Dimensions include viscosity (resistance to change), closeness of mapping (fit between notation and target domain), progressive evaluation (can you see results incrementally?), visibility, role-expressiveness, error-proneness, secondary notation, and others. Dimensions trade off against each other: increasing secondary notation flexibility typically increases viscosity. CDN is not a checklist — a dimension desirable in one context may be undesirable in another. McLean applies CDN to live coding, finding live coding high on progressive evaluation but low on closeness of mapping and visibility.
Examples
Increasing indentation rules: viscosity up, comprehension up. Tidal: high progressive evaluation but low closeness of mapping for untrained audiences. Texture visual language: high visibility, high closeness of mapping but more constrained abstraction.
Assessment
Apply three CDN dimensions to Strudel and three to a hypothetical visual live coding language. For each dimension identify one unavoidable trade-off it creates.