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]

Reply via email to