Path: utzoo!attcan!uunet!husc6!bloom-beacon!bu-cs!dartvax!eleazar.dartmouth.edu!ack
From: ack@eleazar.dartmouth.edu (Andy J. Williams)
Newsgroups: comp.sys.mac.programmer
Subject: Re: Design Philosophy
Message-ID: <9141@dartvax.Dartmouth.EDU>
Date: 6 Jul 88 20:13:51 GMT
References: <434@dogie.edu>
Sender: news@dartvax.Dartmouth.EDU
Reply-To: ack@eleazar.dartmouth.edu (Andy J. Williams)
Organization: Kiewit Computation Center, Dartmouth College
Lines: 42

In article <434@dogie.edu> terranova@vms.macc.wisc.edu writes:

>    A friend of mine recently expressed his disapproval of the standard
>Macintosh program design.  Rather than putting windows, menus, icons,
>def procs, strings, controls, etc. in resources he would prefer to
>hard code everything into the program and make heavy use of #define
>statements.  He would change the #defines instead of the resources.
>"That's why they made the preprocessor."

You would then have to compile seperate versions for each language.
To enable someone in another country to use your program, you would have to
compile a brand new program to do this.  It is a piece of cake to go through
resources and change them to be what you want them to be, in fact it would
be trivial to write a program to go through all the String resources and ask
you to change each one.  No mucking with ResEdit.

On another level, it separates the processing from the display.  Things
which get shown on the screen (dialogs, windows) are all defined here while
the routines (code and such) are defined elsewhere (incidently, the code gets
compiled into resources anyway)  It allows the user access to the display
and some control over it (although some program licenses say you cannot
change this at all).

It also places the design of display in a different realm.  When I write a
program, I do not need to muck with the display things.  I design my
interface on paper, or hypercard, then I create them in resedit.  From then
on, it is done.  I just write my code to use the resources when displaying
or getting info from the user.  It seems to me a cleaner way to program.


>------------------------+------------------------------------------------
>John C. Terranova       |  I'd start a revolution, but I don't have time.
>  CS, BS to be		|      --Billy Joel,  "Close to the Boarderline"
>------------------------+------------------------------------------------

-Andy


Andy J. Williams '90   |Ack Systems: ack@eleazar.dartmouth.edu|   _   /|
Software Development   +--------------------------------------+   \`o_O' ACK!
Kiewit Computation Ctr |Hello. Set $NAME='Iinigo Montoya' You |     ( )  /
Dartmouth College      |kill -9 my process.  Prepare to vi.   |      U