Re: Cocoa et al as HCI usability problem
Re: Cocoa et al as HCI usability problem
- Subject: Re: Cocoa et al as HCI usability problem
- From: Julius Guzy <email@hidden>
- Date: Mon, 19 May 2008 01:41:55 +0100
On 18 May 2008, at 14:36, Jason Stephenson wrote:
(Have you ever tried programming X11 with just XLib C calls? Nasty
stuff that....)
Yes,
superDooperExtraSpecialHighIntensityOpenWindowAndDoLotsOfWonderfulThings
IfYouSetTheParametersRightWidget.
Also, please don't confuse the language, Objective-C in this case,
with the frameworks/system interface. Objective-C is a very small
language, and it is easy to keep the main things in mind. PL/1 is
another matter altogether.... (So is C++ if you think about it.)
I don't think I mentioned Objective C in that missive.
Cocoa is much larger, but the same could be said of C and XLib
respectively. Not to mention that on X you have many different GUI
toolkits to choose from to abstract away the complexity of XLib:
Xt, Qt, Tk, XAW, Motif, GNUStep, Gnome, KDE, etc., etc.
Modern computer systems are complex. There are many, many options
of the programmer. If modern computer systems lacked this
complexity, and if the published interfaces did not have APIs
available so that programmers could make adequate use of this
complexity, then we'd be stuck where we were in the early '80s,
having to roll our own library for everything.
I don't think you can expect to lose the learning curve in any
programming interface. APIs expose complexity, and at the same
time, cover it up. Imagine if you had to implement your own Model-
View-Controller paradigm for your GUI widgets before you could
start making your own applications? That is the situation that
you'd be in with something like XLib, or even the old Macintosh
Toolbox. Today, that complexity is abstracted away rather neatly by
the Cocoa framework, just as it would be on X if you used Motif or
Qt or some other toolkit.
It has been true for quire a long time now that learning a computer
language is child's play compared with learning the api and how to
use it. And modern systems are more complex and at the same time
conceptually a lot simpler than earlier systems would be if they had
tried to do the same job.
If you do want to just jump in and start writing code, then perhaps
you should look into Python or some other "scripting" language.
They do an even better job of hiding the complexity.
As yet I have not worked with Python but I am familiar with PHP and
especially Perl
I am also familiar with c, java, prolog, pascal, .......
From that point of view my favourite programm of all time was
Hypercard untill Apple started making it fancy and finally destroyed
it by selling it to people who had no idea of the amazing things one
could so quickly prototype in it.
I also don't find any great difficulty in using Apple's
documentation. The conceptual documents cover the concepts, and the
reference documentation serves as a reference. No, I don't think
you should learn to use Cocoa just from the conceptual documents,
but I'm sure it is possible.
well this is precisely the point I made, that the debate has been
polarising between those who find the documentation adequate if not
best ever and people like myself who despite their best efforts have
so far found it an uphill struggle.
The simple fact of the matter is that documentation, just like a
GUI, cannot be all things to all people. Programmers and those
interested in programming are a particularly eclectic bunch. We
each come at Cocoa for the first time with different experience,
different reference points, and different expectations. One set of
documentation cannot be expected to handle all of the possible
permutations of programmer knowledge and experience. For this
reason, other books exist written by third parties to cover those
gaps or target different audiences.
Precisely. In my view the documentation is by and large a very good
list of what is to be found and its components and how it relates to
other components and subsystems. And I think that an awful lot of
care has gone into its production. With regard to the books, we're
touching on a sore point. I have the Quartz book which is pretty
good, the Hillglass which i hate but can't do without, the Kochan
which I like a lot because clear and suscinct, the Anguish et al.
often rewards the occasional dip, an O'Malley that I think I opened
once, ditto Trent and McCormack, the Feiller OS X developer's guide
was a nice read, and then there are the (for me) just awful vermont
recipies. Of course the best book of the lot here is still the
Kerningham and Ritchie and a book which has nothing to do with cocoa
or c but raises the spirits when necessary: Seggern's Practical
Handbook of Curve Design and Generation.
Tthe fact is that there will be others like me who do not find it
easy to get into cocoa. At this stage I'll not be jumping ship but
believe me I've had sleeples nights about it. Mainly i'll not do it
because although I'm far from attack speed I can just about open a
few windows and pump bit map images to the screen, have menus and
buttons and get mouse and tablet input and hopefully will soon be
able to write to and from disk, and if i'm really lucky i might even
be able to archive system state! in short, I am just about able to do
the things I need to and I am actually progressing the technology
that this current program of mine is supposed to deliver. In short
the investment is beginning to pay off. But getting this far has been
the most difficult piece of learning I've ever done in my life.
In summary, I think it is a problem of all programming
documentation and programming interface regardless of the platform
or language, and I don't really see a way for a single vendor to
resolve the issue, not do I think they really should.
Well, there is a problems with the documentation and if it does not
get resolved then people will end up unable to write the code. I mean
what is the point in loosing people who actually want to program this
machine and are willing to put oodles of effort into doing it?
Julius
http://juliuspaintings.co.uk
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden