Re: Beginner with Cocoa
Re: Beginner with Cocoa
- Subject: Re: Beginner with Cocoa
- From: "Clark Cox" <email@hidden>
- Date: Mon, 24 Mar 2008 11:44:50 -0700
On Mon, Mar 24, 2008 at 10:01 AM, Jack Repenning <email@hidden> 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@hidden
_______________________________________________
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