Windows ( Really porting between Mac, Amiga, and ST
Tim Smith
tim at ISM780C.UUCP
Sat Dec 7 12:23:04 AEST 1985
Note: I am adding net.micro.{mac,amiga,atari} to this, because this article
is really about portability between the Mac, the ST, and the Amiga.
[I am >>]
In article <-13400 at brl-tgr.UUCP> jon at brl-tgr.UUCP writes:
>>> [compaint that Mac programmers are not writting portable code.
Mentions that other machines have windows besides the Mac]
>> Are you saying my Mac programs should easily port to the Amiga, the Atari
>> 520ST, the Sun , V8 Unix ( if you have a BLIT ), System V ( if you have
>> a Teletype 5620 ), the IBM PC and Clones ( with GEM ), the AT&T PC7300,
>> and a few random Xerox machines? They all have windows.
>>
> Are you saying you want to write different programs to accomplish the
>same thing on all these machines?
Of course not. What I mean is that just because N machines all
support windows, or similar user interfaces, that does not mean
that they are alike in other details of the operating system.
Portability depends a lot on what the program does. For example,
a V8 program that makes heavy use of streams probably take a bit
of work to run on a non V8 Unix. Or a BSD program that depends
on the 4.2 behaviour of signals might have problems. Or look at
all the problems with tty drivers and time functions between
various Unix implementation. These Unixes are a lot closer to
each other than the Macintosh and the Amiga and the ST are!
Good implementations of stdio can do a lot to help. An example
is the MegaMax implementation on the Mac. If you attempt to
printf or putchar on stdout, and you have not initialized
QuickDraw and the window manager yet, it will notice this, do it
for you, and create a window called "stdout", which looks a lot
like a TTY in cooked mode. For example, echoing, ^S, ^Q, and
backspace work, and there is a way to kill the program with a key
sequence. ^D generated EOF. So most programs that just want to
interact with a user, and do some computation will port just
fine. I believe that the other Mac C systems do similar things.
I don't know anout the ST and the Amiga, but if they don't
already, they can certainly be made to.
But when I write a program on the Mac, I want to use menues,
graphics, dialogs, etc. In short, I want to use the Mac
interface. If I had an ST or an Amiga, I would want to use their
interfaces.
It should be possible to develop a graphics library that is
implementable on the Mac, Amiga, and ST, so that one could write
portable programs that do graphics. It would probably not fully
utilize each machine, e.g., collision detection on the Amiga, but
most programs would be able to use the library.
I suppose one could also come up with menu libraries, window
libraries, text libraries, etc, so that one could write portable
programs that make use of the user interface available on the Mac
and Amiga and ST.
Until someone actually writes those libraries, I don't think one will
see a lot of portable code between these machines, except for programs
that use a simple command line user interface.
This specs for the above mentioned libraries could be a fun topic
to discuss ( certainly more interesting than curly braces and bouncing
balls! ).
Sounds like a job for an ANSI committee! :-)
--
Tim Smith sdcrdcf!ism780c!tim || ima!ism780!tim || ihnp4!cithep!tim
^
^-- Not ISM780C, ignore the header!
More information about the Comp.lang.c
mailing list