On May 18, 2008, at 3:56 PM, [EMAIL PROTECTED] wrote:

On Sun, May 18, 2008 at 8:41 PM, Julius Guzy
<[EMAIL PROTECTED]> wrote:
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?

There's been a lot of discussion on the list lately about how Cocoa
has been so hard for people to learn, but not a lot of useful
specifics or follow-up. People haven said "the API is bad because it
refers to all these terms you're already supposed to know and I don't
know them!", and then when someone says "Did you read the conceptual
documentation?" the response is a resounding... silence. I think this
is part of why those veteran Cocoa developers are often less than
sympathetic.

I would self-describe myself as a newbie, and feel compelled to chime in on this discussion. The odd thing is, one can read the conceptual docs and not see what is obvious to others, In my own experience, in the very beginning, I would wend my way through the conceptual docs dull eyed - yes, I was reading words, but the concepts escaped me. For me, much of the learning comes in the pursuit of making code work. Eventually the wonderful AHA moments happen. After which, when I go back and read the conceptual docs again I smile - in a proud and embarrassed way -- for suddenly parts make complete sense. And so, I find I need to revisit the docs, over and over. In this regard, addressing the discussion here regarding the quality of the docs is quite a bit influenced by how much one already knows.

I have for the past few days been struggling to find a way to append an attributed string to the end of text view. I resisted the temptation to ask the list. I did look all through the docs. I read loads of conceptual material about the text system (architecture, layout, containers, storage, and many of the class references). I did find an example in the text architecture document (Simple Tasks) for using replaceCharactersInRange:withString: to append a string to the end of the text view. I actually had trouble finding info on this method (it is a part of NSText, which I had developed a notion of that it was better to use its subclasses rather than itself directly). That aside, there was no replaceCharactersInRange:withAttributedString: But then it struck me -- inheritance. What else does an NSTextView inherit from? What about its storage? And by pursuing that, the answer became clear and the solution utterly trivial. In fact, the way to do this is so painfully obvious now that I am embarrassed to mention here that I spent the better part of two days trying to figure this out. But this is the plight of the programmer new (or relatively) to Cocoa. Hopefully I will retain some humility from this experience.

The key to learning is to have fundamental ideas fall into place. Before enough of that happens, even easy problems loom large. The gap between the accomplished Cocoa programmer and the newcomer is the context of their respective knowledge -- a context that makes problem solving either more or less difficult, and that makes the docs either useful or not.

My point in writing is that veteran Cocoa developers do need to have some sympathy and compassion -- that we aspiring developers don't have the patterns, and so what is obvious to you isn't obvious to us, even if the docs say so.

On the other hand, aspiring developers need to understand that learning involves struggle. And that having read the docs once or twice isn't good enough. And also to understand that learning is sometimes circular -- one needs to go round and round because so much of the system is inter-related My advice: experiment! I must also admit that I read and read about a Nib's File's Owner, but it wasn't until I made a bunch of small apps that did nothing but display a window (all done in various ways) that the idea finally sunk in.

That said, one of the huge barriers to climbing the Cocoa/Objective-C/ CF app development learning curve is that there is so very much to learn. The deeper I get into it, the bigger the sea seems to become (I am now trying to use Security Framework to manage passwords on a keychain -- no small mountain here!).

BTW: I download PDFs of the Apple docs (from developer.apple.com) ... and access those quite often. Using Preview, it is easy to search for a term. I find I often have several open all at the same time, and need to cross-reference what I am reading in order for solutions to problems to appear.

Anyway, not sure if I have added anything meaningful...just sharing my experience.

_______________________________________________

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]

Reply via email to