Design for Cocoa (was Re: Can a subclass of NSDictionary do this?)
Design for Cocoa (was Re: Can a subclass of NSDictionary do this?)
- Subject: Design for Cocoa (was Re: Can a subclass of NSDictionary do this?)
- From: Wade Tregaskis <email@hidden>
- Date: Wed, 23 Jul 2003 14:44:28 +1000
PS - From reading your posts, I'm getting the impression that you're
doing a large amount of up-front analysis, design and specification
work before actually writing any code. Check out
http://c2.com/cgi/wiki?BigDesignUpFront for information on some
alternative ways to develop software that can work *very* well,
particularly with dynamic languages like Objective-C. I apologize if
I'm misinterpreting your posts.
From that page:
...to me the work is in design; coding is the process of converting
that into a specific computer language and typing it in, and occurs
quickly and semi-automatically...
I find that since Cocoa is so huge and complex, I can't possibly figure
out how I'm going to do something until I really get into the
documentation and start writing test code. Even after several years,
I've still barely touched on most parts of Cocoa. How can I say how
I'm going to do something if I've never done it before?
Does anyone else get the feeling that you can only create a useful
design if the libraries your using are tiny, and thus you know them all
like the back of your hand? e.g. after a few years of using ANSI C or
the STL or similar.
Last year I had a subject on object orientated design - and I've had
previous studies over the years in that area - which I just couldn't
get into. I've had it so drummed into me that I must design every
detail before writing code that now I feel guilty writing code! Yet,
if I try to design something, all I come up with are questions - "can I
use this for this problem?", "is this efficient/fast enough for this
use?", "can I put this through this to do this?", etc. There's no way
I can find of solving these without writing the appropriate code! I
understand that sometimes you need to go back and revise your design,
but when you're doing that after every new line of code, really, what's
the point of having written the [wrong] design in the first place?
To me, programming is more of an art than a process of engineering. If
I'm going to build a house, I can apply simple techniques to design (&
test) the frames, using known values for my materials, etc. It's all a
matter of repetition - I'm not doing anything original. I don't want
to repeat myself in code. In my mind, everything I write should be
original - if it's not, then I should have written it better the first
time such that I could reuse it now. Art doesn't have design, in my
opinion. You take your idea, and you put it onto your canvas. The
vision is in your head - if you could draw what you're going to paint
beforehand, why would you bother painting it?!?*
But, as young and stubborn as I am, I'm not [intentionally ;)] stupid
nor rebellious. Everyone who's 20 years my senior keeps saying "design
design design", and it keeps striking a sore spot somewhere in my mind.
Does anyone else feel this, or am I really just not "getting it"?
Wade Tregaskis
-- Sed quis custodiet ipsos custodes?
* = Granted, you might do some quick object outlines prior to picking
up your brush, but I would hardly call that 'design'. Not in the
traditional sense as it relates to programming.
_______________________________________________
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.