On 15 Jan 2006, at 12:41, Dennis Leeuw wrote:
Richard Frith-Macdonald wrote:
Apparently even microsoft have partially recognised this ... I
recently followed a link to a news item about their latest release
of 'office' in which it was said they did lot's of market
research to find out what new features people would like ... and
found that over 90% of the requested features were already in the
software.
The conclusion they drew from this was that they needed a new,
context sensitive, user interface design to allow people to find
features more easily. I think they only got that partially
right ... things like ms-office (and now open-office) are
horribly bloated and need to be broken up and modularised,
improving the gui is a good step, but it's not enough. A lot of
stuff should be completely removed from core applications and
some sort of 'howto' tool should be devised to use AI principles
to help people find the right tool for the job. Having a context
sensitive gui within a single tool is a mistake ... we are much
better at handling consistent interfaces rather than dynamically
changing user interfaces, so if we are going to have to switch to
handle a new task we want a radical ui change so we *know* we are
handling a new task, and while we are operating within one tool
we do not want the user interface changing.
This sounds a lot like the KISS principle. Small apps that do one
thing right, and other apps for other tasks.
But just to get my mind straight. Let's assume the famous Office
discussion, and let us make it even more simpel and only use the
document creation part. I think one thing that GNUstep handles
right is color and font management. It opens a panel, which is a
"standalone" object (or app if your prefer) that deals exclusively
with the task it was designed for.
Do you mean this kind of design when you talk about bundles and a
modularised design?
Sort of ... I don't want to get too specific because I don't thing
one particular technique fits all cases, but I guess I'm really
talking about object oriented design philosophy being extended to
different aspects of the software design, not just to the coding/
language. That means grouping closely associated things together
into a unit which can be easily managed, hiding the contents/internal
details, presenting a simple/flexible interface to the outside world,
and making it easily reusable/extensible.
In coding that's a class, in program architecture it might be a
loadable bundle which provides a panel to control its actions as you
suggest, or a standalone application offering services to (and DnD
integration with) other applications.
In NeXTstep, a couple of good examples of the loadable bundles might
be the palettes in InterfaceBuilder and the modules in the
Preferences application.
What I was getting at beyond that, was the fact that with all their
bloat in a single app, microsoft have the problem that people don't
know about/can't find functionality they want even though it's
already there.
I think simple, moduler, object oriented design will help (certainly
with making specific tools user friendly) ... but I don't think it
will solve the larger problem of finding the right tool for the job,
and I don't think either problem can be solved with context sensitive
UI changes. My guess is we need some mechanism for people to easily
find out how to do things and which tools are appropriate for a
job ... perhaps a task search engine analagous to google. ie where
users say what works for them and the most frequently used solutions
are rated highest and found first.
For instance, off the top of my head, a p2p network to hold a
distributed database of information, and a standard panel in gnustep
applications to search for solutions to a task, and to enter
information about how problems have been solved with what tools etc.
_______________________________________________
Discuss-gnustep mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/discuss-gnustep