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