• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Beginner with Cocoa
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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

References: 
 >Re: Beginner with Cocoa (From: Erik Buck <email@hidden>)
 >Re: Beginner with Cocoa (From: Jack Repenning <email@hidden>)

  • Prev by Date: Re: Beginner with Cocoa
  • Next by Date: Re: Writing a preference pane that configures hotkeys?
  • Previous by thread: Re: Beginner with Cocoa
  • Next by thread: Re: Beginner with Cocoa
  • Index(es):
    • Date
    • Thread