[comp.sys.mac] Sources of programming information

dubois@uwmacc.UUCP (AntiNeophilus) (12/02/86)

>In article <4372@ut-ngp.UUCP>, werner@ut-ngp.UUCP (Werner Uhrig) writes:
> 
> when I first saw IM I threw it into a corner and decided that it was suicidal
> to even try to develop software based on "that mess" - anyone who did has
> my deepest admiration (and sympathies).  For many types of applications I
> suspect that it was nearly impossible to get things done without going beyond
> what IM told the developer about.  I think it is unfair to make it sound as
> if all developers had to do was to "follow the IM-guidelines", I suspect.
> 
> am I terribly off the track with such "heresy"?

I have the phonebook (i.e., outdated and incorrect) version of IM.
I use it regularly and have relied heavily on in for nearly all my
work on the Macintosh.  It may be monstrous, but it has detail,
which is what I want.

Other than IM, the other most valuable resource for me is source
code from other existing applications.  It's often much easier to
figure out how to use something for the first time (e.g., scroll bars)
when you can look at how someone else did it, rather than figuring
it out from scratch.

Some concrete examples of this from my own experience are:
Grep-Wc can read MacWrite files.  The part of the code that does
this is based directly on Index, a MacWrite indexer written in Rascal
by the Rascal developers.  I would never have had the impetus to write
Grep were it not for the availability of the Index source.  FakeAlert
uses a technique from SimpleTools for creating dialog item lists in
memory rather than reading them from a resource file.  The new release
of TransSkel now supports modeless dialogs, which are immensely useful
under certain circumstances.  This would not have happened had Dave Berry
not taken the trouble to write the code and send me the changes.  I
modified his code a little, but let's face it:  modeless dialogs were
a gaping lacuna in my understanding of Macintosh techniques, and if Dave
had not bothered with them, I still wouldn't know beans about them.
And you (if you're a TransSkel user) wouldn't be able to use them so
easily if it weren't for Dave's contribution.

Some day I will grapple with the intricacies of printing.  When I
do, I will go to the Shebanow posting of the source to a printer
program.  When I get around to TransDraw, I'll use Allen Weber's
MacDraw->Imagen program as a basis for learning.  If I were going to
write a version of Grep that allows multiple file selection, I would,
despite our ideological differences, go to Tim Maroney's posting of
the IP package, because it contains source for a multiple-file GetFile
box.

I know the debt I owe to others because of being able to look at their
programs.  This is one reason I post sources to most of the binaries
I put on the net:  I wish others to benefit from my efforts (if only to
learn from my mistakes).  All of the Trans* modules, besides aiming at
the goal of being software IC's, also have a pedagogical motivation.
That is, I intend them to be used for learning.  I don't say that in
the manuals because it sounds kind of obnoxious, but I know for a fact
from the feedback I get that these sources not only help others avoid
tedious tasks (e.g., writing an editor window) but have helped others
just starting out learn basic Mac techniques.  This benefits us all,
because at some point down the road we'll see the fruits of their
labors in the form of useful applications.

One other point:  I have just looked through the postings from
mod.mac.sources (I keep the articles), and lo! half (at least) the
postings are mine.  This is deplorable.  We benefit from your
applications, but we'd also benefit greatly from being able to look
at your sources - but only if you *post* them.  If you don't wish to do
that, out of size considerations or whatever, please include a note
in the binary posting as to whether you'd be willing to mail sources to
interested parties.

---
Paul DuBois     UUCP: {allegra,ihnp4,seismo}!uwvax!uwmacc!dubois    |
                ARPA: dubois@easter                               --+--
                      dubois@rhesus                                 |
                                                                    |
"What is lacking cannot be counted." - Solomon the cladist
                                       (Ecclesiastes 1:15)