[comp.sys.mac.programmer] Info about Mac books - last posting

mguyott@eriador.prime.com (03/29/91)

Here is the latest and last copy of the information that I have received
about books for programming the Mac.

            Book                                 Recommended/Mentioned
            ----                                 ---------------------
Macintosh Programming Primer                                5
                    by Mark and Reed (2 volumes)
Inside the Macintosh (5 volumes)                            4
Macintosh Revealed by Stephen Chernicoff                    3
How to Write Macintosh Software                             1
                    by Scott Knaster

The actual recommendations follow:

------------------------------------------------------------------------------

I recommend Mark and Reed, Macintosh Programming Primer.  There is a version
for Think C and one for Think Pascal.  Also, there is a second volume for
Think C.  If you're not planning on using Think C or Think Pascal, I don't
know how useful they will be, but I know there is a lot of general information
about using the toolbox.
-- 
David M. Marcovitz                     |  internet: marcovitz@uiuc.edu
Computer-based Education Research Lab  |            dmmg1176@uxa.cso.uiuc.edu
University of Illinois                 |  novanet:  marco / cca / cerl

------------------------------------------------------------------------------

Probably the best intro to Mac programming is Stephen Chernicoff's _Macintosh
Revealed_ series, a set of four volumes, although the basics can be learned in
vols one and two. It's written for Pascal users, mainly because the macintosh
toolbox routines are Pascal based. It is fairly complete; vols 1 and 2 talk 
about using the event-driven system and interacting with the operating system,
and resources and windows and menus and controls. Vol 3 discussed printing
and making customized stuff, vol 4 talks about color and Multifinder-awareness.
This is probably the most complete, down-to-earth reference to Mac programming.

The next set of books is probably worthwhile to have. These are _Inside 
Macintosh_, volumes 1-5 (and soon 6). This is the bible according to Apple;
unfortunately, it's more of an encyclopedia, because while it tells you
everything you *can* do, it doesn't really tell you what you *need* to do. 
Which is why Chernicoff's series is very useful. _IM_ lists *all* the macintosh
toolbox routines, what they do, and what they need, all in Pascal. Vol 1 talks
about the basic toolbox "managers", and things like windows, menus, controls,
Quickdraw, resources, et. al. Vol 1 is a must. Vol 2 and vol 3 talk about some
of the hardware and some of the device managers and file managers. Vol 4
talks about newer features and the redesigned file manager, and vol 5 talks 
about color. Vol 1 and 4 and 5 are probably the most useful for the majority of
programs; I have them all, even though I rarely use anything beyond 1.

For C users, the most fun book I found was David Mark's and Cartwright Reed's
_Macintosh Programming Primer_. Note that I said "fun". This was my
first introduction to the world of Macintosh programming. It does what
you asked, pretty much, gives you a set of applications to create
using THINK C, from a "Hello, World" application (including one with
its own application icon) to windows and menus and events and dialog
boxes and printing and scroll bars. There is a second volume which
goes into other areas such as color, control panel devices and INITs,
text editing, and the THINK Class Library (although I'm hoping they
do a more in-depth volume on that. I think a whole book could be
devoted to the TCL all by itself, but what do I know...). The only
problem I have with the two volumes is that they tend to be rather
specific, and not useful as references when it comes time to program
something just different enough from their examples. For instance, the
first volume doesn't really explain that dialog boxes are windows, and
they have to be selected and brought to the front to be used. I had
trouble with that one, and their only Dialog box example didn't help.
They're a good stepping stone, and they do also get you used to using
resources (with the help of ResEdit), so I'll keep buying them. Plus I
liked their writing style. I thought Petzold was a bit smug, in
comparison.

In addition, my library also contains several books on Object-Oriented
Macintosh programming. Notably, Dave Allen's _Elements of C++
Macintosh Programming_, which I am currently using (albeit with THINK
C v4.0, as opposed to MPW C++) to develop a mac version of xconq (an
EMPIRE-like game). This book showed me the development of a Macintosh
user interface from the ground up, which is what I'd like to see Mark
and Reed tackle with the TCL. As an aside, THINK C v4.0 is not C++;
close but no cigar. I converted Allen's MPW C++ code to THINK C, and
with one minor exception, it seems to work fine (I can't get the
scroll arrows to unhighlight when the mouse is let up or taken off).

Anyway, I've found all of these books useful in one way or another. I
bought _IM_, couldn't really use it, bought Chernicoff's books, but
didn't really understand what was going on, bought _MPP1_, and finally
grasped the concepts, and can now use _Mac Revealed_ when I have a
technical point that needs to be resolved. _IM_ is useful when I want
to do something but don't know what to use. Still have to learn the
TCL though.

Karl G. Kowalski                                  killer@aerospace.aero.org

------------------------------------------------------------------------------

For programming on the Mac, I suggest using ThinkC and for that, you can get
the Macintosh Programming Primer: Inside the Toolbox Using ThinkC.  There are
now two volumes for this.  Volume one handles basic stuff like making simple
applications with menus and picts and text editing.  Its really thorough.
Then the second volume starts up with CDEVs and INITs and all the extra little
programs that aren't applications and some more advanced stuff.  I know the
first volume has a ResEdit Tutorial in it.  I forget if the second one has
anything on that, but again the book is thorough in this as well.  A good
series, I think.

They suggest using the Inside Mac(volumes I and V are the essentials with
the rest being extra stuff) or the Macintosh Revealed series (only two volumes
to this one).  Those two series explain routines in the Macintosh programming
Toolbox.  They are very useful, but not exactly necessary if you get the Mac
Primer Series.  The above two series are written with Pascal in mind, while
Mac Primer is of course in C.  Mac Primer does start out with Hello World,
giving two versions, and finishing with large applications.
Hope this helps!!                                              --Ernie

------------------------------------------------------------------------------

C++ is only available from Apple as part of the MPW shell system.  Think C
4.0 has a class library, but is not a full-fledged implementation of 
C++.  Good Think-C books are Volumes I and II of The Macintosh Programming
Primer (Volume I by Mark and Reed, Volume II by Dave Mark, only), by
Addison-Wesley (roughly $25 each, retail).  They're designed for 
programmers getting used to the Mac, and are not C tutorials (knowledge
of C is presumed).  Sounds like these are what you're after.

John Miller
Music Theory
Eastern Illinois University

------------------------------------------------------------------------------

When porting your prog to the Mac, pay very close attention to the Mac
User-Interface Guidelines.  Reviewers of Mac software love to rip applications
to shreds when they don't follow the guidelines.  For instance: the Windows
habit of creating "hot-keys" in a dialog by using the first letter of the
title of a button doesn't work well on the Mac as certain cmd-key combinations
are already taken, such as cmd-c for Copy or cmd-o for Open.  If you used "o"
for "OK" or "c" for "Cancel", you might confuse lots of folks.  Use <Return>
for the (hilited) default button, and cmd-<period> for Cancel (assuming that
it's not the default...) and you will find that users will accept your
application more readily...

(Almost) every volume of "Inside Macintosh" has a chapter on the Mac
Human-Interface Guidelines and there is a seperate book from Addison-Wesely
that addresses this issue.

Lawson

--  
Uucp: ...{gatech,ames,rutgers}!ncar!asuvax!stjhmc!300!15.88!Lawson.English
Internet: Lawson.English@p88.f15.n300.z1.fidonet.org

------------------------------------------------------------------------------

I would have to say that the best introductory Mac programming book I've seen
is "Macintosh Programming Primer" by Dave Mark and Cartwright Reed.  It 
starts off with the Mac equivalent of 'Hello World', and progresses from
there with sample programs to illustrate each important part of the Mac
toolbox.  There's also an excellent chapter on using ResEdit, although it's
a tad out of date now with the release of version 2.x.  Once you get through
this book, there's a second volume called "Macintosh C Programming Primer, 
Volume II," by Dave Mark.  This contains info on some more tricky aspects of
Mac programming, such as INITs and cdevs.  Both of the books use THINK C as
their development system, although I think there's one for Pascal as well.
I highly recommend them.

Jim Wintermyre                                 jwinterm@jarthur.claremont.edu

------------------------------------------------------------------------------

If you're an accomplished programmer, and have a good grasp on Pascal,
you will need:

1) Inside Macintosh I-V (and VI, when it comes out), for reference.
This set is kind of like K&R, but with a steeper learning curve :-).
These are published by Addison-Wesley.

2) Macintosh Revealed, by Stephen Chernikoff (sp?).  This is a
four-volume work which covers most of the typical things an
application will need to do.  Note that it doesn't cover OOP
techniques, and it's written in Pascal.  It's published by Hayden
Books.

3) How to Write Macintosh Software, by Scott Knaster.  This book
should really be called "How to Debug Macintosh Software".  It's a
very advanced book that covers things that every Mac programmer should
know (but most don't).  It's also published by Hayden Books.

Optional, but nice:

Become an APDA (Apple Programmer's and Developer's Association)
member, and get the Macintosh Technical Notes, and the Human Interface
Guidelines.  Their number is +1 800 282 2732.  Also, subscribe to
develop, APDA's magazine that comes with a CD-ROM.  If you can afford
it, get the Developer's CD. 

If you're planning to use C (MPW or THINK), be prepared to find that
all of Inside Macintosh and quite a few other sources use Pascal.  After
a while, you get used to it.

Good luck!                                                      -phil
----
   Phil Shapiro                           Technical Support Analyst
   Language Products Group                     Symantec Corporation
                Internet: phils@chaos.cs.brandeis.edu

------------------------------------------------------------------------------
Thanks everyon!                                                       Marc
----
Two of the worst things we teach our children are that a knowledge of science
is nice but not necessary, and a knowledge of sex is necessary but not nice.

Marc Guyott              Constellation Software, Inc.          (508) 620-2800
                         Framingham, Mass. 01701 USA                Ext. 3135
mguyott@primerd.prime.com       ...!{uunet, decwrl}!primerd.prime.com!mguyott