Hello,

http://en.wikipedia.org/wiki/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.

Denis
--
_________________
vita es estrany
spir.wikidot.com

Reply via email to