[comp.sys.mac.programmer] Think C 4.0 comments

wdh@well.UUCP (Bill Hofmann) (09/15/89)

Like the loyal, obedient programmer that I am, I immediately upgraded the
project (still beta) that I'm working on to THINK version 4.0.  I was
happy that there were only a few include/library incompatibilities, although
I'm not wild about the lack of smaller libraries (eg, strings, etc) - ANSI-881
is 26k: a little big to include in another segment, which I like to do to
avoid intersegment jumping whenever possible.

Thanks VERY MUCH for providing inline declarations:  this makes writing glue
for things you folks haven't gotten around to supporting MUCH MUCH easier.
In 3.0, I had to do a bunch of tedious coding to implement the 32 bit quickdraw
functions, in 4.0, I threw it out and grabbed the .h file from Apple's release
disk.  This points up another issue: even if Apple is sometimes wedged, the
more compatible THINK is with Apple's MPW C, the easier it is for us to keep
up with the latest hardware/software features.  For instance, while I *know* 
Mike had his reasons, it'd be nice if the header files were the same (both
naming and contents) for the shared features.  For the same reason, let me 
put in a pitch for maximum C++ compatibility.

Following are a few comments/complaints/kudos in more detail.  Sadly, this list
is ALMOST identical to the one I had for 3.0.  Let's hope that at least some
of them make it into 4.n+1.

-Bill Hofmann

Precompiled includes:
1.  can't cmd-click in title bar to get at .h's if they're precompiled.
    There's an easy workaround, but....
2.  precompile doesn't remember destination name a la other builds (ie,
    the sfput dialog that comes up doesn't have a default in it like
    build application does after the first time_.  Even just an algorithmic
    name, like precompiling <foo>.c producing <foo> in the sfput would be
    a time saver.
3.  precompilation maybe ought to be a little more automatic: if I change
    a .h in the precompile file, *something* should happen.  Yes, I know this
    is somewhat counter to the idea of precompiled includes, but...

Interface:
1.  Sounds for error and completion: while it IS lightspeed, it still takes
    light 8 minutes to reach the earth from the sun.  I sometimes resist the
    temptation to stare transfixed in awe at the speed of the compilation to
    do other things, like go to the kitchen or talk with a friend.  If there
    were (optional) sounds for error and completion - distinct, different
    sounds - I would be deliriously happy.
2.  More functionality in the editor.  It's fast, and I love the balance
    command, but here are some other suggestions:
a. More arrow key functionality: look at the way MPW uses the keys: yes, 
    some of us would rather type Cmd-Sh-Up to get to top of file than drag the 
    thumb, or Cmd-Up to go up and down screen-by-screen.  Also a fave of mine
    is Cmd-Left to go to start of line, Cmd-Right for end of line.
    Thanks for finally fixing the left-right arrow keys....
b. This is a C development environment, after all: how about "Comment out
    Selection" (either with #ifdefs or a /* on each line, */ at end), how about 
    a command to add a comment to the end of the line: it would move to end, 
    tab, put open and close comments and position you between them.  One thing
    I tend to do a lot is use the balance command to move my way to the top or
    bottom of a function.  How about an arrow key combination to do that? (eg,
    option-up=top of function, option-left=out one level of delimiters towards
    the top of file).
c. more functionality to balance: balance single quotes, double quotes.
    Maybe a modifier to not include the balance characters (a la MPW)
d. perhaps some way to exclude comments from searches?
e. I happen to like the MPW regular expression set.
Does it show that I used to use EMACS?  I don't think that it's a bad thing for
a program editor to have gobs of key equivalents to do things useful to the 
language in question.

3. Of course, I would love a set of 100% compatible Rez and Derez tools so I
    didn't have to run MPW all the time.  RezTools doesn't cut it, because I
    have multiple .r files.  Face it guys, RMaker is a stone-age product.

OK, most of these are minor.  It's a great product, and these would make it
greater.

nick@lfcs.ed.ac.uk (Nick Rothwell) (09/15/89)

In article <13638@well.UUCP>, wdh@well (Bill Hofmann) writes:
>Interface:
>1.  Sounds for error and completion: while it IS lightspeed, it still takes
>    light 8 minutes to reach the earth from the sun.

A few weeks ago, I had this wonderful idea - use the RAM cache! Never
thought of it before, since hardly anything else seems to like the RAM
cache that much, but TC runs like a dream - sometimes, NO disk access
at all to compile a module, even for the #includes.

>2.  More functionality in the editor.  It's fast, and I love the balance
>    command, but here are some other suggestions:

One thing I'll scream for in the editor - the ability to have two
views on one file, perhaps as a window split or something. I'm always
having to look at a struct declaration at the top of a file and use it
lower down. I'm too used to EMACS, I suppose.

>3. Of course, I would love a set of 100% compatible Rez and Derez tools so I
>    didn't have to run MPW all the time.  RezTools doesn't cut it, because I
>    have multiple .r files.  Face it guys, RMaker is a stone-age product.

I use ResTools a lot, with several .r files. I just have a top-level
.r file which pulls in the .rsrc files from the lower ones. So, you
have to issue more commands, but it seems fine.

		Nick.
--
Nick Rothwell,	Laboratory for Foundations of Computer Science, Edinburgh.
		nick@lfcs.ed.ac.uk    <Atlantic Ocean>!mcvax!ukc!lfcs!nick
~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
               Fais que ton reve soit plus long que la nuit.