[comp.sys.mac.programmer] Think against MPW interface war

urlichs@smurf.ira.uka.de (02/08/90)

In comp.sys.mac.programmer philip@pescadero.stanford.edu writes:
< I find this discussion a bit disturbing. There's a consistant thread
< that says, "Why isn't MPW more like unix?"
< 
< My question is, "Why is it so much like unix?"
< 
Please, don't. Not another I-like-MPW versus I-like-Think war.

Some people like/need/must use one, and some the other.
There is absolutely no rational basis for saying "X is better than Y", only
"I use X rather than Y because of Z".

Some people like windows with plain text which doesn't do any stupid
reformatting any time you press a semicolon, need to automate fairly complex
projects (take some Pascal for convenience, some Assembler for necessity,
Modula-2 for structure, C because Apple didn't provide Pascal interfaces for
MacTCP ;-) :-(, and the odd Fortran maths code which works but no one
understands any more. Sprinkle liberally with complex resources.
Put together by selecting "Build" from the Apple menu, leaning back, and
finally double-clicking your application.), hand many other reasons why _I_
think that MPW is a very important thing, and much better than any other
development system. (Now just merge Sade into it, fix the damn _GetCatInfo
bug, let it run under A/UX, and some other things I think I need...)

Other people like program editors which show them the correct structure (and
syntax errors) no matter what nonsense they type :-), an environment which
provides for a much simpler and faster edit-compile-run-crash-debug cycle
(_if_ your project structure and the environment are compatible -- with MPW
it's easy, write a skript to _make_ them work together...), and a whole lot of
other reasons why many people prefer integrated development environments of
the ThinkP/ThinkC type.

< LS environments are by far the biggest step forward in my experience.
< MPW doesn't add anything to the state of the art; the LS environments do
< for personal computing programming what the Mac did for the user. What I
< would like to know is how an environment of the LS variety could best be
< extended to provide the functionality of unix, without losing its low
< learning threshold. [...]

This may be correct (I wouldn't know, I don't use Think environments because
of the above reasons). However, you are talking about "How can Think{C,P} be
improved"; don't start talking about "Why is MPW so bad". You don't seem to be
talking about the problem anymore if you do.
Besides, a whole lot of people would take serious exception to the "MPW
doesn't add anything to the state of the art" part of your statement. MPW does
some things worse than Think[CP], some better, and about a whole lot of
features we can argue until the cows come home (or maybe until the Macs gets
protected memory, or until Inside Mac is one useable volume instead of ... --
but I digress) without getting anywhere.

Disclaimer: Whatever for?
-- 
Matthias Urlichs

shap@delrey.sgi.com (Jonathan Shapiro) (02/09/90)

In article <1496@smurf.ira.uka.de> urlichs@smurf.ira.uka.de writes:
>Please, don't. Not another I-like-MPW versus I-like-Think war.
>
>Some people like/need/must use one, and some the other.
>There is absolutely no rational basis for saying "X is better than Y", only
>"I use X rather than Y because of Z".
>-- 
>Matthias Urlichs

Here here! I wholeheartedly agree that there isn't much profit to be
had in arguing about people's sense of aesthetic in the context of
computer interfaces.  I am hard pressed to think of a case in which
a person's preference in this domain might be considered morally
repugnant.

On the other hand, and in support of my earlier comments on MPW
editing, the fact that people have strongly disagreeing senses of
taste and preference is a strong argument in favor of tools build to
be as modular as possible.  I'm not interested in trying to persuade
Apple to right MY favorite editor into MPW.  It isn't THEIR favorite
editor, so even if they did it it is likely they would get it wrong.
I AM trying to get them to tell ME how to build it for myself.

Now, a response that says: "We don't have the resources to solve that
problem" is acceptable.  A response that says "we think your screwed
up and we won't consider what you want because it disagrees with our
views on the Rightness Of Things" is just stupid.

Jon Shapiro

jln@acns.nwu.edu (John Norstad) (02/10/90)

It is not just esthetics or a matter of taste.  It is possible to argue 
rationally about the merits of a traditional Unix-inspired approach as in 
MPW versus a more Macish direct manipulation approach as in Think C.  
There are also larger related and very important issues which need to be 
discussed. These larger issues are in fact central to the notion of how we 
do computing today and in the future.

I use MPW for one reason - I need the power.  For example (just one, I 
promise - there are many, many others), I write MPW tools to build 
complicated custom resources that are part of Disinfectant.  These tools 
are called by my makefile.  I can't do this in Think C.  

This isn't a matter of taste, it's a matter of fact.  I could not have 
written Disinfectant in Think C (well, I could have, but it would have 
been much, much harder).  Think C is very nice, and MPW could steal lots 
of ideas from it (especially the debugger), and Think C is just fine for 
beginners, and like everybody else I wish that MPW were half as fast as 
Think C, but real programmers use MPW.

I think that more research needs to be done into how far one can go with 
direct manipulation progamming environments and command languages.  MPW 
could certainly use more of this in many areas, and SADE desperately needs 
it (I find SADE so cumbersome that I still do most of my debugging with 
MacsBug).  But I also think that it's incorrect to claim that graphical 
direct manipulation approaches will ever be able to completely replace the 
traditional command language approach.

I have some experience with this sort of thing.  I wrote the original tile 
editor in Odesta Helix.  That was an attempt to implement a graphical 
point-and-click direct manipulation interface for building complicated 
expressions and search criteria in a commercial database program.   The 
basic idea was to let the user use graphical tools to build the parse 
trees for the expressions.

The Helix tile editor is popular in some ignorant quarters, but I think it 
was a failure, and it's the primary reason I no longer work at Odesta. If 
I want to add x and y, I much prefer simply typing "x+y".  Please don't 
make me spend several minutes dragging tiles around, dropping icons into 
them, connecting them together, etc.  I have an absurd example I like to 
show Helix fans - try getting Helix to add 1+1 and display the answer 2 
(starting with an empty relation).  The amount of window opening and 
closing and clicking and dragging you have to go through is absolutely 
ridiculous.  This example is a bit unfair to Helix, since the program was 
not designed to be a calculator, but it does get the point across. Also, 
although I don't follow the new Helix versions closely, I believe that my 
friends at Odesta have improved this situation in recent releases.

Direct manipulation graphical interfaces are indeed a tremendous advance, 
and it's what makes the Mac a Mac.   The Finder is an almost perfect 
example of how truly wonderful this can be.  But there still some areas 
(programming languages and environments, operating system command 
languages, database languages, etc.) where traditional linear languages 
with their complicated syntaxes and ugly warts are still in many cases the 
best way to do things.  If icons are really so much better than 
traditional languages in all contexts, why aren't we still using 
hieroglyhics to communicate?  As a former student of mathematical logic, I 
must in fact insist that formal languages are one of the crowning 
achievements of our civilization, and they will never be totally replaced 
by any sort of graphical language.  This seems completely obvious to me, 
and Mac fanatics who automatically attack any and all traditional 
approches to language issues simply haven't thought the problem through.

One of the most important areas of current research in computer science is 
how one can best integrate these two kinds of languages to get the best of 
both worlds.  Although MPW doesn't yet make enough use of direct 
manipulation, it is one of the best commercial examples to date of such a 
successful marriage.

This has gone beyond the original MPW vs. Think C discussion.  Sorry.  I 
got tired of hacking out C code today, and decided to pontificate about 
one of my pet peeves.  I hope you found it irritating (it was intended to 
be).  Think C and Helix fans should direct their flames to /dev/null.

John Norstad
Northwestern University
jln@acns.nwu.edu

bowman@reed.UUCP (Eric Bowman) (02/10/90)

I whole heartedly agree.  Prepare for flames, though.

Essentially, to add to what you've said, I feel as though as a mac
programmer, one cannot (yet) expect the same user interface niceites
in a development system that one expects in a somewhat more pedestrian
program.  Why is MPW like Unix?  Because Unix is a damn powerful OS --
if you take the time to learn how to use it.  Apple's intention is
obviously power -- not simplicity -- and for this I applaud them.  I only
wish they would push MPW as an "alternative" to the finder, particularly
in the scientific marketplace.  I know a number of people who like many
things about the Mac but will not use it because they feel too limited
with the finder.

Personally, I depend frequently on MPW's tool and scripting ability, and
I can't imagine the ordeal of performing some of the same tasks I perform
regularly in MPW in Think C.

Further, I haven't noticed *that* big a difference in speed when headers
are compiled (though linking is a little slow).

==============================================================================
| The Insidious Uncle BoBo                                                   |
------------------------------------------------------------------------------
|  "As I see it, my friends can access my private                            |
|   members in a public class..."                                            |
==============================================================================
| Eric Bowman ->                                                             |
| ShitNet:         bowman@reed.bitnet                                        |
| FarFromFreeNet:  (503)234-7158  (Like I'll Really Answer)                  |
| Disclaimer: "If my employer ever found out my opinions, well..."           |
/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=

drc@claris.com (Dennis Cohen) (02/11/90)

This speed of turnaround is a little misleading, anyway.  While I don't
dispute that the Symantec compilers are much faster in the turnaround cycle
when you are debugging something and the changes are few, I find the MPW
compilers to be faster when I am creating new code.  The simple reason for
that is that with MPW compilers I get to see all my errors at one time and
can do a mass edit to fix them, rather than having to go through multiple
abortive compiles, fixing errors and typos one at a time.

Isn't this just another example of differing priorities?  I still maintain
that anyone who is serious about developing software on the Mac should
have BOTH the MPW and THINK environments.

Dennis Cohen
Claris Corp.
 ****************************************************
Disclaimer:  Any opinions expressed above are _MINE_!
 ****************************************************

bmwrkshp@watserv1.waterloo.edu ( Wrkshp Id - Sys Design ) (02/11/90)

In article <14112@reed.UUCP> bowman@reed.UUCP (Eric Bowman) writes:
>I whole heartedly agree.  Prepare for flames, though.
>
[Stuff deleted about power of Unix and MPW]
>
>Personally, I depend frequently on MPW's tool and scripting ability, and
>I can't imagine the ordeal of performing some of the same tasks I perform
>regularly in MPW in Think C.

Me, too.

>
>Further, I haven't noticed *that* big a difference in speed when headers
>are compiled (though linking is a little slow).

I have. I've had modules that used to take a minute to compile,
end up taking only 20 seconds to compile. With MPW that's a 
big difference. But I'm sure THINK C is still an order of magnitude
faster. Don't know what that linker is doing. Sure takes its own
sweet time even on Mac II's.

I would probably use MPW 99% of the time if it weren't for the fact
that the C compiler is broken. Even the updated C compiler
included with the C++ package still has bugs.

Real world case I can talk about: I tried compiling Nethack 3
under MPW C. The compiler couldn't even get past the
header files (tested with both original 3.0 and 3.1  beta C compilers).

But for text file manipulation on the Mac, you can't do much
better than MPW.

Johnny Lee
jlee4@orchid.waterloo.edu
bmwrkshp@watserv1.waterloo.edu

jln@acns.nwu.edu (John Norstad) (02/11/90)

In article <1046@watserv1.waterloo.edu> bmwrkshp@watserv1.waterloo.edu ( 
Wrkshp Id - Sys Design ) writes:
> But I'm sure THINK C is still an order of magnitude
> faster. Don't know what that linker is doing. Sure takes its own
> sweet time even on Mac II's.

As I understand it, one of the reasons is that MPW's linker is much 
smarter.  For example, it lets you direct individual routines within a 
single module to different segments, and it eliminates dead code.  I'm not 
sure about all this, though.

> I would probably use MPW 99% of the time if it weren't for the fact
> that the C compiler is broken. Even the updated C compiler
> included with the C++ package still has bugs.

I've heard this from other places too (e.g., the guys at Wolfram).  But 
I'm up to 16,000 lines of pretty hairy C code in Disinfectant now, and 
I've yet to encounter a single compiler bug.  Maybe because I'm a reformed 
Pascal fanatic, I don't write as ugly code as the rest of you guys :-)

John Norstad
Northwestern University
jln@acns.nwu.edu

bowman@reed.UUCP (Eric Bowman) (02/11/90)

In response to your questions about "what the linker does," you might
check out "Creating Programs with MPW" in the Winter 1990 issue of
MacTech Quarterly.  It also describes techniques for up to 40% speed
improvements.

Indeed, the MPW linker IS smarter, and in general accord with the MPW
philosophy as I see it, if you don't learn the nuts and bolts, you're
gonna get burned (even flamed).

If there's interest or people can't find the fledgling MacTech Quarterly
(hell, I've WRITTEN for them, and I have trouble finding it) (I can't
afford a subscription), I could post a summary, or even an unauthorized
copy (maybe not...I might like to write for them again).

==============================================================================
| The Insidious Uncle BoBo                                                   |
------------------------------------------------------------------------------
|  "As I see it, my friends can access my private                            |
|   members in a public class..."                                            |
==============================================================================
| Eric Bowman ->                                                             |
| ShitNet:         bowman@reed.bitnet                                        |
| FarFromFreeNet:  (503)234-7158  (Like I'll Really Answer)                  |
| Disclaimer: "If my employer ever found out my opinions, well..."           |
/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=

murat@farcomp.UUCP (Murat Konar) (02/12/90)

My feeling on the MPW vs. THINK controversy is this:
Saying MPW is powerful is like saying that somone has a great personality. :)

Seriously, MPW is powerful, but it really gets in the way when I'm exploring
better ways of doing things.  The turnaround in MPW is so slow enough that it
frequently discourages exploration. 


-- 
____________________________________________________________________
Have a day. :^|             
Murat N. Konar	
murat@farcomp.UUCP             -or-          farcomp!murat@apple.com

mxmora@unix.SRI.COM (Matt Mora) (02/13/90)

In article <3689@accuvax.nwu.edu> jln@acns.nwu.edu (John Norstad) writes:
>
>This has gone beyond the original MPW vs. Think C discussion.  Sorry.  I 
>got tired of hacking out C code today, and decided to pontificate about 
>one of my pet peeves.  I hope you found it irritating (it was intended to 
>be).  Think C and Helix fans should direct their flames to /dev/null.
>
>John Norstad
>Northwestern University
>jln@acns.nwu.edu

HEY! What the heck are you doing wasting your time reading and
posting to the Net. Get Back to Work on 2.0 :-)


Also, A question about WDEF virus. If you stick an infected
disk while disinfectant is running. Will the virus Spread.
What exactly does mountvol do. Does it read the desktop File
or does only the finder do that. I was wondering if a user
brings a disk to my Mac plus (which doesn't have enough memory
to run a bunch of detection inits) and I'm in disinfectant,
will the virus spread before disinfectant can scan the Disk?


Just wondering...





-- 
___________________________________________________________
Matthew Mora
SRI International                       mxmora@unix.sri.com
___________________________________________________________

d88-jwa@nada.kth.se (Jon Watte) (02/13/90)

In article <3718@accuvax.nwu.edu> jln@acns.nwu.edu (John Norstad) writes:

>As I understand it, one of the reasons is that MPW's linker is much 
>smarter.  For example, it lets you direct individual routines within a 
>single module to different segments, and it eliminates dead code.  I'm not 
>sure about all this, though.

Xcuse me ?  One of the major gripes about the MPW linker last year was
"Why does it include so much dead code ? It should have a "smart link"
as THINK C does" ...

Maybe that has changed, as so many other things.

h+
-- 
   ---  Stay alert !  -  Trust no one !  -  Keep your laser handy !  ---
             h+@nada.kth.se  ==  h+@proxxi.se  ==  Jon Watte
                    longer .sig available on request

tim@hoptoad.uucp (Tim Maroney) (02/15/90)

In article <3718@accuvax.nwu.edu> jln@acns.nwu.edu (John Norstad) writes:
>>As I understand it, one of the reasons is that MPW's linker is much 
>>smarter.  For example, it lets you direct individual routines within a 
>>single module to different segments, and it eliminates dead code.  I'm not 
>>sure about all this, though.

In article <2931@draken.nada.kth.se> d88-jwa@nada.kth.se (Jon W{tte) writes:
>Xcuse me ?  One of the major gripes about the MPW linker last year was
>"Why does it include so much dead code ? It should have a "smart link"
>as THINK C does" ...
>
>Maybe that has changed, as so many other things.

I've been using MPW since the beta test of version 1.0, and I'm pretty
sure it's always deleted dead routines.  In any case, it definitely
does so now; I recently set up a test case to check.  Sure enough, the
unreferenced routines from my .c.o files didn't appear in the linked
output.

On the other hand, THINK C does *not* delete much dead code, at least
not in 3.0.  It includes entire source files as modules.  It will only
leave out routines in some libraries, and entire source code files; see
the manual, page 68 for 3.0.  The MPW Linker will (and I'm pretty sure
always has) leave out individual unreferenced routines from source files
that contain some referenced routines.
-- 
Tim Maroney, Mac Software Consultant, sun!hoptoad!tim, tim@toad.com

"Prisons are built with stones of Law, Brothels with bricks of Religion."
    - Blake, "The Marriage of Heaven and Hell"