Path: utzoo!attcan!uunet!ginosko!uakari.primate.wisc.edu!uwm.edu!bionet!agate!saturn!ssyx.ucsc.edu!sirkm
From: sirkm@ssyx.ucsc.edu (Greg Anderson)
Newsgroups: comp.sys.mac.programmer
Subject: Re: Getting started with Mac programming
Message-ID: <9197@saturn.ucsc.edu>
Date: 24 Sep 89 01:05:34 GMT
References: <7893@leadsv.UUCP> <5366@umd5.umd.edu>
Sender: usenet@saturn.ucsc.edu
Reply-To: sirkm@ssyx.ucsc.edu (Greg Anderson)
Distribution: na
Organization: UC Santa Cruz; Division of Social Sciences
Lines: 96

In article <5366@umd5.umd.edu> zben@umd5.umd.edu (Ben Cranston) writes:
>In article <7893@leadsv.UUCP> cberg@leadsv.UUCP (Charles R Berg) writes:
>> I have an opportunity to port an MS-DOS application to the Macintosh.
>> I've been designing and building systems for 20 years.

>I started out in 1969 doing assembly language on Unisys 1100s .............
>Because computers have traditionally talked over a single 7+-2 bit channel
>to a (glass) TTY, everything you know is wrong.

My experience is closer to Ben Cranston's than Charles Berg's (minus the
twenty years experience!), so I thought I would add a few words as one
novice Mac programmer to another.  I just (well, a few part-time years ago)
moved from the 8-bit-byte-stream world to the event-driven Mac world,
and I don't think that everything is as tough as Charles Berg makes it
out to be.

No disrespect is intended.  Please take my aforementioned lack of experience
as a disclaimer against the advice I am about to offer.

>Memorize Inside Mac volumes I-V.

This, I think, is a bit severe.  I never tried to memorize IM, but when I
program the Mac, I have IM I-V sitting next to me all the time.  They have
indices, and I use them.  If I sat down to memorize IM I-V, I wouldn't get
anything done for three to six months.

Perhaps 'Real Mac Programmers' memorize IM before they write their first line
of code, but for your typical novice, IM is to massive to digest all in one
chunk.  Memorization will come automatically as you use it.

>You cannot do ANYTHING without understanding the managers.

... but you can ignore a manager until you have to use it.  I _still_ haven't
touched the font manager.  Obviously I've never written any code that changes
fonts, but when I do I'll dig into the font manager documentation.

The best thing about IM is that the beginning of each manager tells you
all the managers you need to know how to use before you can dig into the
one you WANT to use.

You do have to read the memory manager, the resource manager and the
event manager before you can do anything, though.  Did I miss a few?
Probably, but that will become apparent soon enough as you move on.  My
adivice is:  don't try to digest something until you need to use it.
The best way to learn how a manager works is to _turn it into working code_.
You can't do that if you're reading IM cover-to-cover, volume by volume.

>If you use MultiFinder then read the Programmer's Guide To Multifinder.

This is something I haven't done that I really think I should.  Is this
a tech note?  Where is it?

>Get access to the Tech Notes if possible, there are over 250
>and they contain real good stuff.

The best thing about the tech notes (especially the HyperCard version) is
that you really _can_ ignore the notes on subjects that don't concern you,
while topics of interest are readily available.  Use the tech notes.  You
can get them from apple.com.

>IMHO Apple's own MPW is the best system

Agree, if you have more than 1 meg of memory.  One note of evilness for
those comming from the IBM -- MPW C defines '\n' as a CR and '\r' as an
LF, which is exactly backwards from Real Life.  Since the Mac uses \r as
line separators, both anomolies tend to cancel each other out.

>> How do you develop user interfaces on the Mac?
>... I make my own cables and write my own code.

Actually, I've found sample code to be _very_ useful.  There are example
applications and DA's included with MPW, and I'm sure that the same is true
of LSC.

There's no way that I'm going to memorize the order to initialize the
various Macintosh managers.  I could look up the information in IM, but
it is so much easier to cut the init routine out of an existing application.
I don't believe this is dishonorable programming, and in the end, only
one person is credited with inventing the wheel anyway.  Use the information
at your disposal.


Macintosh programming looks really scarey at first, but as you go on
it becomes desceptively easy.  I looked at the list manager for the
first time last week, and had a working, scrolling list on the same
day.  It's not hard if you start with as little as possible and slowly
build your understanding along with the functionality of your program.

All of the information you need is in Inside Macintosh.  You don't need
to memorize it, it won't go away.  That, I think, is the best advice
I can offer.

  ___\    /___               Greg Anderson              ___\    /___ 
  \   \  /   /         Social Sciences Computing        \   \  /   /
   \  /\/\  /    University of California, Santa Cruz    \  /\/\  /
    \/    \/              sirkm@ssyx.ucsc.edu             \/    \/