• 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: Memory Management Mismanaged
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Memory Management Mismanaged


  • Subject: Re: Memory Management Mismanaged
  • From: "Tony S. Wu" <email@hidden>
  • Date: Wed, 7 May 2003 00:11:23 -0700

Now that sure sounds weird.
I learned Cocoa with C++ based knowledge, and I found the memory management system in Cocoa extremely easy.
How could it get any easier?
Release what you allocate/retain.
What's the big hassle about it?
I don't see any obvious reason in your complaint except a lazy programmer trying to find unreasonable reasons.
And try write a GUI application in C with bunch of buttons and table views and outline views ant what-not then tell me it's not less work.
Cocoa is easy enough.
Memory management is usually the least problem I worry about.
Cause if you follow the rules, you won't have any problem.

Tony S. Wu
email@hidden

"The world doesn't give us hope - it gives us chance."
http://homepage.mac.com/tonyswu/tonyswu - My web page.


On Tuesday, May 6, 2003, at 11:32 PM, Karl Goiser wrote:

G'Day Peoples,

I am going to have a bit of a spit about memory management in Cocoa, so you should probably move on to the next message now!

I think that this retain count system is very bad for two reasons:

1. It is a barrier for new people. From the regular messages on this issue I see in this group, it seems to be a difficult concept to understand (I think so). It's like icon design - if you have to keep explaining to people how that squashed bug on the screen is emblematic of your great magnum opus, there's probably something wrong with your design - you certainly can't (shouldn't) blame them. I think it is quite possible that this has turned people off Cocoa as a whole, meaning that they haven't had the great experiences of working with such rich tools, and, possibly Mac development altogether. This is a shame.

2. It gets in the way.
a) You have to take care of the pointer objects in your objects with the dealloc method.
b) You have to write special accessor methods
c) There is no standardisation of what these accessor methods should look like (I use the three statement, retain, assign, release variety for setting, but think that they may not be thread safe...).

- If you have to take care of things yourself, is it any less work than the standard C style do it yourself technique?

- It is definitely more work than an environment that has automatic garbage collection.

Programming is about taking ideas that are in yours or others' heads, sometimes specified in documentation (!), and creating code that brings those ideas to reality. It is like, you are 'here', with the ideas, and you want to be 'over there' where the program runs - like a path. Anything that slows you down or side-tracks you just delays delivery of the program.

C++ is one of those great delaying languages where you have to worry about whether your classes and methods are going to be virtual and/or base and references and whether somebody has redefined (overloaded) = under you etc etc. To use collections, you have to use templates (which only seems to exist to get around the strong type checking in the language that Objective-C doesn't suffer from). I often wonder how much of a C++ programmer's time is spent 'fighting' the language!
[But I digress..]

Memory management is something today's programmers should not have to deal with. It has been around as an issue for more than fifty years and we still can't come to grips with it! It gets in the way of the programmer who has to constantly worry about what will happen with each piece of memory they have allocated. And if you scrimp on the time during development, you end up paying for it through the bugs you give to your customers. Lengthening the time to develop means projects get dropped, they overrun targets, unnecessary bugs get introduced etc etc.

- We have really powerful machines today and what do they do? Sit around while we type in our code and wait for the bugs!


What's the solution? Well, Lisp since the sixties, Smalltalk since the eighties, Java since the nineties, plus any number of other languages have had automatic garbage collection...


Phew! Now I can move on.


Regards,
Karl
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.

  • Follow-Ups:
    • Re: Memory Management Mismanaged
      • From: Karl Goiser <email@hidden>
  • Prev by Date: NSTableView dummy question
  • Next by Date: Re: Memory Management Mismanaged
  • Previous by thread: Re: NSTableView dummy question
  • Next by thread: Re: Memory Management Mismanaged
  • Index(es):
    • Date
    • Thread