Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!seismo!lll-crg!hoptoad!tim From: tim@hoptoad.uucp (Tim Maroney) Newsgroups: comp.sys.mac Subject: Re: Macintosh Programmer's Workbench Message-ID: <1412@hoptoad.uucp> Date: Thu, 4-Dec-86 21:43:26 EST Article-I.D.: hoptoad.1412 Posted: Thu Dec 4 21:43:26 1986 Date-Received: Fri, 5-Dec-86 05:28:14 EST References: <2351@psuvax1.UUCP> Reply-To: tim@hoptoad.UUCP (Tim Maroney) Organization: Centram Systems, Berkeley Lines: 39 I have been using the Mac Programmer's Workshop since this summer and am very pleased with it. I have previously done extensive development work on the Mac in Lisa Pascal, Megamax C, and Consulair C. MPW C produces by far the best code quality, and has a development environment nearly equal to UNIX in power. (Some of the features were taken straight from UNIX, like makefiles, so this isn't too surprising.) I wrote a B-tree database system and a name mapping package for our distributed file system, TOPS, in Consulair C. Last week, I finally got around to converting them to MPW C. I cut no code, but the code produced by MPW C was two thirds the size of the Consulair code. This is a pretty significant improvement! I don't have benchmarks set up, but the code seems to run at about the same speed - I believe this is because the database system is disk-bound rather than software-bound, naturally. In a more compute-bound application, MPW C's use of registers rather than stack locations for automatic variables would be a big win. There are also some defects. Standard I/O is totally screwed up. I know, you're not supposed to use it on the Mac, but one of the criteria for my database system was portability, so I wrote the test program using standard I/O rather than as a Mac application. It runs as a tool under MPW, but not correctly, whereas it ran almost correctly under Consulair. (Not quite, though; Consulair forgets to echo the newline in gets to the tty.) IN MPW C stdio, stdout is file buffered; if you change it to the correct unbuffered form, it is amazingly slow. This is because the MPW shell is based on the rather slow MDS Editor (from Consulair....) which is not oriented toward terminal emulation. Input is also wrong; you have to select a response and strike enter to input it. This means that if you say "Want to destroy the planet? [yn] " and ask for a 'y' or an 'n' on the same line, the usual response sequence of typing the answer and hitting return/enter also involves a counter-intuitive and inconvenient mouse operation. But this is a minor quibble, since you should be using MPW to generate Mac software in most cases. Overall, MPW C is a big win over any of the other three development systems I've used, and I highly recommend it. -- Tim Maroney, Electronic Village Idiot {ihnp4,sun,well,ptsfa,lll-crg,frog}!hoptoad!tim (uucp) hoptoad!tim@lll-crg (arpa)