[comp.sys.amiga] Learning C on the Amiga --- A Survey

jyegiguere@lion.waterloo.edu (Eric Giguere) (07/20/89)

Once more I'd like to conduct an informal survey.  This one has been prompted
by the recent flurry of postings on the net about the C language and in
particular C on the Amiga.  Responses should be e-mailed to me unless you 
think the comments would be of general interest to the net.

Basically my question has two parts:

1. Learning C --- Are you more interested in learning the C language in a
                  general way or in the context of the Amiga?

2. Current learning sources --- Most Amiga magazines have some kind of C
        coverage.  Amazing Computing has a monthly C column.  The TransAmi
        regularly includes listings of short programs.  AMIGA Plus includes
        source code on its disk.  Then there are books.  Sadly, there are
        few Amiga-specific books on the market due to the Amiga's low
        visibility compared to the IBM PC.  A couple of books that come to
        mind are Rob Peck's "Programmer's Guide to the Amiga" and 
        another one called "Inside the Amiga" (I forget who the author is).
        Neither of these are actually C tutorials but instead concentrate
        on using C on the Amiga.  Now:

        a) What do you think Amiga magazines should be doing with respect
           to C?  Should they be providing tutorial articles (such as Amazing 
           does) or just lots of code (such as the TransAmi).  Do you actually
           WANT to learn C from a (monthly) magazine?

        b) The book market is saturated with books on C.  Do you find these
           books too machine/compiler-specific for you?  Are you actually
           looking for something with a general or an Amiga orientation?

        c) Would an alternative publishing method be preferable?  Alternatives
           here include email, newsgroup postings and distribution on disk.

I'd really like to hear what you folks on the net think... let me know ---
something might come out of this.

Eric Giguere                                  268 Phillip St #CL-46
For the curious: it's French ("jee-gair")     Waterloo, Ontario  N2L 6G9
Bitnet  : GIGUERE at WATCSG                   (519) 746-6565
Internet: giguere@aries5.UWaterloo.ca         "Nothing but urges from HELL!!"

eberger@godot.psc.edu (Ed Berger) (07/20/89)

I think that many usergroups need a book or diskette, that can be printed out.
This should come with say PDC, or ZCC, and include a functional library, with
the Commodore Includes.

It has to start with some very basic "C" programming concepts. and work its way
into the Amiga specific area.  It also has to be very inexpensive, or It won't
be used.  It should avoid Advanced programming, but refer readers to the 
appropriate places to look for such information.  I'm trying to put something 
like this together for my own usergroup, which doesn't meet again til the fall.

I think that the members, want to learn "C", but fear its complexity.  They
aren't willing to spend $150, to find out they can't hack it.  Its difficult
to get them to part with $20 membership..........

-Ed Berger
eberger@sandoz.psc.edu
 

johnm@spudge.UUCP (John Munsch) (07/23/89)

I think one of the most helpful things for people who are trying to program
the Amiga, whether they know C or not, would be a set of shell programs that
demonstrate all of the basic functions of a complete Amiga program.

Note that when I say "shells" here, I MEAN shells.  I don't think that people
should have to wade through 1/2 meg of code that has nothing to do with what
they want to do in order to get some menus put up or automatically create an
icon for their output files.  I know it would have helped me considerably to
have a set of programs that demonstrated:

	* Creating two or three windows on a custom screen and taking
	  keystroke and mouse input from each (with output to the appropriate
	  one in each case).

	* Example code for having icons created at the same time that files
	  are written out.

	* Handling of scrolling text in a window with a scroll bar.

	* A set of input dialog boxes that have examples of all the various
	  input gadgets they could want or need for their own programs.
	  Listboxes (multi and single select), radio-buttons, buttons,
	  checkboxes, sliders, static text and static images, text input
	  gadgets.  If each is coded with a rip-me-out-and-put-me-in-your-
	  code philosophy then you'll have lots of happier beginners.

These shells could each show separately how to do individual aspects of Amiga
programming and another shell could put all the pieces together with a basic
"PUT YOUR CODE TO DO X HERE" type of approach to help people get something
up and running.  Make it fancy later.  Let them get something that works
without grief first.  People learn more from showcase (by that I mean "coded
by the book") code with every statement having error checking and the program
having logical steps and breakdown than they ever will from magazine articles
and books.

Shell programs were everywhere when I worked with the Mac, why aren't there
a million shells for the Ami?

John "Let them eat code..." Munsch

darin@nova.laic.uucp (Darin Johnson) (07/25/89)

In article <2170@spudge.UUCP> johnm@spudge.UUCP (John Munsch) writes:
>I think one of the most helpful things for people who are trying to program
>the Amiga, whether they know C or not, would be a set of shell programs that
>demonstrate all of the basic functions of a complete Amiga program.

Yes, this is a good idea.  Now that I know my way around the Amiga,
I can generally find samples for what I want to do.  But for the first
few months, I was pretty lost.

I thought about writing some sample shells, but I always see something
that does it better than I would have (plus it takes a lot of time).

For the simplest case, I have seen a shell that opens a window and
waits for it to close.  Problem is, for more complex examples, there
is a lot of code for all the different things you want to do.  Then
when someone writes a shell, it gets shoved off by itself, unrelated
to any other shells out there.

Perhaps the best way to go would be to have a "project name" and a
group of programmers to manage all of this, similar to ARP.  There
would be no one programmer and some actual coordination.  As a big
plus, whenever you wanted to help a novice learn to program the Amiga,
you would say "get Fish disk xx, it has the latest up-to-date Project
Foo skeleton code on it", instead of "get Fish disks a, b, c, d, e,
and then when you're done with that, there are some samples on disks
x, y, z."  I wouldn't mind working on such a project, but like most
people, I don't want to coordinate it.

On a related topic, it would be nice to have a sample library of
common routines, time-saver's, etc.  I have started building a binder
with stuff useful to me (scavanged from various PD programs,
libraries, etc.).  This wouldn't be an Amiga library, but just a
collection of C, Assem, and Modula II files.  Stuff it should have in
it would be: CloseWindowsSafely, dosalloc, playsound, lock2path, etc.
(It may have something like stricmp(), but should not have every
incarnation of str routines)

Put these two ideas together and there could probably be 1 or 2 disks
worth of useful stuff.  (kind of wonder what some of these top-gun
programmers would have come up with if they had such a resource when
they were learning Amiga...)

Darin Johnson (leadsv!laic!darin@pyramid.pyramid.com)
	We now return you to your regularly scheduled program.