On Mon, Mar 24, 2008 at 10:01 AM, Jack Repenning <[EMAIL PROTECTED]> wrote: > On Mar 24, 2008, at 7:13 AM, Erik Buck wrote: > > For the record, reference counting for memory management is one of > > the oldest techniques in software and is not unique to Objective-C > > or Cocoa. Microsoft Foundation Class CString uses it. COM/Active-X > > IUnknown uses it. It's essential to using DirectX. It's essential > > to using embedded controls. > > Reference counting is well established. Retain/release is not > reference counting.
Retain/release *is* reference counting, it is just not *automatic* reference counting. > The essential point of reference counting is that the language system > does it for you, you don't have to think about it at all. Reference counting does not require language support; the objects used by the CoreFoundation APIs are reference counted and those require zero language-support. > Most Java > and scripting developers never even learn to think that there are such > things as allocation and disposal. The essential point of plain > memory management is that you have to think about it constantly, and > that the decision actually to free an object (or the research into why > it was freed too early or too late) requires knowledge of the state of > the entire system. This is because Java and scripting languages are garbage-collected. Whether that garbage collection is implemented in terms of reference counting or not is largely irrelevant. > Retain/release is a middle ground: it's not done automatically, you do > have to think about it, a bit. But it's possible to pull it off with > very limited thought and very simple constraints. But that mental > model is, so far as I'm aware, utterly unique in language design, and > turns out to be startlingly hard to learn, coming in either from a > true ref-counting world (whence you have to learn to think about > something you never before knew existed), or from vanilla do-it- > yerself memory management (whence you have to learn to trust a simple > system for something that has always meant life-or-death, sweaty > palms, and late night aggravation). -- Clark S. Cox III [EMAIL PROTECTED] _______________________________________________ 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]