There are conventions and metaphors of human computer interfaces.
Apple used to provide interactive training programs to explain the use
of a mouse to customers in stores. My own father who is a brilliant
scientist could not initially master double-click and fifteen years
later frequently double clicks when a single click is adequate. To
follow up on the theme of the first post, the Attitude Direction
Indicator (ADI) is a critical cockpit instrument that is absolutely
obvious and second nature to a pilot, but most people off the street
would need an explanation to understand its use.
The point is that we are not born knowing how to interact with
computers. We are trained, and sometimes the training is so thorough
and internalized that later we can't imagine any other way to
interact. It is also clear that there have been both evolutionary
and revolutionary changes to HCI. The acceptance of changes depends
on how easy it is for humans to fit the changes into existing
metaphors and/or adopt new metaphors and/o perceive the improvement if
any that change may provide. I remember the time when existing
command line users and even DOS junkies could not understand why
anyone would want to use a mouse. They could not perceive any
advantage to a mouse, and their internalized metaphors for interfacing
with computers did not include graphical user interfaces. Many others
could not understand why anyone would use a command line interface.
Now relate this to Cocoa. Smalltalk stepped into a vacuum in the
early 1970s and invented a whole new set of metaphors for
programming. Smalltalk's metaphors started with object oriented
programming but included Model-View-Controller and many of the object
oriented patterns such as decorators, composition, and hierarchies,
that we still use and document today. Objective-C mixes Smalltalk
with C, and Cocoa/NeXTstep started by incorporating many of the
venerable Smalltalk metaphors and patterns. Cocoa did not stand
still. There have been refinements and adaptations to accommodate and
exploit the C side of Objective-C too.
If you, the programmer, are unfamiliar with the metaphors used by
Cocoa, you are a bit like the DOS junkie who can't understand the
point of a GUI. In some respects, the more invested and internalized
you are with other metaphors, the harder it is for you to accept
Cocoa. Take heart. There aren't many DOS junkies left. For an
interesting but probably irrelevant parallel, it took from about 1984
when the Mac was released to about 1993 when the general public
started using GUIs. There is a correlation to the fact that it took
from about 1997 when Apple started selling Cocoa technology to 2006 or
so when Apple's developers embraced it. The GUI pre-existed the Mac
by 8 years or so. NeXTstep pre-existed Cocoa by about 8 years or so.
Cocoa is the most consistent, elegant, and productive software
development technology I have ever used, and I have used a lot. Cocoa
uses key metaphors and design patterns ubiquitously. If the
programmer is either unaware of the metaphors or does not see their
utility, it will be difficult to use Cocoa. If a programmer fails to
grasp a particular pattern, the whole framework may be
incomprehensible because the pattern is most likely used throughout.
The attributes of Cocoa that make it so consistent and elegant are
exactly the same attributes that I think newbies are complaining
about. The newbie complains that the reference documentation mentions
delegates or tags or data sources or the responder chain or key value
coding or bindings or targets or actions etc. without defining them.
This is exactly like a newbie complaining that clicking and dragging
and selecting and double clicking are used throughout a GUI but not
explained in the documentation for every application. Once the GUI
metaphors are internalized, it is unnecessary at best and annoying at
worst to keep encountering mouse based selection explained in every
user's guide. The consistent application of the metaphors makes the
GUI easy to use. The consistent use of metaphors makes Cocoa easy to
program. BUT YOU MUST UNDERSTAND THE METAPHORS FIRST in both cases.
_______________________________________________
Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [EMAIL PROTECTED]