www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - affordance


Just discovered this term by following links related to Donald Norman (evoked 
in previous thread). Especially like the definition "indicating the easy 
discoverability of possible actions".

I think this could (should?) be a core design principle of every programming 
language (it is highly valued in my design process, just did not know the 
term). Even more a std lib, don't you think? Meaningful naming, general 
consistency, sensible organisation have central roles, there, I guess.

A key point is defining the target public: high level of affordance does not 
mean the same thing, does not impose the same set of constraints & guidelines, 
if one expects most users to come from C++, and only wants to target them; or 
instead one has in mind people with primary functional background ; or if one 
wishes to welcome amateurs, possibly even novice programmers; etc.
To which point can one balance differing requirements for various targets? or 
various levels of targets (eg experience in programming)? Are there 
"paradoxical constraints", really unconciliable? As an example, I think more & 
more that prog lang qualities valuable to welcome newcomers, or pegagogical 
ones (clarity, consistency, simplicity) are not, logically & concretely, 
contradictory to features of productivity demanded by experienced or 
professional programmers; rather the opposite: what is good for newbies tends 
to also be helpful to experts. A clearer language supports higher quality code, 
as a general trend, whoever the author is.

vita es estrany
Feb 12 2011