The proceeding discussions have revealed that there is considerable
disagreement as to exactly what end-user programming is about.
To summarize the different views:
1. EUP is about programming tools for people who do not have conventional
programming skills. It is the equivalent of DIY, not house construction.
The applications to be addressed are simple, and if EUP doesn't work,
people will go back to doing it by hand. The tools developed to address
this goal shade over into intelligent assistants.
2. EUP is about programming as personal problem solving. The key
element here is that the solutions are not intended to be widely
shared. The complexity is limited only by the programming skill of the
practitioner. It is the ultimate in "programming in the small" since
issues of understanding who the users are, partitioning the system for
work by a team, writing help systems, etc. don't enter into the picture.
It is like hobby wood working; the skill and effort to build the product
may even exceed commercial efforts.
3. EUP is about light weight, "quick and dirty" problem solving.
Knowledge of conventional programming languages doesn't matter; even when
the practitioner possesses considerable skill in conventional programming
tools, they may choose not to use them because of the overhead associated
with them. A really interesting question here is what determines the
choice and combination of tools.
Most of the published literature seems to focus on (1); this seems to me
a misplaced stress. The problem with this sort of EUP is that it is a
vanishing target; any time there is a customization that many people want
to be able to do to a piece of software, it tends to move into the options
for the software or to give rise to a new piece of software that focuses
on that task. (2) and (3) seem to present more enduring challenges.
Ruven Brooks