Path: utzoo!utgpu!water!watmath!clyde!att-cb!att-ih!pacbell!ames!pasteur!ucbvax!CORY.BERKELEY.EDU!dillon From: dillon@CORY.BERKELEY.EDU (Matt Dillon) Newsgroups: comp.sys.amiga Subject: Re: Feeping Creaturism Message-ID: <8803090725.AA05559@cory.Berkeley.EDU> Date: 9 Mar 88 07:25:38 GMT Sender: daemon@ucbvax.BERKELEY.EDU Lines: 79 Two excerps from Larry Rosenstein's mac-misconceptions posting. All his comments are, of course, true, though it is necessary to talk about the degree of trueness on two of them. :>It has to be built around an "event loop" that handles all events in the :>system, and passes down to other programs the ones it's not interested in. : :This is not much different than what you have to do on the Amiga in response As a general concept, just about every computer program I know has some sort of event loop, no matter what computer it was written on. From a Mac programmer's perspective, with little knowledge of the Amiga, the mac's event calls are sufficient. From an Amiga programmer's perspective, however, there are a huge number of deficiencies in the way the Mac handles events. :to certain messages. On the Mac, you can take advantage of frameworks such :as MacApp, which handle these things automatically. (A programmer using :MacApp has to do a lot less work than an Amiga programmer.) To a point. As long as you restrict yourself to MacApp's capabilities. One thing the Mac does have going for it are more 'system' default constructs. But apart from this I just don't see it. :>The idea of porting a Mac program to anything else, or porting anyone :>else's programs to the Mac, is pretty much a fantasy. Unless you write a :>badly-behaved Mac program or use A/UX. : :People at Microsoft, Aldus, ... would disagree with you. They ported their :programs between the Mac and Windows. I have read where this was not a :major effort (provided you allow for this in the first place). As you said, provided you allow for this in the first place. The original message and response are assuming two different types of programs anyway, so point and counter-point don't exactly mesh. Graphic oriented IBM programs are easy to port anyway because the IBM (PC) has no kernel... at least nothing real. In fact, up until recently, compilers and assemblers on the IBM-PC were woefully out of date. Did you hear they finally upgraded MASM from, what was it? compiled fortran? or was it compiled basic? Can you believe that? : :It seems to me that porting an Amiga program would be even more difficult, :unless that program was designed to be ported and didn't take advantage of :the unique Amiga features. Porting things *to* the Amiga is simple... very simple in fact. In fact, I can compile some UNIX programs without a single modification. The only major problems I've come up against (for UNIX programs) can be blamed on deficiencies in the compiler (Aztec 3.4a in my case) not allowing more than 32K static BSS data per object module... you wind up having to malloc() the space. The difficultly of porting things from the Amiga depends on the application. Usually, I just use the same source and write a compatibility library to handle things like OpenWindow(), etc... Some things are much more difficult to port. For instance, if you are using huge amounts of asynchronous IO the system you are porting to usually doesn't have sufficient capability and you have to actually change your algorithm. This is the problem I had porting DNET to UNIX. I wound up rewriting it essentially from scratch, keeping only select sections of the protocol. That was the only way I could make it streamlined and efficient. Likewise for porting things FROM the Mac.... about equivalent to porting something FROM the Amiga. : :If you start out with a goal of writing a portable application, then you :will isolate the unique features of each machine so that they can be handled :separately. Much of what goes on in a program deal with data structures and :algorithms, which are universal. This applies to any machine, and thus doesn't constitute any kind of comparison or misgiving. -Matt