Functionalism, aesthetics Was:(RE: I come to praise .join, not

Dave Kuhlman dkuhlman at rexx.com
Tue Mar 20 18:49:42 EST 2001


Carlos Ribeiro <carribeiro at yahoo.com> wrote:
> 
> 

[snip]

> 
> To summarize it: a  *technically* optimal solution for a problem is not 
> always the *best* solution. If it does not look intuitively good for most 
> users, its probably a bad solution.
> 
> Its unfortunate that in many cases the non-expert user keeps quiet, 
> assuming that whatever opinion the "master" haves, its going to be better 
> than theirs - after all they are the so-called experts.
> 
> Carlos Ribeiro
> 



It is very hard to predict the consequences of design changes to
complex things. Python is mature in the sense that it has learned
from these previous mistakes, rather than having to learn from
making them itself.

I believe that a study of the REXX programming languages might be
instructive here.  See:

    The REXX Language:A Practical Approach to Programming
    Michael Cowlishaw 

Cowlishaw claims in the first few chapters that the early design of
REXX was done by users and that many of these users were not
programmers.  I think it shows.  Concepts that we take for granted
were unknown, apparently to these users.  For example, parameters
are passed to functions as a string that must be parsed; functions
cannot be called recursively without tricks to "stack" parameters.

I'm sure that it has been said before on this newsgroup:
Programming language design is very hard.  Making something simple,
without losing power, is very hard.  People have worked very hard
on the design of Python, and it shows. On a graph that plots the
simplicity against the power of programming languages, Python is in
the upper right hand corner.

Users of Python are programmers.  They may even be, like me, users 
of a number of programming languages.  They might have, as I do, 
lots to say about features that they like and dislike and that are 
or are not it this or that language, *without* being experts on 
programming language *design*.  Asking *these* (programmer) users 
about language features is quite a bit different from asking non-
programmers.

[Don Cave says:]
> Anyway, as long as we're talking about things that we spend our
> days doing, we certainly do have the capacity for sound judgement.
> It doesn't mean our judgement is therefore infallibly sound, but
> the collective judgement of an established culture brings a kind
> of sense to bear that can dwarf a brilliant appeal to abstract
> principles.

I'd add that it can also dwarf the intuitions of non-users and non-
experts.  Non-users often favor things which, with a little 
experience and education, they would regret.

Designing a programming language for non-programmers (and their
intuitions) is as foolish as designing a house for cave-dwellers. 
Someone who has only lived in a cave has not learned what is
necessary in order to appreciate good house design.  (Hint: they
may not know what a bathroom is.) Since we have so few cave
dwellers among us, we sometimes forget this.  (But just in case I'm
about to be ripped for being politically uncorrect about cave
dwellers, ... Some of my best friends are cave dwellers. Cave
dwellers are as a group as smart and as good looking as non-cave
dwellers.  Etc.)

  - Dave

-- 
Dave Kuhlman
dkuhlman at rexx.com



More information about the Python-list mailing list