Path: utzoo!attcan!uunet!ginosko!aplcen!haven!umd5!zben From: zben@umd5.umd.edu (Ben Cranston) Newsgroups: comp.sys.mac.programmer Subject: Re: Getting started with Mac programming Summary: Everything you know is wrong Message-ID: <5366@umd5.umd.edu> Date: 23 Sep 89 22:08:21 GMT References: <7893@leadsv.UUCP> Reply-To: zben@umd5.umd.edu (Ben Cranston) Distribution: na Organization: University of Maryland, College Park Lines: 80 In article <7893@leadsv.UUCP> cberg@leadsv.UUCP (Charles R Berg) writes: > I have an opportunity to port an MS-DOS application to the Macintosh. I'm > motivated by a strong need for the program (and I only own a Mac), as well > as by the chance to make some money, and learn how to program the Mac. Throw away the main routine. Attempt to make each functional capability of the program into a subroutine. Especially beware of situations in which the control thread of the main routine ensures that the subroutines are performed in a certain order. In the Mac world, when you can do any menu selction at any time, you may need additional control superstructure to ensure the input data is present before a function subroutine can be called. Actually, it's pretty grim to try to do porting. Either you end up completely rewriting the program anyway, or you end up with a mutant version with a crippled user interface that nobody but its mother could love... > I've been designing and building systems for 20 years. I've programmed in > most all of the well-known languages, on most all of the well-known systems. > I'm not concerned by the level of difficulty. I started out in 1969 doing assembly language on Unisys 1100s and have used all the languages too, from applesoft basic on apple ][s to APL on Unisys. You know how programming works, after the third or fourth assembly language it's just memorizing new opcodes anyway. We got involved with Macs in 1986 so there are people around with much more experience, but here's my two bits. > BUT, clearly, the Macintosh is different than any other machine I've dealt > with, so the question is - > What do I need to know to get started? Memorize Inside Mac volumes I-V. You cannot do ANYTHING without understanding the managers. If you use MultiFinder then read the Programmer's Guide To Multifinder. Get access to the Tech Notes if possible, there are over 250 and they contain real good stuff. Because computers have traditionally talked over a single 7+-2 bit channel to a (glass) TTY, everything you know is wrong. Read and understand the User Interface Guidelines. If you ever mean to let anybody other than yourself use your programs, be aware that any deviation whatsoever from these guidelines stands out like a sore thumb. > The application I need to port is written in 'c'. What compilers are > available to me? Where do I get them? ... IMHO Apple's own MPW is the best system, even though it takes a long time to do a compile-link cycle, because it can easily integrate C, Pascal, and Asm programs without funny manufacturer-specific goo. There are third party compilers available both as alternates for the standard C and Pascal compilers and for other languages such as Modula 2. You can get MPW and lots of other Mac stuff from APDA, the Apple Programmer's and Developer's Association. Beware, there was a BIG change in the way C is mated to the Mac environment between MPW 2.0 and the current MPW 3.0 causing some compatability problems. The Lightspeed Pascal and C from the Think company (which are now called Think Pascal and Think C I believe) are also very well thought of. > ... Obviously, the Mac user interface > is vastly different than the user interface in the existing code. How do > you develop user interfaces on the Mac? I'm assuming there are utilities to > do this interactively. Where do I get them? Uteelities??? Wee don't need no steeenking uteeelities??? :-) Sorry. Some people change their own oil, I make my own cables and write my own code. Perhaps somebody else in this group could survey the available user interface cuisinarts... > I'd appreciate any assistance anyone can offer. Thanks. "...people on the river are happy to give..." -Proud Mary, Ike and Tina Turner People on this list are very good about helping out. You may see a lot more than just this message in response to your query. Do you have an Internet address? Can I forward to leadsv through uunet.uu.net? -- Sig DS.L ('ZBen') ; Ben Cranston * Computer Science Center Network Infrastructures Group * University of Maryland at College Park