phaedrus@milton.acs.washington.edu (The Wanderer) (03/14/90)
A few quick questions: Aside from Inside Mac and the other official documentation, what books would you recommend for an experienced Pascal/C programmer trying to learn the Macintosh programming structure? Which development environment would you recommend for said experienced programmer, on a limited budget (still working on paying off the Mac)? User-friendliness, a good debugger, and clear documentation are all key issues. How much easier does MacApp make the programming process? Assuming it's the wonderful base I've heard it is and I immediately rush out to use it, how strongly should that influence the development environment I buy? (How many contortions do I have to go through to use MacApp with Think Pascal, that I could avoid by using MPW?) I apologize if these questions are naive; but it appears that the only way I'm actually going to see any of these language products is to buy them, and I'd much rather have feedback from experienced programmers before making an expensive mistake. (Besides, I'm curious to see how our friend from Symantec will reply...) -- Internet: phaedrus@u.washington.edu (University of Washington, Seattle) The views expressed here are not those of this station or its management. "If you can keep your head while those about you are losing theirs, consider an exciting career as a guillotine operator!"
jackiw@cs.swarthmore.edu (Nick Jackiw) (03/14/90)
phaedrus@milton.acs.washington.edu (The Wanderer) writes: > A few quick questions: > Aside from Inside Mac and the other official documentation, what books > would you recommend for an experienced Pascal/C programmer trying to learn > the Macintosh programming structure? There are a number of books. None of them, however, is comprehensive, and with all of them, one will eventually run into problems because of their limitations and elisions. Inside Mac, volumes I-IV, are really the best starting point. Volume V, unlike the others, is poorly written, and relies on *implicit* knowledge of arcane parts of I-IV. (Everything in I-IV that relies on something else is clearly cross-referenced.) The Tech Notes, available from APDA or as a hypercard stack ftp'able (I believe) from APDA, augment, amend, and clarify the Inside Mac series. They contain considerable amounts of sample code, as well. > Which development environment would you recommend for said experienced > programmer, on a limited budget (still working on paying off the Mac)? > User-friendliness, a good debugger, and clear documentation are all key > issues. This would be a THINK product...MPW, by the time you get up and running, costs several hundreds of dollars and a considerable amount of time dedicated to learning the environment, rather than programming. THINK C and THINK PASCAL are both available mail-order for $100-$200. (Check MacConnection, MacZone, MacWarehouse, etc.). If you know Pascal and C equally well, I'd recommend starting with THINK Pascal. The Mac's interfaces are designed for communicating with Pascal, and by not using C, you can avoid a number of problems (parameter-passing convention, string definition, etc.) not immediately relevant to learning Mac programming. > How much easier does MacApp make the programming process? Assuming it's > the wonderful base I've heard it is and I immediately rush out to use it, how > strongly should that influence the development environment I buy? (How many > contortions do I have to go through to use MacApp with Think Pascal, that I > could avoid by using MPW?) I believe only the just-released THINK PASCAL 3.0 is compatible with MacApp (beside MPW, of course). Not much has been discussed on its ease of use in THINK. If you are already acquainted with object-oriented programming, MacApp may make things easier for you. If not, postpone getting it. Again, the Mac's interface is defined procedurally; learning OOP simultaneously, while career-wise, is going to detract from learning the Mac. Also, from what I understand, while MacApp provides a wonderfully advanced starting-block for any application development, in the course of getting the exact functionality you seek you must be prepared to modify the MacApp sources. This, of course, implies prior knowledge of both Mac structure and object-oriented programming techniques. > I apologize if these questions are naive; but it appears that the only > way I'm actually going to see any of these language products is to buy them, > and I'd much rather have feedback from experienced programmers before making > an expensive mistake. My disclaimers: I've never used MacApp. I use THINK Pascal frequently, MPW Pascal, C, and Assembler infrequently. I began in your position with advice similar to that that I've just offered, and I've found my environment nice enough to never merit switching. -- -----Nicholas Jackiw [jackiw@cs.swarthmore.edu|jackiw@swarthmr.bitnet]----- "... Then, with an infernal shovel that increases my strength, I dig out of that inexhaustable mine whole chunks of lice, big as mountains. I split them up with an axe and I transport them in the depths of night to city streets."
jackiw@cs.swarthmore.edu (Nick Jackiw) (03/14/90)
jackiw@cs.swarthmore.edu (Nick Jackiw) writes: > The Tech Notes, available from APDA or as a hypercard stack ftp'able (I > believe) from APDA, augment, amend, and clarify the Inside Mac series. ^^^^ Sorry, I meant apple.com. -- -----Nicholas Jackiw [jackiw@cs.swarthmore.edu|jackiw@swarthmr.bitnet]----- "... Then, with an infernal shovel that increases my strength, I dig out of that inexhaustable mine whole chunks of lice, big as mountains. I split them up with an axe and I transport them in the depths of night to city streets."
siegel@endor.harvard.edu (Rich Siegel) (03/14/90)
In article <2392@milton.acs.washington.edu> phaedrus@milton.acs.washington.edu (The Wanderer) writes: > > A few quick questions: > Aside from Inside Mac and the other official documentation, what books >would you recommend for an experienced Pascal/C programmer trying to learn >the Macintosh programming structure? "How to Write Macintosh Software" and "Macintosh Programming Secrets", both by Scott Knaster. The first is a good guide to coping with the OS, and the second describes lots of interesting Toolbox tricks. Another good book is the TMON user's manual. It comes with a free machine-level debugger. > Which development environment would you recommend for said experienced >programmer, on a limited budget (still working on paying off the Mac)? >User-friendliness, a good debugger, and clear documentation are all key >issues. THINK C or THINK Pascal. They fill all of your criteria. > How much easier does MacApp make the programming process? Assuming it's >the wonderful base I've heard it is and I immediately rush out to use it, how >strongly should that influence the development environment I buy? (How many >contortions do I have to go through to use MacApp with Think Pascal, that I >could avoid by using MPW?) Ultimately, MacApp helps a lot, but the learning curve is very long. It shouldn't make a difference in your choice of Pascal compiler; THINK Pascal 3.0 supports MacApp practically out of the box, with some automatic conversion. Both THINK C and THINK Pascal include the THINK Class Library, which is similar in concept to MacApp, but is much easier to learn and use; you can always save your pennies and get MacApp later if the TCL doesn't suit your needs. > (Besides, I'm curious to see how our friend from Symantec will reply...) You'll have to give me better bait than that. :-) R. ~~~~~~~~~~~~~~~ Rich Siegel Staff Software Developer Symantec Corporation, Language Products Group Internet: siegel@endor.harvard.edu UUCP: ..harvard!endor!siegel "When someone who makes four hundred and fifty dollars an hour wants to tell you something for free, it's a good idea to listen." ~~~~~~~~~~~~~~~
levin@bbn.com (Joel B Levin) (03/14/90)
In article <2217@husc6.harvard.edu> siegel@endor.UUCP (Rich Siegel) writes: | | Another good book is the TMON user's manual. It comes with a free |machine-level debugger. What an interesting way to put it (expensive book). I hear that THINK offers a class library in source code with some pretty extensive books about the techniques of developing Mac code and about the C programming language. These come with a free C compiler that's supposed to be pretty good. :-) /JBL = Nets: levin@bbn.com | "There were sweetheart roses on Yancey Wilmerding's or {...}!bbn!levin | bureau that morning. Wide-eyed and distraught, she POTS: (617)873-3463 | stood with all her faculties rooted to the floor."
anders@penguin (Anders Wallgren) (03/15/90)
In article <319FHPY@xavier.swarthmore.edu>, jackiw@cs (Nick Jackiw) writes: >phaedrus@milton.acs.washington.edu (The Wanderer) writes: >> How much easier does MacApp make the programming process? Assuming it's >> the wonderful base I've heard it is and I immediately rush out to use it, how >> strongly should that influence the development environment I buy? (How many >> contortions do I have to go through to use MacApp with Think Pascal, that I >> could avoid by using MPW?) > >I believe only the just-released THINK PASCAL 3.0 is compatible with MacApp >(beside MPW, of course). Not much has been discussed on its ease of use in >THINK. If you are already acquainted with object-oriented programming, MacApp >may make things easier for you. If not, postpone getting it. Again, the >Mac's interface is defined procedurally; learning OOP simultaneously, while >career-wise, is going to detract from learning the Mac. Also, from what I >understand, while MacApp provides a wonderfully advanced starting-block for >any application development, in the course of getting the exact functionality >you seek you must be prepared to modify the MacApp sources. This, of course, >implies prior knowledge of both Mac structure and object-oriented programming >techniques. > Just to clarify - you don't need to modify the MacApp sources - this is one of the beauties of OOP. You do however, define your own objects as subclasses of MacApp's classes, and, in this sense, you modify MacApp. Occasionally, you need your MASBA (MacApp Source Breathing Apparatus - Keith Rollin's phrase, not mine) to figure out what you're supposed to be doing, but I've never found it necessary to touch the MacApp source code with anything other than a highlighter. anders
gft_robert@gsbacd.uchicago.edu (03/15/90)
Like Rich said: both Knaster's books are excellent. But you should _definitely_ also check out the "Mac Revealed" books by Stephen Chernicoff. They are very good for getting a re-phrase of IM (which can sometimes help when you're not exactly sure of what IM's getting at) and they give you some sample code. Vol. 1 and 2 are the most helpful. I recommend THINK Pascal if you're going to use Pascal (which, as one poster noted, is probably the wisest route). I just got version 3.0 (in 5 days! Symantec service is _much_ better than it used to be), and though I haven't played with it much, it looks _real_ nice. It's even got _3_ bound doc books. Classy. Robert ============================================================================ = gft_robert@gsbacd.uchicago.edu * generic disclaimer: * "It's more fun to = = * all my opinions are * compute" = = * mine * -Kraftwerk = ============================================================================
chewy@apple.com (Paul Snively) (03/15/90)
In article <2217@husc6.harvard.edu> siegel@endor.harvard.edu (Rich Siegel) writes: > In article <2392@milton.acs.washington.edu> phaedrus@milton.acs.washington.edu (The Wanderer) writes: > > > > A few quick questions: > > Aside from Inside Mac and the other official documentation, what books > >would you recommend for an experienced Pascal/C programmer trying to learn > >the Macintosh programming structure? > > "How to Write Macintosh Software" and "Macintosh Programming Secrets", > both by Scott Knaster. The first is a good guide to coping with the OS, and > the second describes lots of interesting Toolbox tricks. I'd like to ditto Rich's recommendations here and add the current editions of Chernicoff's books; they're pretty good Q&D intros to the subjects covered in IM I-V. BTW, be sure to get IM I-IV absolutely and V if you intend to run on SEs or Mac IIs. Also get the Tech Notes (yeah, all 250+ of them). Ugh. In article <2217@husc6.harvard.edu> siegel@endor.harvard.edu (Rich Siegel) writes: > Another good book is the TMON user's manual. It comes with a free > machine-level debugger. Gee, thanks, Rich (I wrote the TMON User's Guide, in my previous life at ICOM Simulations, Inc.) I'll second his recommendation here, too, in my obviously completely unbiased opinion. ;-) In article <2217@husc6.harvard.edu> siegel@endor.harvard.edu (Rich Siegel) writes: > > How much easier does MacApp make the programming process? Assuming it's > >the wonderful base I've heard it is and I immediately rush out to use it, how > >strongly should that influence the development environment I buy? (How many > >contortions do I have to go through to use MacApp with Think Pascal, that I > >could avoid by using MPW?) > > Ultimately, MacApp helps a lot, but the learning curve is very long. > It shouldn't make a difference in your choice of Pascal compiler; THINK > Pascal 3.0 supports MacApp practically out of the box, with some automatic > conversion. Rich is oversimplifying just a little here. The MacApp that THINK Pascal 3.0 compiles "practically out of the box" is MacApp 2.0b9; THINK has done a very good job of providing conversion tools that handle the general case, but my experiences in attempting to convert versions of MacApp later than 2.0b9 haven't been very successful. Which is not to say that THINK did anything wrong; they were in the unfortunate position of having to ship before Apple made MacApp 2.0 final. C'est la vie. In article <2217@husc6.harvard.edu> siegel@endor.harvard.edu (Rich Siegel) writes: > Both THINK C and THINK Pascal include the THINK Class Library, which > is similar in concept to MacApp, but is much easier to learn and use; you > can always save your pennies and get MacApp later if the TCL doesn't suit your needs. Sounds like sound advice to me. In addition to the above, let me just add that, since you're already an experienced Pascal/C programmer, it _is_ worth your while to learn object-oriented programming now, as Apple's world is clearly headed in that direction. THINK's TCL and related tutorials offer a good introduction both to the concepts and to the class libraries themselves. MacApp might be thought of as "industrial strength"--it has had some of Apple's best Mac Wizards involved in its evolution over its roughly five-year lifespan, and does lots of very cool things for you. It also has tutorials available, and is supported not only by us in MacDTS, but also by the MacApp Developers' Association, and has a regular newsletter, "Frameworks," associated with it, should you wish to subscribe to it. I must also take issue with a previous post that said, in effect, that once you start doing real work with MacApp that you find yourself changing the MacApp sources. This simple isn't true; the whole nature of object-oriented programming is that, when you wish to alter the functionality of some piece of code, you override it (this does _not_ imply changing the sources of the libraries). It _may_ imply knowing exactly what the thing you wish to override does. To simplify that process, MacApp 2.0 versions ship with a very nice little Object Pascal/C++ browser, itself written in MacApp (sorry, no sources for the browser yet--maybe later). I hope all of this helps somewhat! __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. 1st Choice: Paul_Snively.DTS@qm.gateway.apple.com 2nd Choice: CHEWBACCA@applelink.apple.com Last Choice: chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________
lsr@Apple.COM (Larry Rosenstein) (03/15/90)
In article <2392@milton.acs.washington.edu> phaedrus@milton.acs.washington.edu (The Wanderer) writes: >How much easier does MacApp make the programming process? Assuming it's >the wonderful base I've heard it is and I immediately rush out to use it, MacApp eliminates the need to understand every detail of the Toolbox before you can write your program. If what you want to do is write a Macintosh applications that prints, saves document, etc. then MacApp is the way to go. If you want to learn about the details of the Macintosh Toolbox, then MacApp will probably be a distraction. It will take some digging to find out where MacApp does its scrolling (for example), so it's not the best way to understand the Control Manager. For that there are some skeleton programs that you can use. The learning curve for MacApp is not as bad as people think, especially if you compare it to learning the necessary chapters of Inside Macintosh. (Not to mention all the little programming tricks that are scattered in Tech Notes and peoples' heads.) The best approach is to play with the sample programs and try to understand what's going on. There's also a very good tutorial now, which builds a simple icon editor from the ground up. (There's also a book coming out in the next month, which is largely based on the MacApp class run by Apple's Developer University. I was one of the co-authors.) Most of the comments above should apply equally well to the THINK Class Library, although I haven't looked at it. I'm told that it is simpler than MacApp, so that might help with the learning curve. Larry Rosenstein, Apple Computer, Inc. Object Specialist Internet: lsr@Apple.com UUCP: {nsc, sun}!apple!lsr AppleLink: Rosenstein1
phaedrus@milton.acs.washington.edu (The Wanderer) (03/15/90)
In article <2392@milton.acs.washington.edu> I asked a bunch of questions
about Macintosh programming books, development environments, and MacApp.
The response has been overwhelming; my mailbox overfloweth. (But I like it,
I like it...)
Aside from Inside Mac, Programmer's Introduction to the Mac Family,
and the other Addison-Wesley-published books, the Macintosh Revealed series
was recommended at least five times, so I plan on looking at it first, after
the Addison-Wesley series. I figure this shouldn't take me more than four or
five months, after which I can get down to actually programming. :)
The huge majority of those recommending language environments suggested
the THINK languages (with Pascal getting the preference over C, since the
Macintosh ROM was designed with Pascal conventions in mind); it appears to
outrank MPW in ease of learning and use (not surprising, considering the
command-line interface of MPW), debugging, documentation, and price.
The consensus seems to be that THINK Pascal 3.0 handles MacApp
well enough; there are glitches, particularly in using the final version
(rather than the betas), but most repliers didn't seem to think that MacApp
was an appropriate learning tool anyway. Besides, the consensus was that
Symantec would solve these glitches somehow, considering their reputation
for service.
I thank you all very much for your help; it's relieving to see that
those of us who can't afford to become Partners can still get good-quality
technical help, from Apple as well as from others.
--
Internet: phaedrus@u.washington.edu (University of Washington, Seattle)
The views expressed here are not those of this station or its management.
"If you can keep your head while those about you are losing theirs,
consider an exciting career as a guillotine operator!"
siegel@endor.harvard.edu (Rich Siegel) (03/15/90)
In article <7179@goofy.Apple.COM> chewy@apple.com (Paul Snively) writes: > >Rich is oversimplifying just a little here. The MacApp that THINK Pascal >3.0 compiles "practically out of the box" is MacApp 2.0b9; THINK has done >a very good job of providing conversion tools that handle the general >case, but my experiences in attempting to convert versions of MacApp later >than 2.0b9 haven't been very successful. Which is not to say that THINK >did anything wrong; they were in the unfortunate position of having to >ship before Apple made MacApp 2.0 final. C'est la vie. A couple of things worth noting: 1) MacApp 2.0b9 is the latest shipping version from APDA. As far as I'm concerned, it's not particularly important that anything other than APDA- released versions of MacApp are supported. It takes me a pair of 16-hour days to figure out the changes and implement new tweaks and find the problems and recommend some changes to Steve Friedrich. 2) Versions since 2.0b9 have introduced significant archtectural changes - changes which, in my humble opinion, should bever be made this late in the beta cycle. 3) MacApp will compile practically out of the box as far as most prospective users are concerned: all they need to do is install MacApp as instructed by the MacApp docs, install the THINK MacApp compatibility package as instructed by our doc, run the converter, and that's it. No manual changes to MacApp are required. The automatic changes which are applied address differences in runtime architecture between THINK Pascal and MPW Pascal; the MacApp group has been more than helpful in making changes to MacApp to accomodate differences in the two compilers and linkers. Sorry to sound snappish, but I've spent the past two 16-hour days getting MacApp 2.0b12 to work. R. ~~~~~~~~~~~~~~~ Rich Siegel Staff Software Developer Symantec Corporation, Language Products Group Internet: siegel@endor.harvard.edu UUCP: ..harvard!endor!siegel "When someone who makes four hundred and fifty dollars an hour wants to tell you something for free, it's a good idea to listen." ~~~~~~~~~~~~~~~
chewy@apple.com (Paul Snively) (03/16/90)
In article <2234@husc6.harvard.edu> siegel@endor.harvard.edu (Rich Siegel) writes: > A couple of things worth noting: > > 1) MacApp 2.0b9 is the latest shipping version from APDA. As far as I'm > concerned, it's not particularly important that anything other than APDA- > released versions of MacApp are supported. It takes me a pair of 16-hour > days to figure out the changes and implement new tweaks and find the problems > and recommend some changes to Steve Friedrich. Understood and appreciated, believe me! Perhaps I should have made more clear that what THINK Pascal 3.0 supports is precisely what's available to the world at large, and it does it extremely well. > 2) Versions since 2.0b9 have introduced significant archtectural > changes - changes which, in my humble opinion, should bever be made this > late in the beta cycle. Well, that's why it's beta. Sometimes an architectural change solves a multitude of problems. And part of MacApp 2.0's charter was pretty much to start with a clean architectural slate--MacApp 2.0xx is very, very different from 1.1.1, for example. I really wish that it had been frozen for you guys before you had to ship, but we just weren't able to do it. I really _am_ sorry about that. > 3) MacApp will compile practically out of the box as far as most > prospective users are concerned: all they need to do is install MacApp > as instructed by the MacApp docs, install the THINK MacApp compatibility > package as instructed by our doc, run the converter, and that's it. No > manual changes to MacApp are required. The automatic changes which are > applied address differences in runtime architecture between THINK Pascal > and MPW Pascal; the MacApp group has been more than helpful in making > changes to MacApp to accomodate differences in the two compilers and > linkers. And you guys have done a fantastic job of making THINK meet us halfway; I don't wish to minimize that point at all. > Sorry to sound snappish, but I've spent the past two 16-hour days getting > MacApp 2.0b12 to work. Really, Rich, I'm sure that all of us here, especially in MacDTS, appreciate that; it'll be a major boon to Apple, to Symantec, to both of our developers, and ultimately to the users who will have access to more robust and functional software as a direct result of your efforts. After all, that's really what it's all about--the users and what they can do, and how well. Thanks for the blood, sweat, and tears, and please pass that along to the rest of the THINK languages team(s). > R. __________________________________________________________________________ Paul Snively Macintosh Developer Technical Support Apple Computer, Inc. 1st Choice: Paul_Snively.DTS@qm.gateway.apple.com 2nd Choice: CHEWBACCA@applelink.apple.com Last Choice: chewy@apple.com Just because I work for Apple Computer, Inc. doesn't mean that I believe what they believe, or vice-versa. __________________________________________________________________________