[comp.sys.mac.programmer] MacApp questions

a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 2620) (03/20/89)

I'm looking for general comments on using MacApp, particularly with either
Object Pascal and Object Assembler.

1)  What's the speed like on a MacPlus?
    - is it heavily dependent on CPU power or on disk speed?
    - if more memory helps, has anyone tried Virtual ?

2)  What Pascal's are out there that are compatible with MacApp?

3)  How hard is it to use Object Assembler?  I got the impression that MacApp
    only requires you to write relatively small amounts of code and so using
    Assembler might not be too painful?

4)  Are there any incompatibilities with System 6?

keith@Apple.COM (Keith Rollin) (03/21/89)

In article <568190@vaxa.uwa.oz> a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 2620) writes:
>I'm looking for general comments on using MacApp, particularly with either
>Object Pascal and Object Assembler.
>
>1)  What's the speed like on a MacPlus?
>    - is it heavily dependent on CPU power or on disk speed?
>    - if more memory helps, has anyone tried Virtual ?

One of the myths about MacApp is that it is a dinosaur (big and slow). While it
can be considered as large, this is due to the amount of functionality it
gives you. Also, I wouldn't consider it slow, even on a Mac Plus. Most of the
time, the timing critical stuff is done in your own source code. Therefore, if
your MacApp program is slow, it would have been slow anyway.

There is one area where MacApp could be considered slow, though, and that is in
scrolling. The overhead for setting up clipping to views can take a while. If
you are scrolling 2 or three views at once, your might notice speed problems.
However, MacApp DOES try its best to solve this by caching the Focused 
settings when it can. Also, don't take this as an indication that you *WILL*
notice speed problems; just that you *MIGHT*.

>2)  What Pascal's are out there that are compatible with MacApp?

Both TML and Think have Object Pascals. However, TML's is the closest to
being able to compile MacApp (I think that only a few changes to the MacApp
source are needed). Think Pascal 2.0 cannot compile MacApp due to the 
different ways segmentation is handled. (Rich, if I'm wrong, please correct me)

Uh, these are both in addition, of course, to MPW Pascal.

>3)  How hard is it to use Object Assembler?  I got the impression that MacApp
>    only requires you to write relatively small amounts of code and so using
>    Assembler might not be too painful?

There is only one person that I know of that uses Object Assembler, and that is
Rick Wong at Stanford. If there are others out there, I'd like to hear about
your experiences.

>4)  Are there any incompatibilities with System 6?

Not that I've heard of. We've also received fan mail here at Apple from people
who say that they have tested out their software under A/UX with no problems
at all! Without even writing their program with A/UX in mind.

You may not get some functionality if you are using MacApp 1.1.1. For instance,
I don't think that 1.1.1 was MultiFinder aware, and it didn't call WaitNext-
Event (I'm not sure though - I don't have my sources handy).

------------------------------------------------------------------------------
Keith Rollin  ---  Apple Computer, Inc.  ---  Developer Technical Support
INTERNET: keith@apple.com
    UUCP: {decwrl, hoptoad, nsc, sun, amdahl}!apple!keith
"Argue for your Apple, and sure enough, it's yours" - Keith Rollin, Contusions

rick@Jessica.stanford.edu (Rick Wong) (03/23/89)

In article <27618@apple.Apple.COM> keith@Apple.COM (Keith Rollin) writes:
>In article <568190@vaxa.uwa.oz> a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 2620) writes:
>>I'm looking for general comments on using MacApp, particularly with either
>>Object Pascal and Object Assembler.
>>
>>3)  How hard is it to use Object Assembler?  I got the impression that MacApp
>>    only requires you to write relatively small amounts of code and so using
>>    Assembler might not be too painful?
>
>There is only one person that I know of that uses Object Assembler, and that is
>Rick Wong at Stanford. If there are others out there, I'd like to hear about
>your experiences.
>

Since I've been singled out, I guess I should follow up.

The biggest problem with using Object Assembler is mixing it with Object
Pascal and keeping all your assembly class definitions in synch with your
Pascal class definitions.  The only interfaces Apple supplies for it are
to TObject, so you can't call any methods belonging to TApplication, TView,
or whatever, unless you write your own interfaces to them.  Since hardly
anyone uses Object Assembler, I don't blame Apple for not supplying such
interfaces -- having to keep all that stuff up to date would probably slow
down the Excellent work the MacApp group has been doing.

(By the way, Keith, ObjMacros.a still hasn't been fixed in MPW 3.0.)

It's misleading to assume that MacApp only requires you to write small
amounts of code.  Rather, it saves you the work of having to write most
of the Macintosh-specific stuff, like window-handling, menu-handling,
scrolling, memory management, filing, and so on.  You're still going
to have to write the code specific to your application.

I would recommend using Object Pascal for 99% of your MacApp programming.
I would only use assembly for especially time-critical sections of code.
Even then, it's probably best to write some "wrapper" method in Pascal,
which would then call a plain ol' assembly routine, passing it whatever
fields it needed as regular parameters on the stack.

You should not let MacApp's supposed slowness dissuade you from using it.
Most talk about MacApp being slow is based on the molassicity (sorry)
of applications built with MacApp's debugging gear.  Without debugging,
MacApp's speed really is comparable to that of an application developed in
an "old-fashioned" language.


Rick "No, it's Hair Pie" Wong
Courseware Authoring Tools Project, Stanford University
rick@jessica.stanford.edu

gwills@maths.tcd.ie (Graham Wills) (03/24/89)

In article <27618@apple.Apple.COM> keith@Apple.COM (Keith Rollin) writes:
>In article <568190@vaxa.uwa.oz> a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 2620) writes:
>>I'm looking for general comments on using MacApp, particularly with either
>>Object Pascal and Object Assembler.
>>
>>1)  What's the speed like on a MacPlus?
>>    - is it heavily dependent on CPU power or on disk speed?
>>    - if more memory helps, has anyone tried Virtual ?
>
>One of the myths about MacApp is that it is a dinosaur (big and slow). While it
>can be considered as large, this is due to the amount of functionality it
>gives you. Also, I wouldn't consider it slow, even on a Mac Plus.
>

  I've been writing a spatial data analysis - graphic - package using MacApp.
  I had previously written a large time series data analysis program of the
  same style using MPW Pascal.  My conclusions about the difference ?

  The Std. Pascal program is about 33% smaller than the MacApp one probably
  will be at a similar development stage.

  The MacApp program is *much* easier to read, understand, bug-fix, etc.

  The MacApp program is *slightly faster* overall.  This is due to the
  fact that when writing code, you tend to add features to it one at a time
  as you implement them (Now I'll write cut&paste, now import/export).
  This means you tend to write patches, Ifs, cases and other not-so-hot code.
  This code is usually not part of an overall plan, so it is slower and more
  difficult to maintain.

  MacApp is slower for doing fancy graphic stuff using objects, and can
  cause memory problems if you have too many objects...

  Overall, I keep looking at my old program and thinking " Now, if this were
  MacApp, I could .... "

  One caveat, using MPW on a Plus is not fun. Compile and Link times are a
  wee bit long. I'd stick to Lightspeed on a Plus, but try very hard to
  justify a SE/030 to run MPW... and MacApp.

	-Graham Wills, TCD, Ireland.

a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 2620) (03/28/89)

In article <27618@apple.Apple.COM>, keith@Apple.COM (Keith Rollin) writes:
>>1)  What's the speed like on a MacPlus?
> 
> One of the myths about MacApp is that it is a dinosaur (big and slow). While it
> can be considered as large, this is due to the amount of functionality it
> gives you. Also, I wouldn't consider it slow, even on a Mac Plus. Most of the
> time, the timing critical stuff is done in your own source code. Therefore, if
> your MacApp program is slow, it would have been slow anyway.

Sorry, slight misunderstanding here - I have read the comments about application
performance before - I was looking for comments on compile-time/linking.

>>2)  What Pascal's are out there that are compatible with MacApp?
> 
> Both TML and Think have Object Pascals. However, TML's is the closest to
> being able to compile MacApp (I think that only a few changes to the MacApp
> source are needed). Think Pascal 2.0 cannot compile MacApp due to the 
> different ways segmentation is handled. (Rich, if I'm wrong, please correct me)
> 
> Uh, these are both in addition, of course, to MPW Pascal.

If (with a few changes) you can compile and link TML Pascal with MacApp, does
that give you a means of using MacApp without MPW?  (I am rather put off by
the vast cost of MPW.)

General question:

What happened to Object-Oriented Programming for the rest of us 
(ie:  Low-budget/Bright-ideas/Potential-genii)

levin@bbn.com (Joel B Levin) (04/01/89)

In article <568218@vaxa.uwa.oz> a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 2620) writes:
|In article <27618@apple.Apple.COM>, keith@Apple.COM (Keith Rollin) writes:
|>>2)  What Pascal's are out there that are compatible with MacApp?
|> 
|> Both TML and Think have Object Pascals. However, TML's is the closest to
|> being able to compile MacApp (I think that only a few changes to the MacApp
|> source are needed). . . .
|
|If (with a few changes) you can compile and link TML Pascal with MacApp, does
|that give you a means of using MacApp without MPW?  (I am rather put off by
|the vast cost of MPW.)

This refers to TML Pascal II (now at version 3.0, to match MPW), which
does require MPW.  It comes with MPW (without assembler, SADE, etc);
MacConnection is listing it at $125 or less (I think).  It includes
the two volumes of Apple MPW documentation and all the
non-language-specific utilities as well as the Shell.

|General question:
|
|What happened to Object-Oriented Programming for the rest of us 
|(ie:  Low-budget/Bright-ideas/Potential-genii)

Well, the above mentioned environment does give you an object pascal
for ~$125, if you want to write your own superstructure instead of
buying MacApp.

Disclaimer: I don't know anything about MacApp or much about anything,
really.  (I do have TMLP II, awaiting my 3.0 update.)

	/JBL
=
UUCP:     {backbone}!bbn!levin		POTS: (617) 873-3463
INTERNET: levin@bbn.com

lsr@Apple.COM (Larry Rosenstein) (04/01/89)

In article <568218@vaxa.uwa.oz> a_dent@vaxa.uwa.oz (Andy Dent, ph: 09 380 
2620) writes:

> Sorry, slight misunderstanding here - I have read the comments about 
application
> performance before - I was looking for comments on compile-time/linking.

The first version of MacApp was developed on a MacPlus (actually, we 
started on a Lisa), since there were no Mac IIs in those days.  I have to 
admit, however, that I don't use a MacPlus for development now.  

I think using a MacPlus will be possible, although it will probably be a 
bit slow (perhaps 5 minutes to recompile after a small change).  You only 
have to compile MacApp once.

> If (with a few changes) you can compile and link TML Pascal with MacApp, 
does
> that give you a means of using MacApp without MPW?  (I am rather put off 
by
> the vast cost of MPW.)

The TML compiler still runs as an MPW tool, but you get the necessary 
stuff with the compiler.  This does provide a lower-cost means of using 
MacApp.

> What happened to Object-Oriented Programming for the rest of us 
> (ie:  Low-budget/Bright-ideas/Potential-genii)

Both TML Pascal II and THINK Pascal 2.0 are low-cost.  Both provide 
object-oriented programming, although onlt TML provides MacApp support 
today.  Symantec is still working on MacApp support for THINK Pascal 2.0.

Larry Rosenstein, Apple Computer, Inc.
Object Specialist

Internet: lsr@Apple.com   UUCP: {nsc, sun}!apple!lsr
AppleLink: Rosenstein1